当然,自动化测试的想法听起来很令人兴奋。有什么比只写一次脚本然后重复执行几百次,甚至几千次更好的呢?
通过自动化测试,您的团队可以提高测试覆盖率,更早地发现问题 bug,并且仍然能够在真正交付值的地方使用手动测试。
但是大多数时候,这还不足以让每个人都接受测试自动化。对于最高管理层和 CFO 尤其如此,他们会要求自动化测试这样的重大投资提供令人信服的 ROI 分析。
测试自动化的 ROI 公式
用来计算测试自动化的 ROI 的公式和任何其他类型的投资一样简单: 您用投资成本除以投资收益,然后将结果乘以100。这个公式是这样的:
投资回报率 = (投资收益-投资成本)投资成本 x100
在自动化测试方面,投资收益是指:
Speed 速度: 当前位置采用自动化测试后,软件测试过程和软件开发过程变得多快
Quality 品质: 采用自动化测试后,产品的部分或全部质量属性(如性能、兼容性或安全性)是否得到改进
Cost Savings 节省成本: 采用自动化测试后可以节省多少
然而,投资成本是那些与工具(测试自动化平台、测试管理系统或测试报告工具)和资源(工时)相关的成本,这些工具用于进行自动化测试工作。
关键输入参数
为了计算自动化测试的 ROI,需要考虑一些关键的输入参数。
计算自动化测试投资回报率的3个技巧
分解任务: 总是将自动化测试过程划分为不同的小任务,以便更好地执行和报告。需要考虑的主要任务包括计划,设计,实施和维护,执行,分析和报告
考虑成本: 还将我们前面讨论过的投资成本分为不同类型,以便更准确地计算。这些成本包括一次性成本(基础设施、安装、配置、安装等)、可见成本(培训、协作、过程)、隐性成本(培训、协作、过程)和人工成本(人工与自动化)
优化: 确定需要优化的自动化测试领域。这些领域包括需要减少的冗余级别,需要改进的可重用性级别,需要增加的数量级别,以及需要选择的测试用例的数量和类型
测试自动化的 ROI 实例
一个真正的自动化测试项目的所有投资、成本和节省将在下面介绍。
下表说明了一个真正的自动化测试项目的投资情况:
T
然后,我们将其与进入手动测试的工作进行比较,以及团队使用自动化测试节省了多少成本。
在一些领域,测试自动化的成本高于自动化测试,比如测试设计和报告,而手动测试不需要任何成本,而自动化测试则需要新的努力,比如初始设置和管理以及测试启动。
但最终,这个团队节省了610,944.05美元
下面的图表说明了关于测试自动化的一些有趣的事实。在开始的前10个月,自动化测试的成本比手工测试要高得多。但是在这个阶段之后,自动化测试开始显示它的潜力,从而节省了大量的精力和金钱。
如何最大化自动化测试的 ROI
有3个方面需要考虑: 测试覆盖率、测试速度和成本节约。
# 1测试覆盖范围
需要考虑的关键指标包括测试的数量和质量
数量:
测试覆盖率的百分比: 自动化测试有助于增加多少测试
自动化测试的百分比: 需要自动化多少次测试
测试脚本的增长趋势: 每天创建的新测试脚本的数量
品质:
Code smells 代码的味道
Code duplication 代码复制
Size: classes, comments, lines of code 大小: 类、注释、代码行
您可以使用诸如 SonarQube 之类的专门工具来分析产品质量。
最佳实践
定义选择要自动化的测试用例的标准: 客户风险(测试对最终用户的影响)、测试的价值(仅自动化有价值的测试,而不是自动化每一种测试)、成本效率(有些测试需要几天到几周的时间来编写自动化脚本、配置、调度或访问服务器,否则就应该手动测试)、历史(最终用户使用最多的组件或特性)
不要尝试100% 的自动化。在某些情况下应该保持手动或探索性: 可用性和用户界面
利用 CI 将新的自动化测试集成为测试过程的一部分
更加注意维护现有的测试脚本,而不是仅仅关注新的测试用例
集成代码分析工具,以确保您的代码和脚本具有高质量
测试自动化作为完成定义(DoD)的一部分
# 2测试速度
需要考虑的关键指标包括执行的速度和稳定性,以及测试的冗余性和可重用性。
速度和稳定性:
Test flakiness or flaky rate 测试片状或片状率
Failed test trend 失败的测试趋势
Meantime to bug detection 同时进行 bug 检测
3节约成本
关键成本包括实验室成本、工具/框架/人员成本、缺陷和延误成本
实验室成本:
服务器、工作站、设备的数量
实验室维护费用
工具/框架/人员成本:
许可证数量的成本
从零开始构建框架的成本
维护框架的成本
人工成本: 人工与自动化; 培训成本
缺陷和延误的成本:
缺陷泄漏
总体构建质量
延误成本(CoD)
利用 CI 和环境配置优化基础设施成本
进行全面的工具/框架评价: 组织和技术上的配合
投资于有经验的自动化测试人员
尽早进行测试,经常进行测试,并使用工具、不同级别和现实世界的业务工作流进行全面测试
阅读更多: 你的 QA 团队是否面临这些自动化测试的挑战?