前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >LLM赋能测试活动实现端到端自动化的四个环节八项关键任务

LLM赋能测试活动实现端到端自动化的四个环节八项关键任务

作者头像
Antony
发布于 2024-12-09 05:02:05
发布于 2024-12-09 05:02:05
3600
举报

1LLM赋能测试活动实现端到端自动化

1.1愿景: L4/5级的自动驾驶

测试活动主要围绕着测试设计、用例编写、执行、结果分析和补充验证等环节。过往的自动化测试往往只局限于用例执行的自动化,依然需要人工编写自动化用例,更遑论用例执行结果的分析和用例、环境的维护等工作。结合着AI4SE,畅想一下实现整个测试活动端到端的自动化的可行性,形成了如下4个阶段8项关键任务,如下图所示。

笔者建议从 单元测试-接口测试-整个测试活动的自动化,从小达到,按照PDCA的方式,不断扩大自动化环的外延,来逐步实现测试活动的端到端自动化。

2四个阶段八项关键任务的解读

2.1 测试用例编写的自动化

天下武功,唯快不破,通过自动化提供测试质量的快速反馈可以解决绝大部分测试问题。而传统意义上的自动化测试其实是测试用例的自动化执行。此类自动化测试实施失败的一个典型问题就是“来不及写自动化测试”。因为这类的自动化实施,其投入和产出的极限是一种线性关系,也就是投一个人插1天秧,就有一天的成果,投两个人,就有两个人天的成果。甚至随着投入规模的扩大,协同方面的负效应还会拉低这种方式的回报率。通过考虑测试用例在编写方面的自动化程度,才是团队能更快从自动化测试的投资泥潭中脱身,更快迎来Break-even Point, 形成自动化测试的正反馈循环。这也是LLM被首先应用于(自动化)测试用例编写的原因。

【单元测试】目前来讲,这一部分的自动化目前应用较多的还是单元测试用例的自动化生成。按照PDCA理论,这一工作的任务明确、可验证性强,且可快速反馈,是端到端测试自动化的一个缩影。这一部分目前的方案已转向通过多Agent以多轮对话的方式实现测试用例的生成-验证-修复-筛选,以提升生成效果。据说阿里通义灵码即将发布的新版本IDE插件中将提供次方案。当然,笔者团队目前实施下来,该方案虽然对生成效果有帮助,但也拉长了耗时。在IDE中生成单测用例其实是一个时间敏感型的任务,这是后续要解决的核心问题。当然,如何通过各种方式来提升首次生成的成功率,这是一个基本的着力点。

【手工测试用例】也有部分团队,如字节、华为、工行等,等正在探索基于LLM来生成(手工)测试用例。目前对于测试点的生成效果已经达到(外包)中级测试工程师的能力。当然,整个方案的核心还在,将历史PRD与用例pair作为知识库。如果仅仅只将本次被测PRD作为输入,生产上几乎无法使用。

【自动化测试用例】在更高级别的,如接口自动化测试用例生成上,笔者也关注到了华为的团队,也是通过历史(手工)用例步骤-代码脚本pair作为知识库,当测试人员针对某个PRD的测试用例写完测试步骤后,通过LLM自动翻译成对应的测试脚本。由此笔者不禁想到,对于历史上推行了BDD/ATDD等自动化实践的团队来说,其实拥有了很大的一个宝藏。

简单小结一下,就是基于LLM的单元测试用例生成目前方案已经成熟,后续目标是提高速度。而手工测试用例和接口/UI自动化测试用例的生成,非常依赖于知识库的建设,如 需求-用例知识库、手工用例-自动化用例知识库等。一个意外发现是BDD/ATDD的团队很有机会厚积薄发。

2.2测试用例执行自动化

这部分包括用例执行和环境制备这两个部分。

测试环境的自动化程度决定了测试准备的便捷性、环境的一致性和测试的可重复性。环境和数据的管理,是自动化测试能成功实施的关键。当很多人把目光聚焦到测试平台等关于测试用例怎么写、在哪里写等表面问题时,老司机则会去重点抓测试环境和测试数据的基准化、更新维护等水面之下的问题,以确保团队能顺利出海而不是直接触礁。

一个判定成熟度的快速问题是,一次自动化测试用例集的执行,它的起点是什么? 越接近环境的动态申请/初始化以及使用、回收,成熟度越高。

在这个环节不是直接应用LLM,而是说通过LLM pipeline的编排,把测试环境、测试数据的动态获取、测试用例的发起执行等任务通过 LLM tools 模块能进行编排,让其成为整个LLM驱动端到端测试自动化的关键一环。

简单总结一下,这部分与其说这是LLM的应用能力,不如说这是组织在DevOps平台和环境/数据管理能力。

2.3结果收集与分析

在通过测试用例编写的自动化之后,用例的产生不再是瓶颈,团队获得自动化测试用例的成本已经接近于0。在这个情况下,工作量的洪峰来到了测试执行结果的分析上面。跟其它检测类似,自动化测试也存在“误报”和“漏报”的问题。

