如何统计自动化测试用例的ROI 【投入产出比/投资回报率】
一、 自动化测试的投入有哪些?
1. 自动化测试的软件平台投入
自动化测试平台的开发时间,实施时间。
2. 自动化测试的框架开发投入+框架维护的投入
开发自动化测试脚本使用的框架,例如通过一些现有框架完成的测试基础,但是在现有的框架基础上,也需要提供测试投入,开发Excel的读写,PDF的读写,根据业务用例的情况开发一些定制化的框架。
3. 自动化测试的测试用例整理(功能测试用例)的投入
测试用例的整理要注意一些细节,例如
- 测试用例号或测试用例名,能唯一定位到该条测试用例的信息。
- 手工测试时间:手工执行这个用例的时间,这个时间根据用例类型的不同来配置,例如模块和模块的联调,中间耗费掉的测试数据准备时间,系统和系统的联调,涉及到两边系统的测试人员对接时间,外部依赖耗费的时间,都需要从手工测试时间中剔除。因为这些时间仍然存在,哪怕用了自动化脚本也一样需要提前准备数据,双方完成测试工作的对接,环境同样需要准备,外部依赖依然存在。
4. 自动化测试的测试脚本设计&维护的投入
自动化用例的设计: 包含完成这个脚本自动化需要准备的所有事项的准备时间,如前提条件的准备,自动化用到的测试数据的准备,自动化脚本的准备和调试直到通过的时间,甚至也需要清理测试数据的时间。
自动化用例的维护:自动化脚本运行过程中,碰到由于测试数据、测试环境、测试场景变更导致的维护成本。
5. 自动化测试用例的执行时间的投入
自动化测试用例用于每次回归测试执行的时间。一般来说是3种时间的总和: 数据/环境准备时间、数据/环境清理时间以及自动化测试脚本的执行时间。
6. 测试结果分析时间

二、 自动化测试的产出有哪些?
自动化脚本回归执行的次数越多,ROI的值就越高,意味着投资回报率高,自动化的意义被充分体现。根据不同项目的需求,统计的方式和维度也可以不同,例如:
1. 每个脚本的回归次数

2. 脚本执行过程中发现的缺陷个数

如何计算:
ROI = 收益/投入
如果单纯从回归测试执行次数的ROI来判断,那么公式应该是
ROI = ((回归测试用例总数*次数*手工时间)-(回归测试用例总数*开发时间+脚本维护成本))/(设计成本+脚本开发成本+脚本维护成本+问题分析成本)
如何统计自动化测试用例的ROI 【投入产出比/投资回报率】的更多相关文章
- jacoco统计自动化代码覆盖率
jacoco统计自动化代码覆盖率 1. 简介 1.1. 什么是Jacoco Jacoco是一个开源的代码覆盖率工具,可以嵌入到Ant .Maven中,并提供了EclEmma Eclipse插件,也可以 ...
- PowerShell调用jira rest api实现jira统计自动化
通过调用JIRA Rest web api实现统计自动化,首先进行登录模拟: $content = @{username='用户名';password='密码'} $JSON=$content|con ...
- Python自动化测试用例设计--自动化测试用例与手工测试用例区别与联系
1. 前言 手工测试用例是针对手工测试人员,自动化测试用例是针对自动化测试框架,前者是手工测试用例人员应用手工方式进行用例解析,后者是应用脚本技术进行用例解析,两者最大的各自特点在于,前者具有较好的异 ...
- 用java和junit编写app自动化测试用例
package myTest; import static org.junit.Assert.*; import io.appium.java_client.android.AndroidDriver ...
- 用python和unittest编写app自动化测试用例
import unittest import webdriver import time class Test(unittest.TestCase): @classmethod def setUpCl ...
- 28. Python编写自动化测试用例
接口文档已经提供了,requests库.unittest单元测试框架也已经介绍过,笔者相信读者朋友已经可以独立编写接口自动化测试用例了.但是有一些细节,我们需要聊一下.比如我们写登录接口测试用例,用户 ...
- web自动化测试用例编写的规范
1.一个脚本是一个完整的场景,从用户登陆操作到用户退出系统关闭浏览器. 2.一个脚本脚本只验证一个功能点,不要试图用户登陆系统后把所有的功能都进行验证再退出系统 3.尽量只做功能中正向逻辑的验证,不要 ...
- 用WebDriver实现基于jira过滤器视图的统计自动化
在Jira上通过过滤器我们可以做出多种视图,以方便统计我们想要收集的结果.比如:我想查看所有分派给我的任务.在Jira上,我保存了一个过滤器,叫做“分派给我的所有任务”.这个过滤器可以过滤出所有分配给 ...
- Python自动化测试用例设计--测试类型
1.前言 WEB自动化测试时候测试哪些类型,下面将介绍一下: 2. 测试类型 2.1 测试静态内容 静态内容测试是最简单的测试,用于验证静态的.不变化的UI 元素的存在性.例如: 每个页面都有其预期的 ...
随机推荐
- GO学习-(37) 使用Air实现Go程序实时热重载
使用Air实现Go程序实时热重载 今天我们要介绍一个神器--Air能够实时监听项目的代码文件,在代码发生变更之后自动重新编译并执行,大大提高gin框架项目的开发效率. 为什么需要实时加载? 之前使用P ...
- sql server 操作(不定期更新)
要求:基本的语法要清楚. sql server疑难点: 1.Partition by可以理解为 对多行数据分组后排序取每个产品的第一行数据 先处理内查询,由内向外处理,外层查询利用内层查询的结果嵌套查 ...
- TVM 架构设计
TVM 架构设计 本文面向希望了解TVM体系结构和/或积极参与项目开发的开发人员. 主要内容如下: 示例编译流程概述了TVM将模型的高级概念转换为可部署模块的步骤. 逻辑架构组件部分描述逻辑组件.针对 ...
- 特斯拉Tesla Model 3整体架构解析(下)
特斯拉Tesla Model 3整体架构解析(中) Tesla Computer Unit 特斯拉已经开发了一个由自动驾驶仪和信息计算机组成的定制"液冷双计算平台"."他 ...
- 如何使用Nsight Compute?
如何使用Nsight Compute? 下图command Line Argunments是指训练或测试命令,Linux下直接用测试或训练命令
- Nucleus-SE迁移:未实现的设施和兼容性
Nucleus-SE迁移:未实现的设施和兼容性 Nucleus SE migration: Unimplemented facilities and compatibility Nucleus SE的 ...
- redis 记一次搭建高可用redis集群过程,问题解决;Node 192.168.184.133:8001 is not configured as a cluster node
------------恢复内容开始------------ 步骤 1:每台redis服务器启动之后,需要将这几台redis关联起来, 2: 关联命令启动之后 报错: Node 192.168.184 ...
- 深入理解java虚拟机笔记Chapter3-内存分配策略
内存分配策略 新生代和老年代的 GC 操作 新生代 GC 操作:Minor GC 发生的非常频繁,速度较块. 老年代 GC 操作:Full GC / Major GC 经常伴随着至少一次的 Minor ...
- [论文阅读笔记] Adversarial Mutual Information Learning for Network Embedding
[论文阅读笔记] Adversarial Mutual Information Learning for Network Embedding 本文结构 解决问题 主要贡献 算法原理 实验结果 参考文献 ...
- 在Visual Studio 中使用git——标记(Tag)管理(十)
在Visual Studio 中使用git--什么是Git(一) 在Visual Studio 中使用git--给Visual Studio安装 git插件(二) 在Visual Studio 中使用 ...