如何统计自动化测试用例的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语言流程控制05--defer延时执行
package main import "fmt" func xingzuoZhensuo() { var birthday string fmt.Println("请输 ...
- 换硬盘,装win10系统小记
国庆在家给女朋友的电脑换了1T的固态,重装了系统,特此记录一下,方便后续有需要时查看. win10 激活问题 由于以前的系统就是正版 win10,即使重新装机也会自动激活,不需要做什么额外的步骤. 微 ...
- CVPR2020论文介绍: 3D 目标检测高效算法
CVPR2020论文介绍: 3D 目标检测高效算法 CVPR 2020: Structure Aware Single-Stage 3D Object Detection from Point Clo ...
- pytorch生成对抗示例
pytorch生成对抗示例 本文对ML(机器学习)模型的安全漏洞的认识,并将深入了解对抗性机器学习的热门话题.图像添加难以察觉的扰动会导致模型性能大不相同.通过图像分类器上的示例探讨该主题.使用第一种 ...
- MindSpore部署图像分割示例程序
MindSpore部署图像分割示例程序 本端侧图像分割Android示例程序使用Java实现,Java层主要通过Android Camera 2 API实现摄像头获取图像帧,进行相应的图像处理,之后调 ...
- C#中使用swagger小技巧
C#中使用swagger小技巧 swaggerUI显示的接口内容主要用于开发阶段便于与前端联调,不适合发布到对外的站点. 有以下两种方式,让接口不显示在SwaggerUI中 1.使用属性 [ApiEx ...
- 码农飞升记-04-OracleJDK 与 OpenJDK 的区别和联系以及 OracleJDK builds 与其他 OpenJDK builds 的选择问题
在前两篇 OracleJDK是什么?OracleJDK的版本怎么选择? 和 OpenJDK是什么? 中分别介绍了 OracleJDK 和 OpenJDK 的来历以及概念,那可能就有小伙伴要问了:那我到 ...
- 【SQLite】教程04-SQLite数据类型
SQLite 存储类 每个存储在 SQLite 数据库中的值都具有以下存储类之一: 存储类 描述 NULL 值是一个 NULL 值. INTEGER 值是一个带符号的整数,根据值的大小存储在 1.2. ...
- 【codeforces841A】Generous Kefa
原题 A. Generous Kefatime limit per test:2 secondsmemory limit per test:256 megabytes input:standard i ...
- DOS命令行(10)——reg/regini-注册表编辑命令行工具
注册表的介绍 注册表(Registry,台湾.港澳译作登錄檔)是Microsoft Windows中的一个重要的数据库,用于存储系统和应用程序的设置信息. 1. 数据结构 注册表由键(key,或称 ...