SWTBOK測试实践系列(1) -- 測试在项眼下期的评审投入划算吗?

測试策略:静态測试还是动态測试?

[对话场景]

成功公布某个软件版本号之后,项目团队召开了项目的经验教训总结大会。在会议期间,项目经理小项和測试经理小測进行了例如以下的对话:

小项:“小測,我们的项目时间压力非常大。測试运行是我们的关键路径,測试团队能否够在測试运行阶段投入很多其它的人力和物力?”限定时间和人力资源同等条件。

小測:“啊!假如添加我们的測试运行时间,在整个周期不变的情况下。我们就须要压缩前期的学习和评审投入的时间和工作量,是吗?”

小项:“是的,你看是否可行?”

小測:“……”

[场景分析]

上述场景中,项目经理小项希望測试经理小測在眼下的人力和时间情况下。通过压缩前期的学习和评审时间,来添加測试运行的时间。但从项目的成本和产品质量角度而言。这并非一个有效的手段。

測试应该贯穿于整个软件开发生命周期,而不只关注在測试运行阶段,这已经成为了软件測试的一个基本原则。

评审作为静态測试的一种有效手段(静态分析也是常见的一种静态測试手段。在本文中以评审作为解说的对象),它能够有效的减少成本和提高质量,应该成为每一个项目參与人员的共识。

假如能够通过量化的方式阐述评审的重要意义。不仅能够有效的回答项目经理小项的问题,并且能够更加有效的开展软件測试的各个測试活动。本文以通用的V模型作为样例。量化分析评审是怎样提高质量和减少成本的。

通用V模型有需求规格说明、系统功能设计、系统技术设计、组件规格说明、编码、组件測试、集成測试、系统測试和验收測试等阶段组成。图1是量化评审在减少成本和提高质量方面的模型图。

当中的概念部分能够觉得直接来自用户的要求和需求。而用户使用现场指的是产品公布给用户之后在实际环境中使用。

图1 量化评审作用的模型图

图中的每一个图例的解释和含义。请參考图2。

图2 图例说明

依据图1能够看出评审和动态測试是用来发现和移除缺陷的两个主要測试活动:评审主要应用于软件开发的早期阶段(在V模型的左边),而动态測试应用于測试对象能够执行之后的阶段(在V模型的右边)。图1至少体现了两个软件測试的实践经验:

1)首先。缺陷的放大效应(即缺陷的雪崩效应)。

2)其次,缺陷发现和修复的成本随着开发阶段的演进而高速的上升;

虽然图1中提供的缺陷放大系数和缺陷在不同阶段的修复成本,并不一定适合不同的组织和项目,可是,作为案例分析评审在减少成本和提高质量的原理是适合的。以下首先对图中的一些基本概念和数字进行描写叙述:

l  静态測试主要指的是评审活动,动态測试包含了4个測试级别;

l  不同阶段的缺陷修复的成本分布,依次为1、2、5、10、15、22、50、100和500。

l  不同阶段引入的缺陷数目,以及缺陷数目的放大系数。

当中左边的放大系数为1.5。而右边为1。而缺陷的移除率,为了简单起见。左边和右边都定义为50%;

图中的方框内的数字分别表示为:

(1)左上角为上个阶段遗漏的缺陷数目。在V模型的右边。通常缺陷数目会是缺陷放大效应之后的数目;

(2)左下角为为本阶段引入的缺陷数目。在需求和设计阶段,缺陷存在于规格说明中。在实现阶段。缺陷来自于代码中。而測试阶段,缺陷主要来自缺陷的改动之后引入;

(3)右上角为本阶段的缺陷移除率(以%表示)。

(4)右下角为本阶段移除缺陷之后剩余的缺陷数目;

通过在软件开发生命周期的早期开展评审活动,在项目早期发现和修复缺陷,将能够大大的减少成本。减少成本不仅是因为早期发现和修复缺陷的成本,比在后期发现和修复的成本低。而且也能够更好的预防缺陷的雪崩效应,即减少前期的缺陷遗留到兴许的阶段。

