前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >自动化测试成熟度评估模型

自动化测试成熟度评估模型

作者头像
Antony
发布2024-06-17 13:52:55
600
发布2024-06-17 13:52:55
举报

前阵子有同学在某测试群里讨论自动化成熟度的问题。笔者尝试着从用例编写自动化、测试环境自动化、新用例首次执行时机、结果分析自动化、测试效果和持续改进等六个方面,梳理了一个成熟度模型,如下图所示。

着急的同学可以拉到最后看完整的表格。为了便于理解,笔者会优先介绍一下为什么是这几个维度,以及每个维度的级别。

以下是模型的各个维度的解释,

1 测试用例编写的自动化

传统的自动化测试实施失败的一个典型问题就是“来不及写自动化测试”。因为这类的自动化实施,其投入和产出的极限是一种线性关系,也就是投一个人插1天秧,就有一天的成果,投两个人,就有两个人天的成果。甚至随着投入规模的扩大,协同方面的负效应还会拉低这种方式的回报率。

通过考虑测试用例在编写方面的自动化程度,才是团队能更快从自动化测试的投资泥潭中脱身,更快迎来Break-even Point, 形成自动化测试的正反馈循环。因此,组织投资自动化测试要首先关注这一方面。

2 新功能测试用例执行时机

这一方面评估自动化测试与软件开发周期的同步性,反映了自动化测试在快速迭代开发中的价值和及时性。对于自动化测试的一个很大的诟病是自动化测试不能发现缺陷。笔者也专门写过一篇文章《为什么自动测试要发现缺陷?》来讨论这个问题。笔者认为,自动化测试不应成为一项任务,而是应该成为一种工作方式,并最终成为测试用例执行的唯一或者主要的方式。

3测试环境自动化

测试环境的自动化程度是衡量成熟度的关键,因为它决定了测试准备的便捷性、环境的一致性和测试的可重复性。环境和数据的管理,是自动化测试能成功实施的关键。

当很多人把目光聚焦到测试平台等关于测试用例怎么写、在哪里写等表面问题时,老司机则会去重点抓测试环境和测试数据的基准化、更新维护等水面之下的问题,以确保团队能顺利出海而不是直接触礁。

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

4 测试结果收集与分析

自动化测试成熟度的这一方面考察测试结果的收集、分析和报告的自动化水平,这关系到测试反馈的质量和速度。在通过测试用例编写的自动化之后,用例的产生不再是瓶颈,团队获得自动化测试用例的成本已经接近于0。在这个情况下,工作量的洪峰来到了测试执行结果的分析上面。

跟其它检测类似,自动化测试也存在“误报”和“漏报”的问题。

由于测试用例的巨大数量,即使是小概率的假失败,也会有相当数量的失败用例需要人工排查,然而因为这些是假失败用例,其排查结果必然是一场“死亡行军”,整个过程必然是充满压力,但是只会给团队带来挫败感。

因此,这个情况下,团队必然要考虑引入测试结果的自动化分析,并提高对“假失败(误报)”判定结果的确信度。毕竟因为对”假失败“的误判可能会直接带来线上缺陷。另外一方面,通过”需求/调用链/代码行覆盖率“等测试完成指标的判定,提高对”假正确(漏报)“,也就是漏测缺陷的挖掘,进行补充测试。

5 测试效果

测试效果方面衡量的是自动化测试在整个质量保障活动中的作用和范围,显示了自动化测试对于提升产品质量的贡献。这个大家都懂,就不展开了。不过笔者要提示的一点是,在研发运营一体化的趋势下,测试如何从一个岗位变成一项整个交付团队的工作职责,这是笔者设置这个考察点的初衷。不过考虑到康威定律,也很难让测试团队/组织去将用例下沉到代码库中,成为每个commit都能触发的回归防护网。这是组织管理者需要考量的一个问题。

6持续改进与评估

持续改进是我们工作的一个法宝,自然也是自动化测试成熟度的一个重要方面,它确保了自动化测试实践能够适应不断变化的需求和技术进步。这是KIMI加的,就算凑个老六吧。

各个级别

以下是对每个方面的5个级别的解释。

1. 测试用例开发自动化

Level 1: 基础自动化 - 引入自动化测试工具,开始执行简单的adhoc测试用例。

Level 2: 自动化框架 - 使用自动化测试框架或平台,手工编写可重复执行的测试用例。

Level 3: 高效维护 - 实现测试用例的高效编写和维护,如手自一体、动态参数化、批量维护等。

Level 4: 智能自动化 - 应用MBT、流量录制回放、日志回放等高级技术。

Level 5: 人工智能驱动 - 利用基于LLM的自动生成和修复测试用例。

2. 测试环境自动化

Level 1: 手工准备 - 测试环境完全手动准备,无自动化流程。

Level 2: 流水线预制备 - 通过流水线在预申请的环境中制备测试环境。

Level 3: 自助申请与自动化 - 环境可自助申请,并通过流水线自动制备。

Level 4: 快速环境部署 - 从申请到销毁环境,整个过程在分钟级完成。

3. 新功能测试用例执行时机

Level 1: 落后执行 - 自动化测试用例落后于手工测试,至少落后一个迭代。

Level 2: 迭代内完成 - 自动化测试用例能在一个迭代或交付周期内完成。

Level 3: 同步执行 - 自动化用例与手工用例同步完成编写和执行。

Level 4: 提测时设计完成 - 自动化用例在开发提测时已完成设计,并同步执行。

Level 5: TDD/ATDD - 实施测试驱动开发,自动化用例在开发初期即开始设计。

4. 测试结果收集与分析

Level 1: 人工收集 - 人工收集、查看并分析测试结果。

Level 2: 自动收集 - 自动汇集测试结果,但需要人工分析。

Level 3: 误报分析 - 具备误报分析能力,快速检测“假失败”。

Level 4: 智能化分析 - 智能化分析测试结果,自动报告缺陷。

Level 5: 高度自动化分析 - 实现高度自动化的测试结果分析和缺陷报告。

5. 测试效果

Level 1: 补充手工测试 - 自动化测试仅作为手工测试的补充。

Level 2: 回归防护网 - 自动化测试用于冒烟测试、回归测试等。

Level 3: 持续集成 - 自动化测试用于持续集成、代码合并。

Level 4: 多类型测试 - 实现性能、安全、兼容性等多种测试类型的自动化。

Level 5: 全面自动化 - 几乎所有的质量保障活动都以自动化方式展开。

6. 持续改进与评估

Level 1: 初步评估 - 定期进行自动化测试成熟度的初步评估。

Level 2: 持续监控 - 实施持续监控机制,跟踪自动化测试的效果。

Level 3: 定期审查 - 定期审查自动化测试策略和流程。

Level 4: 改进计划 - 制定并实施改进计划,以提高自动化测试的效率和效果。

Level 5: 持续优化 - 不断优化自动化测试流程,实现最佳实践。

模型一览表

以下是一个一览表

级别

用例编写自动化

测试环境自动化

新用例首次执行时机

结果分析自动化

测试效果

持续改进

1

手动测试

手工准备

落后执行

人工收集

补充手工测试

初步评估

2

基础自动化

流水线预制备

迭代内完成

自动收集

回归防护网

持续监控

3

自动化框架

自助申请与自动化

同步执行

误报分析

持续集成

定期审查

4

高效维护

快速环境部署

提测时设计完成

智能化分析(误报+漏测)

多类型测试

改进计划

5

智能自动化

完全自动化

TDD集成

高度自动化分析

全面自动化

持续优化

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 各个级别
  • 模型一览表
相关产品与服务
腾讯云服务器利旧
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档