得物技术 2024年12月30日
得物基于AIGC生成测试用例的探索与实践
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文深入探讨了如何利用AIGC技术,特别是大型语言模型和检索增强生成技术,来提升测试用例的生成效率和质量。通过引入AI,可以显著减少人工编写测试用例的时间,提高测试用例的覆盖率和准确性。文章详细介绍了该方案的技术实现、核心功能、使用流程,以及在实际业务场景中的应用和效果。结果表明,AI在生成简单需求用例时效率提升显著,但复杂需求仍需人工辅助。未来,将持续优化AI模型,并探索更多创新应用,以满足不同场景下的测试需求。

💡**RAG与LLM技术结合**:文章介绍了RAG和LLM在测试用例生成中的应用,RAG通过检索相关信息增强生成模型能力,LLM则专注于处理和生成自然语言文本,两者的结合提高了生成文本的相关性和准确性。

⚙️**AI测试用例生成流程**:文章详细阐述了AI生成测试用例的流程,包括用户输入需求、AI分析整合测试点、以及最终自动生成测试用例。用户可以灵活调整AI生成的测试点,并将其同步到平台进行管理和使用。

📊**实践策略与数据分析**:文章提出了小范围试点、持续推进、迭代复盘、多维度指标量化等实践策略,并在A、B业务域进行了试点。通过数据对比分析,发现AI在简单需求用例生成方面效率提升明显,但在复杂需求方面仍有不足,需要人工辅助和优化。

🎯**关键项推进与优化**:文章针对AI生成效果、生成时长、生成精度和交互体验等问题,提出了相应的解决方案,包括更换AI模型、引入RAG技术、优化交互体验,并量化生成效果指标,例如需求使用率、采纳率和覆盖率。

📈**未来规划与展望**:文章提出了未来优化方向,包括接入不同AI模型、增加输入途径、推广研发自测需求功能、引入历史用例相似度匹配、支持多模态数据输入等,并强调利用用户反馈数据不断训练和优化模型。

原创 南瓜&齐 2024-12-30 18:34 上海

随着人工智能技术的快速发展,AIGC(AI Generated Content)得到了广泛应用,这一技术的进步使得内容创作变得更加高效与多样化,推动了各个行业的创新与变革。对于测试而言,基于AI进行测试用例生成也逐渐从梦想变成现实。

目录

一、背景

    1. 传统问题

    2. 目标

二、方案

    1. 技术实现

    2. 核心功能简介

    3. 使用流程

三、探索实践

    1. 实践策略

    2. 交互标准

    3. 关键项推进

四、实践结论

    1. 数据对比

    2. 结论

五、总结&规划

    1. 总结

    2. 未来规划


背景

随着人工智能技术的快速发展,尤其是在自然语言处理(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生成用例时,可以分点输入功能点,以生成更多、更详细的测试点,包括一些边界、异常场景等,提高采纳率和覆盖率。具体的对比效果如下:



专家经验输入



关键项推进

量化生成效果


问题描述:AI生成的评价指标只有采纳率,难以全面评估AI生成测试用例的具体效果。


解决方案:在已有采纳率的基础上,新增覆盖率、需求使用率两个评价指标,分别刻画AI生成用例的实际覆盖程度以及各域AI生成用例功能的具体使用情况,其具体计算公式如下:


后续改进:目前仍然无法衡量具体的提效效果,后续会配合平台探究更多的评价数据和指标,例如单需求的用例生成时间、用例编写理论提效时间等。


降低生成时长

问题描述:测试点较多时,AI生成测试用例时间太长,有时界面卡死,一直显示正在生成中。


解决方案:更换新的AI,切换为GPT-4o-mini,优化了AI生成用例的时间,一般生成时间不超过1min;同时解决了因平台刷新机制导致的界面卡死无法实时刷新的问题。


提高生成精度

问题描述:AI生成的测试用例准确度较低,且存在较多重复用例。


解决方案:引入RAG技术,将业务域的历史存量用例作为AI的背景知识库信息,检索生成更准确的测试用例。同一需求接入RAG前后的生成效果对比如下:


接入RAG前:

接入RAG后:


接入RAG前:

接入RAG后:


优化交互体验

问题描述:目前用例平台所使用的AI自由prompt的能力太差,无法联系上文信息持续进行命令提示,优化所生成的测试点。


解决方案:平台对功能进行优化,修复了AI丢失上下文关联的缺陷,支持自由prompt,AI能够根据用户输入命令结合上文信息对生成的测试点进行调整:

初始输入:


输入命令,结合上文信息拓展测试点:


实践结论

在上述行动标准的实施和关键项推进的同时,我们对A业务域和B业务域持续多个迭代的AI生成测试用例数据进行了梳理整合,评估AI生成用例的目标达成情况 。


数据对比

迭代维度








需求维度


结论

通过分析对比需求维度和迭代维度的数据图表,可以得出以下几点结论:

    效率提升明显:目前对简单需求使用AI生成用例的平均采纳率和覆盖率维持在较高水平,能够覆盖核心功能点和场景,测试同学只需要补充一些异常/非功能分析的用例即可,基本可以节约40%的用例编写时间;

    生成准确率高:AI生成测试用例的采纳率提升尤为明显,最近迭代两域的采纳率在90%以上,这表明AI生成的功能用例绝大部分都是可用且有效的;

    生成全面性不足:各迭代的平均覆盖率还有较大提升空间,AI生成的测试用例难以覆盖全部业务场景,仍然需要测试人员手动补充覆盖;

    复杂需求生成效果差:A业务域在试用初期引入了一些较为复杂的需求进行实验,导致采纳率有所下降,从侧面反映出目前AI在复杂需求上的用例生成效果还有待提升。


总结&规划

总结

综上所述,本文的探索成功实现了得物基于AIGC在质量保障方面的创新应用,通过这种AI生成测试用例的方式,我们能够显著降低人工编写用例的时间和成本,提升测试用例的准确性和规范性。后续我们会不断优化AI生成测试用例的功能,确保其能够生成更准确的用例,覆盖更广的测试场景,在未来的测试工作中发挥更大的价值。


未来规划

    AI生成准确性和全面性提升:针对数据对比结论所反映出的复杂需求采纳率和覆盖率偏低的问题,后续可以从以下两个方向进行优化:

    接入不同的AI对比用例生成效果,供用户自由切换选择;

    增加输入途径,充分结合技术文档、需求评审、技术评审等渠道,提升用例生成的准确性和全面性。


    研发自测需求功能推广:研发同学可以使用AI快速生成可靠的测试用例,减少自测的时间和人力成本,让研发能够更专注于业务逻辑的开发,同时提升自测的有效性和全面性;


    历史存量用例相似度匹配检索:分析历史用例,计算相似度并进行匹配,以便生成新测试用例时推荐出最相关的存量用例,同时提供可视化界面,帮助测试人员直观地查看和选择存量相似用例,以提高用例的复用率;


    支持多模态数据输入:支持从不同类型的数据源(如文本、图像、视频等)获取需求信息,增强AI生成测试用例的效果,生成与视觉交互相关的测试用例;


    记录用户操作持续反哺大模型:建立用户行为分析机制,记录用户对AI生成用例的增删改操作,分析用户的实际需求和偏好,利用用户的反馈数据来不断训练和优化模型,生成更贴合用户编写习惯的用例,提升生成质量。


往期回顾


1.软件开发领域变革前夕-AI智能编码的发展|得物技术

2.Java程序中的潜在危机: 深入探讨NullPointerException|得物技术

3.基于RocksDB编写一个简单的SQL数据库|得物技术

4.站外商详的重构与优化|得物技术

5.如何以MLOps保障时效表达稳定性|得物技术


文 / 南瓜&齐


关注得物技术,每周一、三更新技术干货

要是觉得文章对你有帮助的话,欢迎评论转发点赞~

未经得物技术许可严禁转载,否则依法追究法律责任。

扫码添加小助手微信

如有任何疑问,或想要了解更多技术资讯,请添加小助手微信:


阅读原文

跳转微信打开

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

AIGC 测试用例生成 人工智能 RAG LLM
相关文章