and or not 优先级_快速划分测试用例优先级

383d71ce7cd1a0a2b22cfdd0ca92ea91.png

在工程工期时间有限的情况下,怎么解决测试工期和全部测试用例执行时间之间的矛盾呢?

怎么样的设计才能算测试用例

引自:IEEE Standard 610 (1990):

A set of test inputs, execution conditions, and expected results developed for a particular objective, such as to exercise a particular program path or to verify compliance with a specific requirement.

(IEEE Std 829-1983) Documentation specifying inputs, predicted results, and a set of execution conditions for a test item.

但是,当每一次迭代中,执行全部的测试用例很多时候变成了一个很难的事情。

划分测试用例优先级好处

没有软件系统是完美的,任何系统都有BUGS。但是每一次得迭代都有一个期望,测试工程师需要知道本次迭代的项目关系人的预期,找到对应的目标和风险。

Sue Bartlett在“How to Find the Level of Quality Your Sponsor Wants”一文中描述了如何获取上面说的的目标和风险。文章说在详细的计划、设计或者编码前就明确质量目标,这样会更好的保证交付一个满足预期质量目标的交付物。

Ross Collard指出10%到15%的测试用例发现被测系统的75%到90%的BUGS。

这也是二八原则,二八原则影响了软件测试很多。

怎么划分优先级呢

我相信你肯定也遇见过如下场景,面对成百上千的测试用例,要挑选出一个最小的、最终要的、优先级最高的测试用例集的时候却无法下手。对测试用例进行优先级的定义并不容易,而且优先级的定义在每一次迭代中或者迭代后都有可能修改。因此测试用例的优先级是动态的。

1、 构建验证测试(BVT)

BVT也成为冒烟测试用例集。是每次测试开始allin投入前最希望被运行得以确认的测试用例集。

冒烟测试用例集的规则:如果该用例无法正确执行成功,其他测试用例都没有办法执行。如果满足该条件的测试用例,那么就应该纳入冒烟测试用例集。

2、高优先级

高优先级测试用例集合是按照执行频度和业务功树的根部分支的条件选入的。

高优先级测试用例的规则:BVT中加入最常用的测试用例,用来验证重要或者主干流程的功能稳定、功能正确。测试用例中既包含了正确的数据流也包含了错误的数据流。

3、中优先级

中优先测试用例集合是按照执行频度和业务功树的主要分支的条件选入的。

中优先级测试用例的规则:在新迭代影响域(新功能区域)或者功能更加详尽。测试用例包含了大多数方面的功能,其中除了有正确数据流和错误的数据流,还应该有一些配置方面的测试。

4、低优先级

低优先测试用例集合是按照执行频度和业务功树的根部分支的条件选入的。

低优先级测试用例的规则:这个是最不频繁的测试用例执行的部分。但是低并不是说不执行,不测试。只是在迭代的过程汇总,执行频率比较低,不常常被执行。例如:错误消息,可用性,压力和性能测试等。

开始划分你的测试用例

1、粗狂划分,任意标注

将全部功能的正确性验证(happy path)的测试用例定义为高优先级;

将全部有错误或者有边界值验证的测试用例定义为中优先级;

将其他定义为低优先级(这里面主要是非功能测试用例)

2、Review每一个测试用例,升级或者降级

通过对每一个测试用例以及其优先级的标记的重新review,开了测试的重要性以及执行频度等,按照下面进行降级处理。

将功能验证测试分为两组重要和非重要,将“不太重要”的功能验证测试降级为中等优先级;

将错误和边界测试分为两组重要和非重要。将“重要”错误和边界测试推广到高优先级。

将非功能性测试分为两组重要和非重要。将“重要”非功能性测试推广到中等优先级。

对每组高,中和低优先级测试用例重复划分和升级/降级过程,直到达到优先级之间移动的测试用例数量变为0,终止。

3、 确定BVT

