APP下载

基于TSP的软件质量计划

2011-04-13

科技传播 2011年4期
关键词:测试阶段成品率质量标准

李 斌

广州医学院第二附属医院,广东 广州 210260

1 关于TSP

TSP(Team Software Process)即团队软件过程,TSP是由“软件质量之父”Watts s.Humphrey提出的一种采用广泛的团队过程。TSP提供了各方面的计划和日志来帮助实现定量的软件质量管理。比如项目初期的软件质量计划、进度计划和任务计划,项目进行中各阶段的评审会日志还有贯穿整个项目的缺陷日志等。

2 软件质量计划内容

1)质量计划步骤:

(1)明确其范围和目的及需达到的质量目标;

(2)组织实际运作的各过程的步骤(可用流程图或类似图表展示过程要求);

(3)在项目的不同阶段,相关职责、权限和资源的具体分配;

(4)采用的具体的文件化程序和指导书;

(5)适宜阶段适用的检验、试验、检查和审核大纲;

(6)随项目的进展进行更改和完善质量计划的文件化程序;

(7)达到质量目标的度量方法及所采取的措施。

2)质量计划包括以下几个方面的内容:主要比率,无缺陷比率(PDF),缺陷数/页,缺陷数/千代码行(KLOC),缺陷比率,开发时间比率,估计与失效比率(A/FR),复查比率,评审比率,缺陷引入比率,缺陷去除比率,阶段成品率,过程成品率。

主要比率由3条主要的度量标准组成,它对过程质量提供了一个总览。代码行/小时体现了小组的总生产率:比值越高,说明生产率越高,成本越低。重复利用率体现的是本产品中对先前产品中程序代码复用的代码行数的百分比,对于一个包括500行代码的产品,10%的重复利用率意味着50行代码是重复利用的。新重复利用率则是本周期对将来的周期或项目可能做出的贡献。例如,15%的新重复利用率意味着,本项目内开发出的代码中有15%是可以加进重用代码库的,它们可以在接下来的周期或是其他的项目中被用到。

无缺陷比率(PDF)就是在给定的阶段内没有缺陷的产品部件占产品部件总数的百分比。例如,如果1个集合包含8个部分,而其中6个部分都在周期1中有编译缺陷,则这个集合在编译阶段就有25%是无缺陷的。这个比值与单个部分的编译缺陷数无关。同样,如果集合的8个部分中有4个在集成测试中有问题,那么在集成测试中这个集合就有50%是无缺陷的。PDF提供了一个对产品质量的初步估算方法。举例来说,如果PDF不是平衡均匀的增长,那么就需要检查那些缺陷数目很多的部分,这些部分很可能在将来造成更大的影响。虽然PDF值可以用来发现质量问题,但是它却没法发现哪些部分是造成问题的根本,因此还需要进一步仔细研究各部分的数据来发现问题的根本。

缺陷数/页指的是从每页需求或概要设计文档中去除缺陷的平均数。尽管各个小组的缺陷数/页大相径庭,但是比值通常会大于人们的预期。缺陷数/KLOC指的是从每千行详细设计文档或代码中去除缺陷的平均数。在测试阶段发现的缺陷数/KLOC体现了产品在这个阶段开始和结束时的质量。当一个产品有许多缺陷的时候,通过测试可以发现许多,但同时也会漏掉许多。比如单元测试中发现了很多缺陷,那么单元测试后可能仍遗留着许多缺陷。如果在测试中只发现的少量的缺陷,那么产品通常就不会有太大的问题。经验表明,如果一个产品在创建和集成测试中的缺陷数/KLOC小于0.5,在系统测试中小于0.2,那么它通常就不会再有什么遗留问题了。

缺陷比率提供了深入分析设计复查和代码复查质量的方法。经验表明,如果在代码复查阶段发现的缺陷数大于编译阶段的2倍,那么说明代码复查做得很成功。由此得出了代码复查/编译的缺陷比率的一个参考值:2.0。开发时间比率是另一种分析过程及产品质量的方法。经验表明,如果详细设计的时间多于编码的时间,那么这个详细设计通常都很出色。经验也表明,当详细设计复查的时间比详细设计时间多50%以上的时候,详细设计复查就是彻底的。在需求分析方面也存在一个原则,那就是用需求分析时间的25%或更多来进行需求评审。对于概要设计的要求是用概要设计时间的50%或更多来进行复查和评审。

另一个有用的开发时间比率是A/FR。它代表估计与失效的比率,即:用在估计型活动(如复查和评审)上的时间与用在失效型活动(如编译和测试)上的时间的比值。对于小的独立产品,A/FR通常大于2.0。对于相对庞大一些的产品(如用TSP完成的产品),A/FR等于1.0是较为合适的。这是因为大型复杂产品通常需要较多的测试时间,即使产品本身没有缺陷或缺陷很少也要如此。要得到高质量的产品,就要在复查和评审中使用足够的时间。一个衡量评审与复查时间是否足够的方法就是使用复查比率与评审比率。

开发人员在工作中必然会引入缺陷。缺陷引入比率提供了一个估计每个阶段引入的缺陷数的方法:用估计的缺陷引入比率乘以该阶段的估计时间。同样方法也可以用来计算各阶段的缺陷排除比率。

阶段成品率指的是一个产品在一个给定的阶段内去掉的缺陷的百分比。比如一段代码在代码复查开始前有17个缺陷,在代码复查时引入了3个缺陷,同时又找到了18个缺陷,那么代码复查的阶段成品率就是90%。也就是说:

成品率=100%×(找到的缺陷数)/ (产品的缺陷总数)=100%×18 /(17+ 3)=90%

