从大模型(LLM)驱动需求工程、LLM驱动软件设计到LLM驱动编程,一路走过来,现在来到“LLM驱动测试”。根据中国信通院云大所调查的数据结果看,其中“LLM驱动测试”提升的效能是最高的,中位值比开发还要高2.5%,最高达到90%。从这个角度看,每一个测试人员都要把LLM用起来,不管是开源的还是闭源的,而且选择的余地还是比较大的。下面的例子,分别是在智谱AI智能体、文心一言、讯飞星火和阿里通义千问。
LLM驱动测试,原则上就是训练好自己的研发大模型、测试大模型或代码大模型,然后再进行软件测试的计划、分析、设计、执行和结果分析与评估。LLM驱动测试可以贯穿整个软件测试生命周期,从需求评审、设计评审、代码评审到单元测试、系统测试和验收测试。在写本文之前,也有比较多的介绍,例如:
-
GPT-4发布时,我做的实验:GPT-4 开启 “软件工程3.0” 全新时代;
-
代码评审:如何借助GPT-4评审、重构代码?(这里面也有:软件工程3.0实践之路(六):LLM驱动编程,银弹快来了吗?)
-
单元测试:国内首个基于大模型的智能测试助理TestAgent开源了!(单测也属于开发:软件工程3.0实践之路(六):LLM驱动编程,银弹快来了吗?)
-
API测试:AiDD峰会上海站(5月17-18)贝壳公司的测试专家将来分享这方面的完整案例。本文下面也给出了一个简单的案例。
-
系统测试:华为智能化测试C-TMG主任、智能化测试专家万锐媛博士在2023年AiDD峰会深圳站分享的“LLM辅助系统测试脚本代码生成 ”
-
LLM驱动测试总体情况调研结果:使用大模型进行软件测试:调查、现状和展望
~LLM驱动测试计划、验收测试~
根据上面所列的内容,LLM驱动测试几乎覆盖了整个测试的生命周期,但生成测试计划(测试分析)任务、验收测试还缺少案例,在这里补上这方面的例子。
,时长02:48
(这里选用了一个相对复杂的银行催收系统,但我和智能体交互时间还比较短,也没有进行指令优化、多次交互细化测试计划和分析,但这个例子基本能反映LLM驱动测试计划和分析上的巨大价值)
(这是我去年在南京某家公司现场演示的案例:基于业务流程图生成测试用例——E2E的验收测试用例)
(进一步,生成上面E2E的测试用例1的详细、规范的描述)
除了功能测试,我们还可以扩展到接口测试、性能测试和安全性测试,下面分别通过视频展现,更能体会哪家大模型生成的结果更好,而且性能(生成速度)也不错。
~LLM驱动接口测试~
智能体有两种模式,直接生成脚本或生成下载到xml文件。
,时长01:12
(先生成接口测试用例,再生成脚本文件,供下载。相对来说,智能体生成速度较慢,也许是算力不足)
,时长02:26
(直接生成脚本,总共有8条测试用例,其实还可以进一步提示,让它生成更充分的测试用例)
其他大模型,包括GPT3.5 Turbo、文心一言、讯飞星火、阿里通义千问等基本都是直接生成测试脚本,多数是生成一个文件,而讯飞星火是每一个脚本是一个文件,提供了代码窗口和拷贝功能。注:提示词是一样的。
,时长00:40
(GPT3.5生成接口测试用例有4+6=10个,但生成脚本只有2+5=7个,而GPT4生成脚本也只有1+6=7个,但更规范,有了TestCase id、<Description>等)
,时长01:48
(文心一言生成,有Test case IT,速度快、脚本完整,生成了7个用例)
,时长00:46
(讯飞星火生成速度更快,只用了40秒生成了7个用例)
,时长01:10
(通义千问生成内容有较详细的说明,而且有test suite概念,但生成的负面测试用例比较少,只有3个)
LLM驱动接口测试,还可以做更多工作,留到今年AiDD峰会上海站前两天(5月15-16)的培训课程《大模型驱动全程测试的实践之路》再细讲,敬请关注
~LLM驱动性能测试~
下面我们看看LLM如何驱动性能测试,包括性能测试计划(方案)、性能测试策略、性能测试过程指导以及到测试工具的配置、脚本生成等。为了节省篇幅,这里就展示LLM生成JMeter配置指导书和脚本(.jmx,有的大模型无法生成)。
,时长01:15
(智能体相对比较强,生成的配置完整、过程清楚,还生成XML格式的jmx脚本)
,时长00:55
(通义千问描述性能测试策略比较完整、正确有效,JMeter配置过程描述清楚、基本准确,但没有生成XML格式的jmx脚本)
,时长01:13
(讯飞星火描述性能测试测试有错误、基本没用,过程描述比较high level,但JMeter配置步骤具体、详细,最后也没有生成XML格式的jmx脚本)
LLM驱动安全性测试更有意思,包括web漏洞分析和测试,我就不放出来了,留到今年AiDD峰会上海站前两天(5月15-16)的培训课程《大模型驱动全程测试的实践之路》再细讲,敬请关注
另外,AiDD峰会上海站有“AI赋能测试”专场、增加了“AI智能体”专场,欢迎提交议题或现场交流讨论(详见:https://www.aidd.vip/sh)
看完这些,作为一个测试人员,如果不会用LLM,是不是很有可能被那些能熟练使用LLM的同仁所淘汰?而且LLM应用水平,也取决于我们自己的测试水平(包括测试理论水平和实践经验),正如我常说的,人机交互智能、人机结对测试是未来常态。