将高优先级测试分为两组,分别为致命和严重(如果出现bug就是致命bug,那么这条测试用例也设定为致命。将致命的测试用例归并到BVT优先级。

相对统计的优先级分布BVT 10-15%,高20-30%,中等40-60%和低10-15%。

参考

http://thinktesting.com/articles/rapid-test-case-prioritization/http://thinktesting.com/articles/regression-testing-strategic-and-risk-driven-can-you-afford-not-to/http://thinktesting.com/articles/write-a-test-strategy-what-choices-do-i-have/http://thinktesting.com/articles/risk-mitigation-and-scarcity/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/409705.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mysql索引是有序的吗_mysql组合索引的有序性转

昨天同事关于军规里的一条mysql索引的问题咨询我,才发现自己也不太了解组合索引的规则。于是来记录一下:【推荐】如果有order by的场景,请注意利用索引的有序性。order by 最后的字段是组合索引的一部分,并且放在索引组合顺序的最…

工作405-关于vue组件开发过程中一直报错:This relative module was not found:

问题描述 在项目过程中,当我在路由映射表中添加url和对应组件时一直报This relative module was not found:这样的错误。检查了十几遍发现组件创建,导出,引入都没错,一时间心态崩了。 最后问题的解决 在看了二十几遍后才发现原来…

地址和指针的概念

地址和指针的概念转载于:https://www.cnblogs.com/LoveFishC/archive/2012/07/23/3846506.html

工作406- Error:Node Sass version 5.0.0 is incompatible with ^4.0.0 问题解决

Error:Node Sass version 5.0.0 is incompatible with ^4.x 问题解决 此错误来自sass-loader.因为node-sasslatest为v5.0.0,而sass-loader期望值为^4.0.0 目前解决方案如下: //卸载 node-sass npm uninstall node-sass //然后安装最新版本(5.0之前&…

keil写文字怎么会乱码_主持稿怎么写才会吸引人

现在你是不是想要知道一个主持人它是怎么样把我们都吸引到节目当中来的,当然就是靠的主持稿了,那这个时候你就想要知道了,它应该要怎么写才会吸引人呢,最主要的一点就是需要我们一来就先声夺人,很多的优秀主持人都会这…

dropdownlist三级联动怎么实现_一张表实现三级联动

今天是七夕,七夕快乐,大家今天有没有人约呢?相信大部分的Access玩家都是玩Excel的高手,很多的功能在Excel中实现对大家来说都是小菜,比如今天要讲的联动。那么,我们现在就来讲一下在Access中怎么用一张表实…

Windows Phone开发(29):隔离存储C 转:http://blog.csdn.net/tcjiaan/article/details/7447469...

本文是隔离存储的第三节,大家先喝杯咖啡放松,今天的内容也是非常简单,我们就聊一件东东——用户设置。当然了,可能翻译为应用程序设置合适一些,不过没关系,只要大家明白,它就是用于保存我们的应…

工作407-启动vue项目出现Module build failed (from ./node_modules/sass-loader/dist/cjs.js): ValidationError: I

This dependency was not found:* !!vue-style-loader!css-loader?{"sourceMap":true}!../../node_modules/vue-loader/lib/style-compiler/index?{"vue":true,"id":"data-v-ef68022e","scoped":true,"hasInlineConf…

go 函数名之前括号中的内容_2020 重学 Go 系列:09. 一篇文章理解 Go 里的函数

1. 关于函数 函数是基于功能或 逻辑进行封装的可复用的代码结构。将一段功能复杂、很长的一段代码封装成多个代码片段(即函数),有助于提高代码可读性和可维护性。在 Go 语言中,函数可以分为两种:带有名字的普通函数没有名字的匿名函数由于 Go…

百度地图gif图标_华为手机误删照片怎么找回?手机怎么快速制作GIF动图

对于华为手机,国内的很多人群都是非常喜欢的,特别是哪些花粉们简直就是疯狂,但是当我们使用华为手机误删了照片应该怎么办?如何才能找回误删的照片?误删手机照片怎么找回?不用担心,下面就让我们…

Envi 4.7 破解安装及下载(转)

Envi 4.7下载:http://dl.dbank.com/c0xlwdke94安装Envi4.7时候如果提示需要license,那么按照如下步骤操作:1. 在License wizard 中选择"Install a license you have received",点击"Next"2. 在Select a licen…

工作408- Module build failed (from ./node_modules/sass-loader/dist/cjs.js)

发现版本不对,于是执行npm uninstall sass-loadernpm install sass-loader7.1.0 --savenpm install style-loadernpm install node-sass安装对应的版本,搞定。

mysql 获取结果_【原创】7. MYSQL++中的查询结果获取(各种Result类型)

在本节中,我将首先介绍MYSQL中的查询的几个简单例子用法,然后看一下mysqlpp::Query中的几个与查询相关的方法原型(重点关注返回值),最后对几个关键类型进行解释。1. MYSQL的查询实例下面的两个例子分别是STORE(所有数据一次性从服务器拉到本地…

Error loading WebappClassLoader

Error: 严重: Error loading WebappClassLoader context: /oa.myeclipse.bak delegate: false repositories: /WEB-INF/classes/----------> Parent Classloader:org.apache.catalina.loader.StandardClassLoader3bc473 org.apache.struts.action.ActionServletjava.l…

python内置函数返回序列中最大元素_Python之路(第八篇)Python内置函数、zip()、max()、min()...

一、python内置函数abs()求绝对值例子print(abs(-2))all()把序列中每一个元素做布尔运算,如果全部都是true,就返回true,但是如果是空字符串、空列表也返回true例子print(all([1,2,1,]))输出结果False例子2print(all())输出结果Trueany()把序列中每一个元…

Rds基于mysql开发的_开发云数据库RDS MYSQL版讲解

前言 这篇文章适合所有的 C# 开发新手、老鸟以及想准备学习开发 C# 的程序猿。.NET Core是一个开源通用的开发框架,支持跨平台, 阿里云函数计算推出了 dotnetcore2.1 runtime, 使用 C# 编写 serverless 函数, 详情见官方文档:C# 函数入口. 在…

C# Action

C# Action 的一般用法 最近在看汤姆大叔的JavaScript教程,总结的相当好,可惜自己功力尚浅不能把学到的融会贯通。看过今天大叔发的一篇博文,在js的回调函数中想到了一点关于Action的用法。 发一段简单不能在简单的程序 1 class Program 2 …

浮动div,回到顶部

<div style"height: 5000px">这是顶部</div> <div id"FloatDIV" style"position: absolute;top: 0px; z-index:9999; background: #fff000;cursor: pointer"onclick"window.scrollTo(0,0);">回到顶部 </div>&…