基于AI的测试用例生成工具
现在有很多软件企业尝试将 大语言模型(LLM)应用于软件开发全生命周期的工作任务中,辅助工程师的日常工作。
本文是在杭州酷家乐公司(是一个3D设计领域的头部企业)在测试领域对测试用例生成的尝试,在该文下方的评论区也有很多互动,如下所示。
我认为,企业内部有自己的RAG应该是必选项,特定的业务领域不能指望通用的大语言模型。
简单总结一下:有些帮助,但限制也很多,还有很长的路要走。
例如:
(1)对输入质量要求很高(现实的工作中,对人的要求都不会这么高)
(2)对于复杂逻辑(如条件过多,流程过长)只能有限应对,但还不能依赖;
酷家乐作为3D设计领域头部企业,一致致力于通过AI赋能用户提升效率,公司内部也通过AI中台对各个业务线提供能力支持。作为测试团队,内部也成立了AI虚拟小组,专门研究如何通过AI进行测试提效。
提高用例编写效率:测试用例的编写是测试人员的一项基本技能,其质量对需求验证、测试阶段乃至最终的产品上线具有重要影响。然而,传统的测试用例编写方法通常会耗费测试人员大量的时间和精力。借助AI技术自动生成初步的测试用例,随后由测试人员进行审核和优化,可以显著缩短用例的准备时间,从而提高测试工作的效率。
2.2 用例生成方式
直接生成:在【直接生成】tab下,将需求内容粘贴进输入框内,点击【生成用例】按钮,即可直接进入用例生成环节。
图片上传:在【直接生成】tab下,通过点击【以图识需】按钮上传要进行用例生成的图片。手动调整识别结果之后点击【生成用例】按钮,即可进入用例生成环节。
自由prompt方式生成:在【自由生成】tab下,将需求内容粘贴进需求输入框内,用户可以手动调整平台提供的prompt内容,调整完成之后点击【生成用例】按钮,即可进入用例生成环节。
2.3 用例增删改
平台支持在线针对生成的测试用例进行编辑,新增和删除操作。具体操作方式如图所示。
2.4 用例导出
直接导入到公司内部用例管理平台,可以直接发起用例评审,创建测试计划等操作。
导出xmind
三、用例生成流程
四、工具优化过程
4.1 原因分析
单个服务的稳定性问题:早期时,我们只对接了一个GPT服务。当这个服务出现了一些不稳定的问题时,如网络问题,都会直接导致我们的用例生成任务失败。 GPT服务的输入长度限制:GPT服务支持的输入内容是有长度限制的,当用户输入内容超出长度限制时会直接返回失败结果。这就导致现有能力不支持大需求文本输入。
技术实现问题:前端技术实现原因导致请求直接被浏览器block问题。
4.2 服务不稳定问题处理
针对GPT服务的稳定性问题,我们的主要做了两方面的优化:
增加失败重试机制。在生成失败的情况下,进行2次请求重试。从实际使用角度来看,这种方式效果不明显,因为重试时间间隔基本是秒级的,在这么短的时间内不稳定问题不会得到快速解决。
引入其它大模型。如2.1中平台框架图所示,我们在GPT服务的基础上,引入了文心一言和minimax两个大模型作为备用用例生成引擎。当GPT服务生成失败之后,会尝试使用备用引擎进行用例生成,这种方式能明显解决单个GPT服务不稳定的问题。
4.3 长度受限问题处理
针对GPT服务支持的长度存在限制问题。引入文心一言服务作为产品经理角色进行需求理解,使用文心一言理解出的需求点再调用GPT服务进行用例生成,这样就可以将文心一言的中文处理优势和GPT服务的用例生成能力优势进行结合。
4.4 其它优化
前端对用户输入内容进行加密,避免出现XSS(跨站脚本攻击,Cross-site scripting)安全问题 开放了自由prompt功能,支持用户自由调试prompt内容,找到最适合自己的生成方式。
五、总结&展望
5.1 应用成果
目前平台已累计创建用例生成任务300+,生成用例2000+,用例生成成功率 80%+。可以在一定程度上提升测试人员的用例编写效率。
5.2 局限和问题分析
缺乏领域知识:会缺乏对特定领域或业务逻辑的深刻理解,导致生成的测试用例不够全面或准确,进而导致遗漏某些关键路径或边界条件。
对非功能性需求处理能力有限:在处理如性能、安全性等方面的能力相对较弱,可能无法生成包括这些方面的全面测试用例。 复杂性和深度理解不足:对于特定领域或高度复杂系统,AI可能无法提供足够深入和全面的测试用例生成,需要更多人类专家的介入和理解。 用例生成效果难以评估:AI生成的用例有多少是可以直接被采用的,有多少是完全被废弃的,当前还缺少有效的评估标准。