这个公式可以应用到过程的每一个阶段。由于产品中可能遗留着未被发现的缺陷,随着这些未被发现的缺陷逐渐被发现,阶段成品率会逐渐降低,因此需要在阶段结束时对总缺陷数(包括已经发现的和未被发现的)进行一个预测。

类似的,过程成品率指的是在一个特定阶段之前除去缺陷数的百分比。比如编译以前的过程成品率衡量的就是在编译前除去的缺陷总数占编译前引入的缺陷总数的百分比。

3 软件质量计划制订

在TSP中,质量计划(SUMQ)的制订与计划小结(SUMP)的制订相辅相成,缺一不可。计划小结的制订又需要参考产品规模摘要(SUMS)和任务计划(TASK),而任务计划又与进度计划(SCHEDULE)密切相关。除此而外,质量计划的制订还需要参考质量标准(QUAL)的要求。质量计划与进度计划之间的内在联系如图1所示。

图1 SUMQ计划数据的来源

在制订质量计划之前首先需要制订一个质量标准来约束它。因为质量计划需要与进度计划进行协调、修订,所以就必须用一个质量标准来限制它,作为底线。只有合乎质量标准的质量计划才是合格的,否则就需要重新制订质量计划。质量标准通常是根据以往的项目数据和经验得来的若干个固有标准,制订时只需从若干个备选的质量标准中选出一个即可。

当选定质量标准以后就可以开始制订质量计划,制订质量计划应当从估计各个阶段可能出现的产品缺陷开始。需要使用质量标准对本周期的最终产品进行估计。接着,再制订出每个缺陷去除阶段的阶段成品率。最后得到一个质量计划草案,看看它是否满足质量标准。如果不满足,就对草案进行调整,直到得到一个合乎质量标准的质量计划。具体按照下面的步骤进行:

1)估计在每个阶段中开发小组可能引入的产品缺陷数。这个估计应当以这个阶段所用的时间乘以该阶段的缺陷引入率得到;

2)估计每个缺陷去除阶段开发小组得到的阶段成品率。这个比率应当根据质量标准中的阶段成品率标准得到;

3)在估计测试阶段的阶段成品率时需要注意测试阶段的阶段成品率是依赖于测试阶段引入的缺陷密度的。假设单元测试开始时每1000行代码中有5个或者更少的缺陷,那么单元测试的阶段成品率可能高达90%。然而如果每1000行代码的缺陷数大于20个的话,那么单元测试的阶段成品率可能就小于50%了。同理,在集成测试和系统测试阶段,如果缺陷密度小于1/KLOC,阶段成品率可能达到80%。如果缺陷密度大于10/KLOC,阶段成品率可能就只有30%了。因此需要检查每个测试阶段的缺陷密度是否在特定范围内,如果缺陷密度太高的话,就降低阶段成品率的预期,直到阶段成品率和缺陷密度符合标准为止;

4)得到一个质量计划草案;

5)把质量计划草案中的数据和质量标准中的数据进行对比。如果总缺陷率不在预定范围之内,那么就增加或者减少设计和编码阶段的时间,抑或调整一个或多个阶段中引入的缺陷数,直到总缺陷率在预定范围内为止。注意,改变阶段时间必须通过修改任务计划(TASK)来完成,而不能仅仅修改质量计划中的相应条款;

6)如果缺陷去除比率、复查比率和评审比率与质量标准不符,那么就需要调整缺陷去除阶段的时间或者改变缺陷去除阶段的阶段成品率,直到这些数值符合质量标准的要求为止。同样地,只能通过改变任务计划(TASK)中的阶段时间来改变各阶段的时间,而不能仅仅修改质量计划中的相应条款;

7)如果缺陷比率很低,就再检查一遍数据以确定其他标准都得到了满足。如果其他数据都满足了质量标准,缺陷比率就应当满足质量标准;

8)如果编码和测试阶段缺陷密度太高的话,就检查总缺陷率是不是在质量标准的范围内。如果在,就检查复查评审阶段的阶段成品率。如果这个数值太低的话,就提高这些阶段的阶段成品率,直到缺陷密度符合质量标准为止。同样也可以用增加复查评审阶段时间的办法来保证缺陷去除比率在质量标准范围内。但如果总缺陷率不在规定范围内的话,就不得不检查其他数据,看它们是不是都正确。如果都正确的话,缺陷密度是应当在规定范围内的;

9)重复步骤4到步骤8,直到质量计划符合质量标准为止;

10)完成最终的质量计划。

4 结论

由于所有阶段的时间、规模和缺陷数据都是有内在联系的,所以必须仔细检查所有的计算,以确定没有什么被遗忘或是做错。最终可以得到一份既符合质量标准的又与进度计划相匹配的质量计划。

[1]Cerpers Jones, Software Assessments,Version,2003,4.

[2]Watts S.Humphrey, Comments on Software Quality,Fellow Software Engineering Institute Camegie MellonUniversity, 1999,12.

[3]黄锡滋.软件可靠性、安全性与质量保证[M].电子工业出版社,2002,3.

猜你喜欢

测试阶段成品率质量标准
功劳木质量标准的改进
石见穿质量标准的研究
抗骨增生丸质量标准的改进
精益六西格玛在改善药品生产流程中的应用
Android应用软件测试研究
薏苡仁多糖咀嚼片直接压片法辅料配比的工艺研究
抽样技术在政府审计中的应用研究――基于细节测试阶段
关于改进英语专业高级英语教学过程的分析
PCM参数在圆片制造中的影响
消肿止痛膏质量标准研究