前言 要说这段时间仅在软件测试领域有什么可以总结的内容,我想应该是人工智能了,简称AI(Artificial Intelligence,人工智能)。 在某本书中有位大佬曾经说过,AI是第四次工业革命。这种说法我消化不了,因为没有亲身体会过工业革命,我能理解的是在大量资本涌入的情况下,AI的推广速度会非常的快,即使不在AI领域内的人,看到哪些让人产生焦虑的视频或文章,也能从侧面感受到,说AI可以替代“这个”,也可以替代“那个”,是不是真的比人做的更好,我想还有待观察。 我始终相信AI只是一种工具,与一把斧子、一个扳手在本质上没什么区别,当然我用的AI都是通用AI,没用过专业AI,也就是专注于某一领域的AI,具体专业AI可以智能到什么程度,我想也只有接触过最前沿的人才有发言权。 再多说两句,现在的通用AI最擅长是生成内容,也就是所谓的AIGC(Artificial Intelligence GeneratedContent,人工智能生成内容),像视频、图片、文本等,但是这些东西你不用AI自己也可以做,即使你要让AI做一段视频,你至少也要清楚做视频的基本知识,才能做出符合要求的视频,如果都让AI做,一点要求都没有,门槛如此之低的视频内容,有什么价值。 同理,本篇文章讨论的是用AI工具辅助测试工作,那你就要具备一名测试工程师的基本知识,才能更好的向AI提问,以及“调教”(训练)AI,让它的正确答案更接近你的需求。 想要更好的向AI提问以及“调教”AI,就要写好提示词,这个和搜索引擎用的关键词差不多,目的都是缩小范围,以便得到更精确的输出,只不过这些提示词组合起来更像人话。 接下来,就要进行一个简单的实验,实验用的人工智能是百度的文心一言,非常方便注册和使用。 使用的示例我在51Testing测试圈中的免费讲堂《测试人员必备的测试技术》中也有引用,都是所有测试工程师都耳熟能详的示例。 正文一、 使用AI分析需求提取测试点程序名称:判断是否为三角形的软件 程序需求:程序接收3个整数,代表三角形的三个边长,判断3个整数是否可以构成一个三角形,并进一步判断是一般三角形、等腰三角形还是等边三角形。 接下来,使用AI分析测试需求,并提取测试点。 向人工智能(百度文心一言)提出的问题,也就是描述需求,如下图所示。 图1-1 向人工智能提问
人工智能(百度文心一言)根据要求输出的回答内容如下图所示,由于太长,所以分成两个部分展示。
图1-3 回答的第二部分
当然这个需求说明非常简单,但我也不得不说,非常有参考价值,就不说很好了,免得它骄傲。
接下来,我们继续“调教”AI,把软件测试工程师的基本技能都赋予它,如下图所示。
人工智能(百度文心一言)这次输出的内容非常多,我们分成两个部分展示。 图1-5 第一部分
图1-6 第二部分
怎么样?还可以吧,比较中规中矩,但是“调教”AI,重要的是“教”,也就是把你,一个资深的软件测试工程师的经验教给它,这一步实际上是最重要的。
图1-7 继续“调教”通过继续“调教”的步骤,也就是赋予经验给它,它的回答就会更加完善,如下图所示。
图1-8
在“调教”的时候,也可以根据AI自动生成的提示词继续完善回答内容,当然也需要我们根据自己的经验进行取舍,如下图所示。
图1-9
二、使用AI根据测试点生成测试用例
通过一个简单的示例,人工智能(百度文心一言)给出的结果确实具有参考价值,接下来,我们继续使用它,让它生成测试用例,问题非常简单就不截图了,就是根据以上总结的测试点用表格的形式生成测试用例,输出的回答如下图所示。
图1-10 第一部分
图1-11 第二部分
图1-12 第三部分
写的很简单,这是因为我们“调教”的不够好,我们可以根据实际情况修改输出的测试用例的格式,比如更加专业的用例编号、测试项目、重要级别等等。
图1-13
通过以上的“调教”提示词,我们得到了进一步完善的测试用例,只是简单的训练,效果还可以,如下所示。
图1-14 第一部分
图1-15 第二部分图1-15 第二部分图1-15 第二部分
图1-15 第二部分
图1-16 第三部分
我们在问几个比较有趣的问题,看看AI怎么回答,如下图所示。
根据上面几个问题的答案,我们可以得出结论,待“调教”的AI还有很大的成长空间。
由于篇幅所限,这里仅仅使用等价类划分方法进行举例,其它的因果、场景、状态图、条件组合等方法,读者可以自行实验。
三、AI可行性实验总结
结论一,AI可以辅助测试工作,而且效率比搜索引擎要高。
结论二,使用AI的人经验越足,能力越高,则“调教”出来的AI能力越高,这个实际上在上述内容的演示中就可以看出来。一个专业的绘画高手,使用AI设计出的作品,与一个业余绘画爱好者使用AI设计的作品,差距会非常明显,很简单的道理,美学素养都不一样,“调教”出的AI肯定不一样,连专业术语都不熟悉的人,怎么设计提示词嘛。
结论三、AI在测试领域不止可以辅助功能测试,也可以辅助性能、自动化和安全测试,而且效率非常高。当然,需要有专业的人士进行“调教”,要承认一个事实,不同的人“调教”出的AI,能力是不同的。
结论四,“调教”AI实际上是把自己的经验赋给AI的一个过程,像老师教学生,但这个学生有一个超能力,就是强大的计算能力和大数据能力,就是没啥想象力,也会出错,所以需要教,教完以后绝不会犯第二次错。
结论五、这是最重要的,AI就是一个工具!用好了,有加成效果,用不好,那还不如用搜索引擎呢。
最后,我想基于一个问题说说自己的想法,那就是AI是不是可以替代人类工作?当然,你也可以直接问AI,但是问这种问题就好像在问一个卖瓜的人他的瓜甜不甜,他会说不甜吗,只能给你一个看似中肯的答案,还是别人喂给它的答案。
完全替代的可能性不大,反正在我可看见的未来应该机会不大,但是在某些领域减少工作,如果AI大力推广的话,应该问题不大,比如说,一间医院原来有10个医生,用了AI以后,也许5个就够了。
那技术领域会怎么样的?我说的技术领域范围只限定在开发和测试。
开发,先不说复杂多变及跨领域的需求或者基于客户意愿定制化的需求,仅仅从编码层面来看,用AI开发代码的程序员要有很强的测试思维,估计会有很多Bug或者安全漏洞,这很容易理解,因为“喂”给它的代码都是人写的,都有Bug,所以它写的代码也不会很完美,毕竟深度学习这个东西,是模拟人脑的神经元链接方式搞出来的,产生结果的原理具有不可解释性,你仔细体会一下不可解释性这个词。
还有就是测试,我觉得替代不了,用AI测试AI,它都不可解释了,能信任它吗,如果AI全领域覆盖,一旦出问题就是大问题,后果绝对不能承受,就算把所有的代码都规范化处理,AI生成代码完全依据规范开发,这个过程也需要有人监督。
我们都知道AI已经应用在安全领域的某些方面了,但是AI自身的安全性谁来保证,AI只是应用层面的技术,支撑它运行的基础设施从冯诺依曼以来就没变过,这是基础设施层面的,实际上AI系统自身也是非常脆弱的。
所以也不需要太神话AI,AI就是一个工具,到底是不是第四次工业革命,我看现在下结论还为时过早,就算是,也只是刚刚开始,都不一定能成功。
最后开一个玩笑,也许哪天基因工程领域实现了突破性的进展,人脑直接开发到百分之百,去看一下超脑那部电影,还用啥AI。
我不是反对AI。我使用后的感受就是,AI是一个非常有效率的工具,国内的AI产品做的也非常好,但是没必要过度神话AI,搞得很多人焦虑。
|