一、背景
随着人工智能技术的快速发展,尤其是在自然语言处理(NLP)、计算机视觉和生成对抗网络(GANs)等领域,AIGC(AI Generated Content)得到了广泛应用,这一技术的进步使得内容创作变得更加高效与多样化,推动了各个行业的创新与变革。对于测试而言,基于AI进行测试用例生成也逐渐从梦想变成现实。
传统问题
目前我们在编写测试用例时,大部分依赖人工编写,在实际编写过程中主要存在以下问题:
- 用例编写量大:传统的测试用例编写方法通常会耗费测试人员大量的时间和精力,编写效率不高;
- 编写颗粒度粗:由于时间有限,手工编写测试用例可能存在部分测试场景的遗漏,如边界场景、异常场景等;
- 维护成本高:不同测试同学编写习惯不同,导致部分用例的可读性较差,增加后期维护成本。
因此,借助AI技术自动生成初步的测试用例,随后由测试人员进行审核和优化,可以显著缩短用例的准备时间,提高测试工作的效率。
目标
利用AI技术自动生成测试用例,缩短编写测试用例的时间;
通过AI辅助生成测试用例,提升测试用例的覆盖范围和可读性。
二、方案
技术实现
“RAG:指的是检索增强生成(Retrieval-Augmented Generation),这是一种结合了信息检索和文本生成的技术,通过检索相关信息来增强生成模型的能力,提高生成文本的相关性和准确性。”
“LLM:指的是“大型语言模型”(Large Language Model),这些模型是基于深度学习技术构建的,专注于自然语言处理(NLP),能够处理和生成自然语言文本数据。”
核心功能介绍
整个AI生成测试用例的功能主要分为三个方面:
- 用户输入:提供AI对话框,可供用户从需求PRD中复制粘贴功能点,实现快速输入;
- 测试点分析整合:提供智能提取测试点和专家经验介入的能力,用户可以对AI生成的测试点进行灵活调整;
- 用例生成:基于调整好的测试点自动生成对应的测试用例,并可一键同步至平台,方便后续的管理和使用。
使用流程
需求输入
1.选择相关需求的用例模块,点击“AI生成用例”按钮跳转至AI生成用例交互页面:
2.从需求PRD复制功能点,粘贴到输入框并发送:
完善测试点
1.评估AI提取出的测试点,选择可用的测试点并采纳到左侧的测试点列表中;
2.手动增/删/改左侧测试点列表中的测试点:
生成用例
1.点击生成测试用例按钮,等待测试用例生成;
2.测试用例生成成功后,可直接对生成的用例进行增/删/改,点击保存用例按钮将生成的用例保存;点击同步平台按钮将生成的用例同步至用例平台:
3.用例同步至平台采用的增量同步方式,不会将平台已有的用例覆盖。
三、探索实践
实践策略
我们制定了以上4种实践策略,分别在A业务域和B业务域进行功能的试用,探索AI辅助生成测试用例的落地方案,具体包括以下内容:
“A业务域主要面向公司的客户服务团队,包括一线客服、技术支持人员以及管理层等,提供了包括工单管理、实时聊天、知识库和客户反馈分析等多种功能,以提升客户支持的效率和服务质量,确保客户始终能够获得优质的服务体验。当前已上线的产品主要涉及Web端、PC端和APP端。
B业务域主要致力于运用产品、技术、数据等手段,全面提升公司的效率,该业务域的用户群体涵盖了公司各个部门的员工,规模量级庞大,涉及上万名员工的日常工作需求,目前已上线的产品主要集中在Web端,包括项目管理、内部协同和沟通、办公效率等多种功能。”
- 小范围试点:分别在A业务域和B业务域内开展小范围试点工作,评估AI生成测试用例的有效性和全面性,以满足不同业务域的实际业务需求;
- 持续推进:采用“以点带面”的策略,根据不同的业务场景和用户需求,分阶段推进AI生成测试用例的应用,逐步扩大应用范围,优化用户体验,确保AI工具能够适应多样化的业务需求;
- 迭代复盘:在试用过程中,定期进行迭代复盘,通过收集迭代数据和用户反馈并分析,探讨后续改进和优化的方向,并持续验证优化效果;
- 多维度指标量化:制定准确度、覆盖度、使用率等多个维度的评价指标,分析这些指标的变化趋势,全面衡量AI生成测试用例的潜在表现,确保其能够满足日常使用需求。
交互标准
需求分类和预处理
不同复杂度的需求其用例生成效果存在差异,根据需求的复杂程度,建立简单需求/复杂需求划分标准,对比不同需求的用例生成效果,优先选取生成效果较好的简单需求进行功能的使用。参考需求划分标准如下:
简单需求:研发资源<=7人日、测试资源<=1人日的需求
复杂需求:研发资源>=7人日、测试资源>=1人日的需求
其次,部分需求的PRD文档存在功能点描述简单、含糊不清等情况,直接复制这些功能点进行AI用例生成,用例生成的准确性和全面性都较差。因此,可以先对这种情况的输入进行预处理,列举出具体的功能点和预期结果,再输入到AI进行测试用例生成,提升用例生成的效果,具体示例如下:
持续分批对话
AI生成用例时,可以分点输入功能点,以生成更多、更详细的测试点,包括一些边界、异常场景等,提高采纳率和覆盖率。具体的对比效果如下:
- 全部功能点输入:
- 功能点分点输入:
专家经验输入
- 输入命令自动调整测试点:目前平台支持用户输入命令并结合上文信息对生成的测试点进行调整,在初始生成的测试点基础上,输入一些简单的命令,例如“帮我拓展一下测试点X”、“合并测试点XX”等,优化AI生成测试点的生成效果。
- 手动调整测试点:目前AI生成的测试点无法做到完全覆盖所有的功能点,可能存在生成的测试点不全或测试点描述不准确的情况,可以在AI生成的测试点基础上,人工介入补充遗漏的测试点以及修改描述不准确的测试点,提升AI生成用例的效果。
关键项推进
量化生成效果
问题描述:AI生成的评价指标只有采纳率,难以全面评估AI生成测试用例的具体效果。
解决方案:在已有采纳率的基础上,新增覆盖率、需求使用率两个评价指标,分别刻画AI生成用例的实际覆盖程度以及各域AI生成用例功能的具体使用情况,其具体计算公式如下:
- 需求使用率 = 使用AI生成用例的需求 / 子域总需求 * 100%(研发自测需求除外)
- 采纳率 = 评估后采纳用例 / AI生成用例 * 100%
- 覆盖率 = 评估后采纳用例 / 人工调整扩充后的总用例 * 100%
后续改进:目前仍然无法衡量具体的提效效果,后续会配合平台探究更多的评价数据和指标,例如单需求的用例生成时间、用例编写理论提效时间等。
降低生成时长
问题描述:测试点较多时,AI生成测试用例时间太长,有时界面卡死,一直显示正在生成中。
解决方案:更换新的AI,切换为GPT-4o-mini,优化了AI生成用例的时间,一般生成时间不超过1min;同时解决了因平台刷新机制导致的界面卡死无法实时刷新的问题。
提高生成精度
问题描述:AI生成的测试用例准确度较低,且存在较多重复用例。
解决方案:引入RAG技术,将业务域的历史存量用例作为AI的背景知识库信息,检索生成更准确的测试用例。同一需求接入RAG前后的生成效果对比如下:
- 需求1:
接入RAG前:AI总结测试点5条,AI生成11条用例,采纳8条用例,采纳率:72%;
接入RAG后:AI总结测试点6条,AI生成14条用例,采纳12条用例,采纳率:85%;
接入RAG前:
接入RAG后:
- 需求2:
接入RAG前:AI总结测试点7条,AI生成23条用例,采纳12条用例,采纳率:52%;
接入RAG后:AI总结测试点8条,AI生成17条用例,采纳16条用例,采纳率:94%;
接入RAG前:
接入RAG后:
优化交互体验
问题描述:目前用例平台所使用的AI自由prompt的能力太差,无法联系上文信息持续进行命令提示,优化所生成的测试点。
解决方案:平台对功能进行优化,修复了AI丢失上下文关联的缺陷,支持自由prompt,AI能够根据用户输入命令结合上文信息对生成的测试点进行调整:
初始输入:
输入命令,结合上文信息拓展测试点:
四、实践结论
在上述行动标准的实施和关键项推进的同时,我们对A业务域和B业务域持续多个迭代的AI生成测试用例数据进行了梳理整合,评估AI生成用例的目标达成情况 。
数据对比
迭代维度
- A业务域与B业务域1-6迭代的需求使用率、采纳率、覆盖率统计如下:
- A、B业务域各迭代需求使用率、采纳率、覆盖率的变化趋势:
需求维度
- 简单需求和复杂需求AI生成测试用例的采纳率、覆盖率,以及总体的使用人数、使用需求数的数据统计如下:
结论
通过分析对比需求维度和迭代维度的数据图表,可以得出以下几点结论:
- 效率提升明显:目前对简单需求使用AI生成用例的平均采纳率和覆盖率维持在较高水平,能够覆盖核心功能点和场景,测试同学只需要补充一些异常/非功能分析的用例即可,基本可以节约40%的用例编写时间;
- 生成准确率高:AI生成测试用例的采纳率提升尤为明显,最近迭代两域的采纳率在90%以上,这表明AI生成的功能用例绝大部分都是可用且有效的;
- 生成全面性不足:各迭代的平均覆盖率还有较大提升空间,AI生成的测试用例难以覆盖全部业务场景,仍然需要测试人员手动补充覆盖;
- 复杂需求生成效果差:A业务域在试用初期引入了一些较为复杂的需求进行实验,导致采纳率有所下降,从侧面反映出目前AI在复杂需求上的用例生成效果还有待提升。
五、总结&规划
总结
综上所述,本文的探索成功实现了得物基于AIGC在质量保障方面的创新应用,通过这种AI生成测试用例的方式,我们能够显著降低人工编写用例的时间和成本,提升测试用例的准确性和规范性。后续我们会不断优化AI生成测试用例的功能,确保其能够生成更准确的用例,覆盖更广的测试场景,在未来的测试工作中发挥更大的价值。
未来规划
- AI生成准确性和全面性提升:针对数据对比结论所反映出的复杂需求采纳率和覆盖率偏低的问题,后续可以从以下两个方向进行优化:
- 接入不同的AI对比用例生成效果,供用户自由切换选择;
- 增加输入途径,充分结合技术文档、需求评审、技术评审等渠道,提升用例生成的准确性和全面性。
- 研发自测需求功能推广:研发同学可以使用AI快速生成可靠的测试用例,减少自测的时间和人力成本,让研发能够更专注于业务逻辑的开发,同时提升自测的有效性和全面性;
- 历史存量用例相似度匹配检索:分析历史用例,计算相似度并进行匹配,以便生成新测试用例时推荐出最相关的存量用例,同时提供可视化界面,帮助测试人员直观地查看和选择存量相似用例,以提高用例的复用率;
- 支持多模态数据输入:支持从不同类型的数据源(如文本、图像、视频等)获取需求信息,增强AI生成测试用例的效果,生成与视觉交互相关的测试用例;
- 记录用户操作持续反哺大模型:建立用户行为分析机制,记录用户对AI生成用例的增删改操作,分析用户的实际需求和偏好,利用用户的反馈数据来不断训练和优化模型,生成更贴合用户编写习惯的用例,提升生成质量。
文 / 南瓜&齐
关注得物技术,每周更新技术干货
要是觉得文章对你有帮助的话,欢迎评论转发点赞~
未经得物技术许可严禁转载,否则依法追究法律责任。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。