下表通过数据和计算的方式,来分析通过评审的引入是怎样减少成本的。

表1 开展评审怎样减少成本和提高质量


阶段


开展评审活动


没有评审活动


总的缺陷


移除缺陷


成本


总的缺陷


移除缺陷


成本


需求规格说明


100


50


50


100


0


0


系统功能设计


195


97


194


270


0


0


系统技术设计


297


148


740


555


0


0


组件规格说明


424


211


2110


1033


0


0


编码


618


308


4620


1849


0


0


组件測试


329


164


3608


2793


1397


30724


集成測试


185


92


4600


1417


708


35414


系统測试


113


56


5600


728


364


36414


验收測试


77


38


19000


384


192


96035


部署


39


 


 


192


 


 


Total


 


 


40522


 


 


198588

从上表中。能够清楚的看到:在软件开发生命周期的每一个阶段开展评审活动,并在測试阶段相同开展动态測试活动。其花费的总成本是40522。而假如仅仅在測试阶段开展动态測试活动,而没有在早期进行评审活动,其花费的总成本是198588。两者数据进行比較,能够发现开展评审活动之后减少的成本是很可观的。当然前期投入评审也是须要成本的,因此在採用评审作为主要静态測试手段的时候,測试策略须要平衡评审成本和收益。实现静态測试和动态測试的动态平衡。

开展评审活动能够非常好的提高产品质量,也是非常明显的。

在软件开发生命周期的早期开展评审活动,其遗留到客户现场的缺陷数目是39个,而没有开展评审活动,其遗留到客户现场的缺陷数目是192个。也就是说,通过在软件开发生命周期的早期进行评审活动,能够使得遗留到客户现场的缺陷数目大大减少,从而提高产品的质量。

时间: 2024-08-06 03:44:22

SWTBOK測试实践系列(1) -- 測试在项眼下期的评审投入划算吗?的相关文章

SWTBOK测试实践系列(1) -- 测试在项目前期的评审投入划算吗?

测试策略:静态测试还是动态测试? [对话场景] 成功发布某个软件版本之后,项目团队召开了项目的经验教训总结大会.在会议期间,项目经理小项和测试经理小测进行了如下的对话: 小项:"小测,我们的项目时间压力很大,测试执行是我们的关键路径,测试团队是否可以在测试执行阶段投入更多的人力和物力?"限定时间和人力资源同等条件. 小测:"啊!假如增加我们的测试执行时间,在整个周期不变的情况下,我们就需要压缩前期的学习和评审投入的时间和工作量,是吗?" 小项:"是的,你看

SWTBOK測试实践系列(6) -- 开发者为什么不做静态分析?

场景 某年某月某日.产品环境的2000多封自己主动发出的Email让我们项目组很多人的邮箱爆了.追查下来根源是一个非常不起眼的缺陷.我们的程序对一个布尔值做了if(XXX = true)的推断,可来自上游系统的这个值不光是有true和false,还有空. 也就是说上游系统中使用的是一个大布尔,是有true, false,null三态的.  而我们程序使用的是小布尔,仅仅有true和false两态. 掉在大小布尔这个坑里也不是头一回了.记忆中前两年我们也掉进来过. 有执著的QA一枚,翻箱倒柜地找.

单元測试和白盒測试相关总结

一.  软件測试方法 1.        软件測试方法包含:白盒測试(White  Box  Testing).黑盒測试(Black  Box Testing).灰盒測试.静态測试.动态測试. 2.        白盒測试:是一种測试用例设计方法.在这里盒子指的是被測试的软件,白盒.顾名思义即盒子是可视的,你能够清晰盒子内部的东西以及里面是怎样运作的.因此白盒測试须要你对系统内部的结构和工作原理有一个清晰的了解,并且基于这个知识来设计你的用例. 白盒測试技术一般可被分为静态分析和动态分析两类技术

SWTBOK测试实践系列(2) --你会把开发人员提交测试的版本打回去吗?