由于测试用例的巨大数量,即使是小概率的假失败,也会有相当数量的失败用例需要人工排查,然而因为这些是假失败用例,其排查结果必然是一场“死亡行军”,整个过程必然是充满压力,但是只会给团队带来挫败感。因此,这个情况下,团队必然要考虑引入测试结果的自动化分析,并提高对“假失败(误报)”判定结果的确信度。毕竟因为对”假失败“的误判可能会直接带来线上缺陷。

运维领域,很早就提出了AIOPS的概念,而根因分析(RCA)则是其中一个核心的场景,运维团队通过各种AI算法来试图在运维事件、故障发生后快速、准确地进行根因分析,甚至是实现解决方案的自动推荐/自动实施。来到了LLM时代,不少运维团队也将目光从传统AI算法上转移到了LLM。其实,类似的能力完全可以用于测试用例执行结果的分析上。

在2024年的AIDD/QECON等大会上,来自华为等公司的团队均分享了他们在失败用例根因分析的案例。此类方案其实是在精准测试基础上的一个延伸。如某个(自动化)用例执行过程中,测试平台在收集用例执行结果(pass/fail)之外,还应收集

a)测试用例自身执行的日志

b)测试用例执行过程中在被测应用端产生的日志(需要流量染色+可观测平台)

再结合用例执行失败的根因知识库、历史执行记录等数据,就可以判断本次用例执行成功/失败是否符合预期,是一个缺陷(true positive),还是一次假失败(false negative)。

另外一方面,通过”需求/调用链/代码行覆盖率“等测试完成指标的判定,提高对”假正确(漏报)“,也就是漏测缺陷的挖掘,进行补充测试。这在基于LLM的单元测试用例生成中已经是一个遴选有效用例的有效方案。

简单总结一下,测试管理者要充分认识到这一部分基建的重要性。

2.4用例报告和补充测试

这属于PDCA中的最后一环。根据分析结果,补充或者修复用例。

LLM生成测试报告是目前最为广泛的一个应用。在此基础上,通过对于预设完成标准(测试退出标准)的判断,找出其差距,然后进行补充测试,也就是进入第二轮次的端到端测试自动化过程,进而逼近该完成标准。这是后续的努力方向。

