通过 AI 生成测试用例的落地实践
随着科技的发展,AI能力不断提升,无论是国内还是国外,各大公司在不断推出自己的AI大模型。对于测试而言,基于AI大模型进行测试用例生成也逐渐从梦想变成现实。
作为测试人员,编写测试用例是一项基本技能,其质量对需求验证、测试阶段乃至最终的产品上线具有重要影响。
然而, 传统的测试用例编写方法通常会耗费测试人员大量的时间和精力 。
借助AI技术自动生成初步的测试用例,随后由测试人员进行审核和优化,可以显著缩短用例的准备时间,从而提高测试工作的效率。 目前平台已累计创建用例生成任务300+,生成用例2000+,用例生成成功率 80%+。可以在一定程度上提升测试人员的用例编写效率。
注意: 本文首发时间为2024年。经过近一年的时间,现状可能与本文描述不完全一致。
这是一个基于AI大模型的测试用例生成平台,致力于通过AI为测试同学提升用例编写效率。平台集成了三种AI引擎,支持多种输入方式、支持用例在线增删改、支持两种用例导出方式。
平台框架图如下
然而, 传统的测试用例编写方法通常会耗费测试人员大量的时间和精力 。
借助AI技术自动生成初步的测试用例,随后由测试人员进行审核和优化,可以显著缩短用例的准备时间,从而提高测试工作的效率。 目前平台已累计创建用例生成任务300+,生成用例2000+,用例生成成功率 80%+。可以在一定程度上提升测试人员的用例编写效率。
注意: 本文首发时间为2024年。经过近一年的时间,现状可能与本文描述不完全一致。
二、内部工具的工作流示意图
2.2 用例生成方式——支持三种方式输入
- 直接生成:在【直接生成】tab下,将需求内容粘贴进输入框内,点击【生成用例】按钮,即可直接进入用例生成环节。
- 图片上传:在【直接生成】tab下,通过点击【以图识需】按钮上传要进行用例生成的图片。手动调整识别结果之后点击【生成用例】按钮,即可进入用例生成环节。
-
自由prompt方式生成:在【自由生成】tab下,将需求内容粘贴进需求输入框内,用户可以手动调整平台提供的prompt内容,调整完成之后点击【生成用例】按钮,即可进入用例生成环节。
2.3 用例增删改
平台支持在线针对生成的测试用例进行编辑,新增和删除操作。具体操作方式如图所示。2.4 用例导出——支持两种导出方式
- 直接导入到公司内部用例管理平台,可以直接发起用例评审,创建测试计划等操作。
- 导出xmind:导出为本地.xmind文件,可以继续在本地针对用例进行一些操作。
三、用例生成流程
由于 大模型的响应和结果处理是一个漫长的过程,通常需要几十秒的时间 ,因此我们采用了离线生成的方式,由前台页面轮询任务状态接口,来判断用例是否生成完成,当前端接收到用例生成完成之后再通过接口拉取生成结果。 一个需求的用例离线生成大致可以分为以下步骤: 需求落库 , 定时任务拉取需求内容 , 需求预处理 , 组装prompt , 调GPT服务生成用例 , 用例解析 , 生成失败重试 , 任务状态更新 , 用例落库四、工具优化过程
在工具建设的过程中,我们也遇到了不少的困难。其中最主要的问题就是用例生成失败问题, 在初期,大概有超过50%的生成任务会出现失败问题 。这是一个比较高的数字,针对失败问题,我们也做了很多的研究和优化工作。4.1 原因分析与解决方案
- 单个GPT服务的稳定性问题,如网络问题。 增加失败重试机制,但间隔为秒级,效果不太明显。引入其它大模型,效果不错。
- GPT 服务的输入长度限制 。自建的本地备用 LLM 引擎,但效果不如外部 GPT服务。 后来变成了两步走 。引入文心一言服务作为产品经理角色进行需求理解,产出需求点以后,再调用GPT 服务进行用例生成。另外,文档都是中文,尽可能选择中文友好的大模型。
4.4 其它优化
- 在向后端发起生成任务前,前端对用户输入内容进行加密,避免出现XSS( 跨站脚本攻击,Cross-site scripting) 安全问题
- 在日常用例编写过程中,每个测试同学的用例编写习惯不同。因此,我们开放了自由prompt功能,支持用户自由调试prompt内容,找到最适合自己的生成方式。
五、小结
5.1 应用成果 目前平台已累计创建用例生成任务300+,生成用例2000+,用例生成成功率 80%+。可以在一定程度上提升测试人员的用例编写效率。 5.2 局限和问题分析- 缺乏领域知识: 导致生成的测试用例不够全面或准确。进而导致遗漏某些关键路径或边界条件。
- 对非功能性需求处理能力有限 ,可能无法生成这些方面的全面测试用例。
- 复杂性和深度理解不足 :对于特定领域或高度复杂系统,需要更多人类专家的介入和理解。
- 用例生成效果难以评估 :AI生成的用例有多少是可以直接被采用的,有多少是完全被废弃的,当前还缺少有效的评估标准。