开发人员奋斗了很多个夜晚,终于把版本提交测试了.他们可以松一口气了.但是噩耗很快传来,软件没有通过测试团队的预测试(为了保证测试进程,对开发人员提交的代码进行基本功能或业务流程的验证).开发经理老王,迅速找到负责预测试的测试经理老张. 老王说:老张啊,怎么回事?出什么问题了?我们好不容易开发完成了,你们怎么不测试还把版本打回来了? 老张说:你们提交的版本质量太差,没有我们的预测试,需要重新修改后,符合我们的要求,我们才能测试.你看看我们发现的这两个问题. 老王并没有看这两个问题,而是直接质疑老张

SWTBOK测试实践系列(7) -- 测试用例设计的参考输入有哪些?

不管是文档化的测试用例,还是存在于测试人员头脑中的测试想法和思维,针对测试对象的分析和设计都是整个测试过程的重要测试活动之一.在进行测试分析和设计之前,测试人员首先需要确定测试的需求来源,即测试用例设计需要参考哪些测试依据文档? 测试用例设计的输入文档是什么?测试人员头脑中第一个蹦出的参考依据就是需求规格说明.确实,需求文档是我们测试设计的最主要参考文档.但是,由于时间限制.成本限制和个人能力限制等方面的原因,提供完备的需求规格说明几乎是不可能的.现实情况是,需求规格说明常常是不全的.模糊的,甚

SWTBOK测试实践系列(3) -- 既然计划永远赶不上变化,我们还要测试计划干嘛?

一天,测试经理老马迟疑着点下了Email的"发送"按钮,长叹一声,往后一仰靠到椅背上.发送这个主题为"回归测试将推迟一周"的通知实为无奈之举啊!一些重要的缺陷开发团队还来不及修复,加上最近几天测试环境的部署经常出现莫名的异常,导致半天都无法测试,原定下周开始的回归测试不得不推迟了!几分钟后,测试人员小王兴冲冲地跑到老马跟前,满脸疑惑地问:"经理,我刚看到你的Email了.又要延期啊!既然我们的测试计划老是在变,干嘛还要定计划?"老马坐正,略带欣慰

SWTBOK测试实践系列(6) -- 开发人员为什么不做静态分析?

场景 某年某月某日,产品环境的2000多封自动发出的Email让我们项目组许多人的邮箱爆了.追查下来根源是一个很不起眼的缺陷.我们的程序对一个布尔值做了if(XXX = true)的判断,可来自上游系统的这个值不光是有true和false,还有空.也就是说上游系统中使用的是一个大布尔,是有true, false,null三态的,  而我们程序使用的是小布尔,只有true和false两态. 掉在大小布尔这个坑里也不是头一回了.记忆中前两年我们也掉进来过.有执著的QA一枚,翻箱倒柜地找,终于找到了当

Azure实践系列 4:启用和配置免费的MFA

在上一篇的实践系列中我们已经配置好了我们云端的Azure AD,我们可以将云服务器加入到域,也可以添加用户到云端的Azure AD中,那相对于现在这有一个移动为先云为先的时代,云端的Azure AD和传统的AD相比还有什么优势呢?第一,云端的Azure AD使用方便,其次不需要我们维护域控制器,也不需要我们投入相应的硬件,所有的管理只需要一个浏览器,配合鼠标与键盘.那就只有这点优势了吗,当然不是,云端Azure AD还提供免费的不限次数没有任何费用收取的多重身份验证服务MFA. 在开始本篇的实践

可视化最佳实践系列白皮书即将发布

最近一段时间到西北流浪了两周,最近在忙着跟FusionCharts原厂整理可视化最佳实践系列白皮书.这些白皮书估计一两周内就能跟大家见面,敬请期待. 整理的过程也是学习的过程,本以为在FusionCharts中浸淫了两年,对可视化这部分已经有了相当的认识,结果却发现真的是学无止境.与诸君共勉. 可视化最佳实践系列白皮书即将发布,布布扣,bubuko.com