写在最后,笔者建议从 单元测试-接口自动化-整个测试活动的自动化 各个级别,通过PDCA环的不断变大,来逐步实现测试活动的端到端自动化。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-12-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 软件测试那些事 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
9个用于测试自动化的最佳AI测试工具(2024)
选择一款优质的基于生成式AI人工智能的测试工具能够确保测试过程的准确性和效率,从而加速整个软件测试周期。相反,设计不佳的测试工具可能无法发现错误,并可能存在安全问题。它们可能产生误报或漏报,误导开发与测试团队,导致潜在的软件故障。
wangmcn
2024/07/08
10.8K0
9个用于测试自动化的最佳AI测试工具(2024)
关于自动化测试的定位及一些实践思考
大家对自动化的理解,首先是想到WebUI自动化,这就为什么我一说自动化,公司一般就会有很多人反对,因为自动化的成本实在太高了。其实自动化是分为三个层面的(UI层自动化、接口自动化、单元测试),不是每个层面的自动化都是遥不可及的,以下标示一下这三个层面的难易程度(也叫这个为自动化金字塔):
顾翔
2019/12/11
7330
关于自动化测试的定位及一些实践思考
自动化测试成熟度评估模型
前阵子有同学在某测试群里讨论自动化成熟度的问题。笔者尝试着从用例编写自动化、测试环境自动化、新用例首次执行时机、结果分析自动化、测试效果和持续改进等六个方面,梳理了一个成熟度模型,如下图所示。
Antony
2024/06/17
4130
自动化测试成熟度评估模型
Web端自动化测试失败原因汇总
最初的测试自动化失败是从不切实际的期望中获得的。在我的职业生涯中,我已经多次观察到它,一旦您获得了自动化的质量保证或工作人员,管理层就期望他们对所有内容进行自动化测试。尽管听起来很令人愉悦,但这是不可能的。您不能进行100%的自动化测试,因为在少数几个领域必须进行人工检查。这些领域之一可能与您的Web应用程序的可访问性有关。
FunTester
2019/11/10
3.1K2
自动化测试生命周期
如今,项目经理和开发人员面临着用最少的资源并在日渐缩减的时间表中构建可靠应用程序的挑战。因此,组织正在转向自动化测试以有效地实现此目标。
FunTester
2019/11/10
6310
迷雾中的自动化测试体系建设
在业内如火如荼的 DevOps 转型过程中,自动化测试始终是热点之一,毕竟提供快速质量反馈是达成 DevOps 目标的关键。于是,作为测试领域的“皇冠”,自动化测试的落地实施始终为人们所关注。但是落地当中产生了种种问题甚至是争论,经久不衰,无形中给自动化测试体系建设蒙上了层层迷雾,让人疑惑。下面我们就一些踩过的“坑”进行探讨,期望这些经验分享能够有助于揭开迷雾、看清方向。
腾讯云 CODING
2021/12/30
1.2K0
迷雾中的自动化测试体系建设
三招轻松搞垮自动化测试
自动化测试的成功可以有很多种方式,也有很多种定义,但是自动化测试的失败却很简单,就是不再做自动化测试了,或者是因为做自动化测试把团队搞没了。那么有哪些问题会在你即使很努力的情况下,依然导致自动化测试的失败呢?
Antony
2024/11/23
860
三招轻松搞垮自动化测试
手自一体提效软件测试
开车的老司机朋友可能了解汽车的手自一体变速箱,这个方案既又自动变速器的功能,又允许驾驶员手动控制变速器的换挡过程。当然随着汽车智能化的推进,汽车研发的方向已经转变,在电动车时代几乎无人提及了。
Antony
2024/12/20
861
手自一体提效软件测试
TDD和自动化测试
TDD 是敏捷开发中的一项核心实践和技术,也是一种设计方法论。TDD的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。
Johns
2022/06/28
1K0
前端自动化测试探索和实践
前言 ❝这篇文章是前端自动化测试系列的开始,自动化测试系列会从理论走向实践,真正带领大家学会使用前端自动化测试框架,并能在业务中落地。 看完整个系列,还不会使用自动化测试工具为生产提效,请来找我! ❞
ConardLi
2020/07/21
4.5K0
前端自动化测试探索和实践
软件测试自动化的最新趋势
顾翔老师开发的bugreport2script开源了,希望大家多提建议。文件在https://github.com/xianggu625/bug2testscript,
顾翔
2019/12/12
7730
软件测试自动化的最新趋势
从手动测试到自动化测试(下)
对于初学者来说,重要的是要记住自动化测试并不是适用于所有测试场景的灵丹妙药。但是,通过注意下面描述的以下几点,可以选择要自动化和不自动化的内容:
FunTester
2022/12/09
3310
干货 | 基于 BDD 理念的 UI 自动化测试在携程度假的应用
Leo Li,携程高级软件工程师,负责度假 BDD-Test UI 自动化测试框架的研发、维护和迭代等工作。
携程技术
2020/06/24
2.9K0
干货 | 基于 BDD 理念的 UI 自动化测试在携程度假的应用
自动化测试实践清单
不能否认手动测试将始终保持重要地位,但对自动化测试的需求却在不断增长。自动化测试为公司和团队带来许多好处:效率更高,覆盖面更广。本文分享测试自动化策略的周期的7个阶段中的一些最佳实践,以最大限度地提高自动化测试的效能。
FunTester
2020/12/09
5230
自动化的10项准备工作
软件或应用程序的测试工作和开发人员创建软件的工作同样重要。有时候,软件测试可能被忽视,但它对于公司来说是至关重要的,可以避免不必要的尴尬和金钱损失。软件测试通常需要进行重复的测试,因为任何人为的错误都可能影响测试结果。为了避免这样的错误,如今大多数公司选择将测试自动化与DevOps相结合。这意味着每次向现有代码库添加新代码时,测试人员不再需要重复相同的步骤和操作,也不需要重新从头开始测试软件。通过使用诸如 Selenium 这样的软件,自动化测试变得越来越受欢迎。
FunTester
2024/01/17
2290
自动化的10项准备工作
测试自动化与自动化测试:差异很重要
自动化测试是通过自动化(例如一组回归测试)进行特定测试的行为,而不是手动进行,而测试自动化是指自动化跟踪和管理不同测试的过程。
FunTester
2019/11/11
9970
这是有赞的分层自动化测试实践
先理一下自动化测试的概念,从广义上来说,一切通过工具(程序)的方式来代替或者辅助手工测试的行为都可以成为自动化。从狭义上来说,通过编写脚本的方式,模拟手工测试的过程,从而替代人工对系统的功能进行验证。
DevOps时代
2019/12/17
1.5K0
这是有赞的分层自动化测试实践
接口自动化测试实践指导(上):接口自动化需要做哪些准备工作
在这里先不做解答,大家可以带着这个问题去阅读后面的内容,相信自然会得到这个问题的答案。
Wu_Candy
2022/07/05
6590
接口自动化测试实践指导(上):接口自动化需要做哪些准备工作
自动化测试总结
最近要在新入职的公司准备一份自动化测试的培训,这是我在得知要做自动化测试培训以后,随手画了个图,压压惊:
测试开发社区
2019/09/20
9440
自动化测试总结
为什么自动测试要发现缺陷?
前一阵子,笔者在某个高端测试群里面丢了一个小石头,引出了诸多测试大佬的讨论。不少人首先就不认同这个问题,认为自动化测试的目标就不是发现缺陷,而是其它。
Antony
2023/07/04
3550
为什么自动测试要发现缺陷?
相关推荐
9个用于测试自动化的最佳AI测试工具(2024)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档