测试的主要评测方法(1)
*o-ive|'{b8c/AK0E0简介软件测试技术第一门户 mgFk)c)^:N)S
软件测试技术第一门户n$`~ E5_0w
测试的主要评测方法包括覆盖和质量。
C1Ub t&h/xl`rc9K3P0
测试覆盖是对测试完全程度的评测,它建立在测试覆盖基础上,测试覆盖是由测试需求和测试用例的覆盖或已执行代码的覆盖表示的。软件测试技术第一门户j(o(Po9E
S {
质量是对测试对象(系统或测试的应用程序)的可靠性、稳定性以及性能的评测。质量建立在对测试结果的评估和对测试过程中确定的变更请求(缺陷)的分析的基础上。软件测试技术第一门户y^6g*xTF f,K
覆盖评测软件测试技术第一门户?
]9i
jT[yC
覆盖指标提供了"测试的完全程度如何?"这一问题的答案。最常用的覆盖评测是基于需求的测试覆盖和基于代码的测试覆盖。简而言之,测试覆盖是就需求(基于需求的)或代码的设计/实施标准(基于代码的)而言的完全程度的任意评测,如用例的核实(基于需求的)或所有代码行的执行(基于代码的)。软件测试技术第一门户qm2Gw+TNU+]
软件测试技术第一门户u-}-]#m2q"n&S
e`;K5Y
mj)o7Q0 系统的测试活动建立在至少一个测试覆盖策略基础上。覆盖策略陈述测试的一般目的,指导测试用例的设计。覆盖策略的陈述可以简单到只说明核实所有性能。
!T3t"^
cD'C0
如果需求已经完全分类,则基于需求的覆盖策略可能足以生成测试完全程度的可计量评测。例如,如果已经确定了所有性能测试需求,则可以引用测试结果来得到评测,如已经核实了 75% 的性能测试需求。软件测试技术第一门户Dn]wA8E8g5_];z
软件测试技术第一门户9XFrp.K
如果应用基于代码的覆盖,则测试策略是根据测试已经执行的源代码的多少来表示的。这种测试覆盖策略类型对于安全至上的系统来说非常重要。
Lh#lM1B
C0软件测试技术第一门户(w2AW%E x,MM
sog"a2d \IWO#s0 两种评测都可以手工得到(公式如下所示)或通过测试自动化工具计算得到。软件测试技术第一门户:}/@MuhA%lcY L|
软件测试技术第一门户Sjk"l/o7W9dwc1|
&|V
w
k!B J5o|0基于需求的测试覆盖软件测试技术第一门户;K}]|+G Q|
基于需求的测试覆盖在测试生命周期中要评测多次,并在测试生命周期的里程碑处提供测试覆盖的标识(如已计划的、已实施的、已执行的和成功的测试覆盖)。软件测试技术第一门户2kY~R;?0R+X
软件测试技术第一门户`6UW)Djd+q"j
Xv G{ J;LsL)jF0 在执行测试活动中,使用两个测试覆盖评测,一个确定通过执行测试获得的测试覆盖,另一个确定成功的测试覆盖(即执行时未出现失败的测试,如没有出现缺陷或意外结果的测试)。软件测试技术第一门户q$xk)kCR'?1E
软件测试技术第一门户4VGGi8wG)b
!H(T ]9kIqTr8pH0 这些覆盖评测通过以下公式计算:软件测试技术第一门户9{he;B:Wejoe
软件测试技术第一门户v'Cvk5o N:LFeO"h
这一关于测试覆盖的陈述是有意义的,可以将其与已定义的成功标准进行对比。如果不符合该标准,则此陈述将成为预测剩余测试工作量的基础。
,q,f YQOw]%SM0软件测试技术第一门户Q(D8aL#J基于代码的测试覆盖软件测试技术第一门户
d
~'QHxa!TMp
软件测试技术第一门户%k#o-h
_&^
基于代码的测试覆盖评测测试过程中已经执行的代码的多少,与之相对的是要执行的剩余代码的多少。代码覆盖可以建立在控制流(语句、分支或路径)或数据流的基础上。控制流覆盖的目的是测试代码行、分支条件、代码中的路径或软件控制流的其他元素。数据流覆盖的目的是通过软件操作测试数据状态是否有效,例如,数据元素在使用之前是否已作定义。软件测试技术第一门户G!~6a&{5m*v%Qw"t
基于代码的测试覆盖通过以下公式计算:软件测试技术第一门户4b0Rg+VDV&`E

质量评测
o0Y)J2N1g;h,a0软件测试技术第一门户3F|(s8[P"qMd1|k
W/b-Ro @q8^[0 测试覆盖的评估提供对测试完全程度的评测,在测试过程中已发现缺陷的评估提供了最佳的软件质量指标。因为质量是软件与需求相符程度的指标,所以在这种环境中,缺陷被标识为一种更改请求,该更改请求中的测试对象与需求不符。软件测试技术第一门户KoR |KX@z
软件测试技术第一门户qI2M:h`!\Y
缺陷评估可能建立在各种方法上,这些方法种类繁多,从简单的缺陷计数到严格的统计建模不一而足。软件测试技术第一门户]0B,_!^%hUL!v7K/pj2B
软件测试技术第一门户nX(\(q+]C5y:E
2U'A3iGbA0 严格的评估假定测试过程中缺陷达到的比率或发现的比率。常用模型假定该比率符合泊松分布。则有关缺陷率的实际数据可以适用于这一模型。生成的评估将评估当前软件的可靠性,并且预测继续测试并排除缺陷时可靠性如何增长。该评估被描述为软件可靠性增长建模,这是一个活跃的研究领域。由于该类型的评估缺乏工具支持,所以应该慎重平衡成本与其增加价值。软件测试技术第一门户IS~#_/q KwA
8C5z)a Nd)G0 缺陷分析就是分析缺陷在与缺陷关联关系的一个或多个参数值上的分布。缺陷分析提供了一个软件可靠性指标。
`6I!b4bk7^M0
对于缺陷分析,常用的主要缺陷参数有四个:
V,{UAZ
]3E0软件测试技术第一门户yvWh(H-b,a%E-}
:jmdP:WV ~3n0 · 状态:缺陷的当前状态(打开的、正在修复或关闭的等)。软件测试技术第一门户!^Nq;c+qw_Z
· 优先级:必须处理和解决缺陷的相对重要性。软件测试技术第一门户2`7M}"Vq(z
· 严重性:缺陷的相关影响。对最终用户、组织或第三方的影响等等。软件测试技术第一门户4M|8d)_oG
· 起源:导致缺陷的起源故障及其位置,或排除该缺陷需要修复的构件。
%A"P"Md$VD|J0 可以将缺陷计数作为时间的函数来报告,即创建缺陷趋势图或报告;也可以将缺陷计数作为一个或多个缺陷参数的函数来报告,如作为缺陷密度报告中采用的严重性或状态参数的函数。这些分析类型分别为揭示软件可靠性的缺陷趋势或缺陷分布提供了判断依据。
Ltib-F+J.Jj`,xw0%nL4p:T4@/x!K \B0 例如,预期缺陷发现率将随着测试进度和修复进度而最终减少。可以设定一个阈值,在缺陷发现率低于该阈值时才能部署软件。也可根据执行模型中的起源报告缺陷计数,以允许检测"较差的模块"、"热点"或需要再三修复的软件部分,从而指示一些更基本的设计缺陷。
Y^0EZJM!O0软件测试技术第一门户6Z'u(fK2kco&v
这种分析中包含的缺陷必须是已确认的缺陷。不是所有已报告的缺陷都报告实际的缺陷,这是因为某些缺陷可能是扩展请求,超出了项目的规模,或描述的是已报告的缺陷。然而,需要查看并分析一下,为什么许多报告的缺陷不是重复的缺陷就是未经确认的缺陷,这样做是有价值的。软件测试技术第一门户
G%zwa(L
{EYZ
缺陷报告
5f`$d4f5X-D%D@0软件测试技术第一门户P9E
^n%JY9p
7~n'|k%sub1H K4s0 Rational Unified Process 以三类形式的报告提供缺陷评估: