从 2020 年:GPT-3(Generative Pre-trained Transformer 3)的发布,展示了大规模预训练模型在多种任务上的卓越性能。到现在的 GPT-4,互联网各个行业好像不和大模型,AI 沾点边就有点不好意思说出来。各种互联网大会,技术大会,质量保障大会几乎全是相关的话题。先不论做到了什么程度,取得了什么效果,只要能讲出个子丑寅卯,就感觉到非常高大上。作为测试同学,我们又能做些什么呢?
一,大模型相关产品测试
随着各个行业纷纷推出大模型相关产品,相应的测试工作也变得尤为重要。例如,大模型问答系统(如百度的文心一言、字节跳动的豆包、快手的 KwaiPilot 等),以及 AI 生成视频、图片等工具,都需要经过严格的测试以确保其性能和可靠性。
1. 基本功能测试
在大模型产品发布之前,必须进行大量测试以确保其基本功能的稳定性和有效性。具体来说,这些测试包括但不限于以下几个方面:
- 问答质量测试:评估模型对各种问题的回答质量,包括准确性、逻辑性和流畅度。
- 上下文理解测试:检查模型是否能够正确理解和处理多轮对话中的上下文信息。
- 有效性测试:验证模型是否能够有效回答各类问题,包括常见问题和边缘案例。
- 特定功能测试:针对不同产品的特有功能进行测试,确保其能够完成预期的任务。例如,对于 AI 生成视频和图片的工具,需要测试生成内容的质量、多样性和创意性。 此外,还可以探索和总结新的测试方案,以提高测试的效率和效果。例如,利用自动化测试工具和框架,或者借鉴其他领域的测试方法。
2. 测试工具的开发
由于大模型相关产品较为新颖,现有的测试方法和工具可能无法完全满足需求。因此,开发专门针对大模型的测试工具显得尤为重要。以下是一些可能的发展方向:
- 自动化测试工具:开发能够自动生成测试用例和评估结果的工具,提高测试的效率和覆盖率。
- 大模型互测:利用大模型本身来测试其他大模型,通过模型之间的交互和反馈,发现潜在的问题和改进点。
- 多模态测试:针对多模态大模型(如文本、图像、视频等),开发综合性的测试工具,确保各模态之间的协调性和一致性。
- 性能测试:评估大模型在不同负载下的性能表现,包括响应时间、资源消耗等指标。 通过这些努力,可以更好地保障大模型产品的质量和用户体验,推动大模型技术的进一步发展和应用。
二,大模型生成测试用例
在软件测试过程中,手工编写测试用例一直是一项耗时且质量参差不齐的任务。随着大模型技术的发展,许多公司开始探索利用大模型来提高测试用例编写的效率和质量。以下是常见的解决方案及其面临的挑战:
1,常见解决方案
- 需求解析与测试点提取:利用大模型深入理解需求文档,自动识别并提出关键测试点。
- 业务上下文分析:结合知识库,分析需求在具体业务场景中的上下文关系,确保测试用例的全面性和准确性。
- 用例生成:通过提示词或示例,自动生成与需求相关的功能测试用例。
- 用例审核与反馈:将生成的用例提交给测试人员或业务专家进行审核和反馈,确保用例的实用性和有效性。
- 多 Agent 验证:针对质量不高的用例,通过多 Agent 协作进行验证和优化,直至生成高质量的测试用例。
- 最终用例集生成:整合所有反馈和优化结果,生成最终的测试用例集。
2,面临的挑战
- 需求文档的规范性:大模型对需求的理解依赖于文档的规范性。如果需求文档表述不清或不完整,大模型也无法准确理解需求。
- 业务上下文的复杂性:对于复杂的业务场景,大模型可能难以全面理解需求的上下文关系,导致测试点的遗漏或误判。
- 生成用例的相关性:仅基于字面意思生成的用例可能缺乏针对性,需要业务人员进行大量筛选和优化,这可能导致投入产出比低下。
3,解决建议
- 提升需求文档质量:加强需求文档的编写规范,确保文档清晰、完整,便于大模型理解和解析。
- 增强业务上下文分析:结合领域专家的知识和经验,补充大模型在业务上下文理解上的不足。
- 优化用例生成算法:改进大模型的生成算法,提高生成用例的相关性和针对性,减少无效用例的数量。
- 建立反馈机制:建立高效的反馈机制,及时收集测试人员和业务专家的意见,不断优化生成的用例。 通过以上措施,可以有效提高大模型生成测试用例的质量和效率,从而提升整体测试工作的效果。
三,接口自动化用例的生成
在自动化测试领域,接口自动化用例的自动生成具有最高的投入产出比。
1,为什么要生成接口自动化?
大多数公司都拥有详细的接口文档,其中包含接口地址、参数、返回数据等信息。通过将这些信息传递给大模型,可以生成相应的接口自动化测试用例,包括输入数据和输出断言。经过数据处理,这些用例可以转换为特定框架下的测试用例,或者直接导入到接口自动化平台,生成具体的测试用例。
2,如何自动生成接口自动化用例?
为了确保生成的用例具有高可用性,建议采取以下措施:
- 构建业务知识库:创建一个包含业务需求文档、技术文档以及现有用例数据的知识库。在生成用例时,可以参考这些资料,确保用例的准确性和全面性。
- 利用线上流量数据:将相应接口的线上流量数据作为输入,或者将其纳入知识库中。这有助于细化接口参数和返回值断言,提高用例的针对性和实用性。
- 提供接口调用链路数据:将接口的调用链路数据或接口代码传递给大模型,以便更全面地测试相关功能,确保用例覆盖所有关键路径。
- 执行生成的用例:将生成的用例通过接口自动化框架或平台进行执行。如果生成的用例执行失败,可以通过多 Agent 反馈机制进行重新生成和优化。
- 评估和优化用例:结合覆盖率和自动化测试结果分析,评估生成的用例质量。根据评估结果,进一步生成或优化用例,确保其高效性和可靠性。 通过上述措施,可以显著提高接口自动化用例的生成质量和效率,从而提升整体测试工作的效果。 在真正在业务场景中,可以配合精准测试,在提测试的时候,自动进行链路分析,分析出本次需求改动的接口。调用接口自动化平台,自动生成接口自动化用例,多 Agent 反馈优化后,执行自动化用例集,生成覆盖率报告,分析自动化测试的接口,进行需求提测的卡口工作。当然,你也可以结合自己的业务,进行更加灵活的运用。
四,UI 自动化用例生成
1, UI 自动化测试面临的挑战与解决方案
UI 自动化测试因其高昂的维护成本和较低的通过率,长期以来一直是业务团队的痛点。早期尝试的各种录制回放方法,如 Selenium IDE、SoloPI 和 Airtest,虽然提供了一定的便利性,但由于被测试对象的变化频繁,图像识别的效率和准确性不足,这些方法的效果并不理想。随着端上技术的不断进步,UI 自动化测试的实施变得更加复杂。
- 前端框架的引入:
- 现代前端框架(如 Vue、React)和移动端框架(如 Flutter)的广泛应用,使得早期依赖元素属性进行定位的方法不再可靠。
- 多平台兼容性:
- Web 端需要支持多种操作系统(Windows、macOS)和不同浏览器,移动端则面临不同手机厂商的操作系统和屏幕尺寸差异,这使得自动化兼容测试变得更加困难。
- 快速迭代的业务需求:
- 业务变化迅速,需求迭代频繁,产品大改版也越来越常见,导致 UI 自动化测试的投入产出比相对较低。
2,大模型助力 UI 自动化测试
在大模型的支持下,UI 自动化测试可以实现更高效、更智能的实施:
- 提速图像识别:
- 大模型在图像识别方面远超传统 OCR 技术,结合知识库的应用,能够更快、更准确地识别特定的产品元素。
- 模块化规划用例:
- 对于组件化开发的产品,可以针对每个组件编写并存储测试用例;对于非组件化开发的产品,可以根据业务逻辑拆分相关页面,形成模块化的测试用例集。
- 业务场景识别:
- 利用大模型识别新需求相关的页面及其组件和模块,自动生成相应的测试用例,形成完整的测试用例集。
- 功能遍历测试:
- 通过调用链路分析,创建被测对象的 App 地图和功能地图,保存遍历路径,按图对 App 进行全面的遍历测试。
- 智能分析测试结果:
- 调用大模型对生成的测试用例集执行结果进行分析,识别用例失败的原因,并提出补充用例的建议。同时,根据测试覆盖率报告,分析未覆盖的代码部分,推荐补充的测试用例。 通过以上措施,大模型不仅能够提升 UI 自动化测试的效率和准确性,还能显著降低维护成本,提高测试的投入产出比。
五,总结
以上是当下在测试行业炒得比较火的大模型应用方面,可以从各个互联网技术大会上看到,至于在公司用的怎么样,那就要看各自的实施力度了。当然也有在公司原来的平台,保障体系中,加入大模型的能力,进行风险识别,问题分析,故障智能处理等等。大模型的能力越来越强,各个大佬可以根据自己的工作需要,将大模型能力引入,让自己的工作如虎添翼!