测试评估方法
1. 测试用例优先级分析
如果没有足够时间执行硬指标测试任务,则需要有可以分析测试用例优先级的方法,以保证首先执行最重要的测试用例。为此,我们需要定义每个测试用例的优先级。
我们定义“功能优先级”和“内容优先级”,然后将这两项相乘得到各测试用例的最终优先级。
功能优先级:
- 3 重要功能;
- 2 一般功能;
- 1 很少用到的功能;
内容优先级:
- 3 一般内容;
- 2 重要的异常功能;
- 1 不重要的异常功能;
测试用例优先级=功能优先级*内容优先级;
2. 测试覆盖率
测试覆盖度是对测试完整性的评估,可以通过对测试需求和测试用例或执行代码的覆盖计算获得。根据覆盖率指数我们可以回答下面的问题:“测试的完整性程度怎样?”
- 基于需求的测试覆盖率
基于需求的测试覆盖率应该经过多次计算,特别是如果要用其作为测试周期重要阶段的覆盖标志(比如计划、实现、执行和取得的测试覆盖度)。
测试覆盖率=T(p,I,x,s)/RfT;
“T”指测试过程或测试用例中描述的测试的数量(包括planned, implemented, executed或succeeded)。“RfT”指测试需求的总和。
- 基于内容的测试覆盖率
基于内容的测试覆盖率是用来评估执行代码数量的,对应剩余代码的数量。代码覆盖度应该建立在控制流(语句、分支或路径)或数据流上。可以用以下公式计算:
测试覆盖率=Ie/TIic;
“Ie”是指用代码语句、条件分支、代码路径、数据状态判定点或数据元素名表示的已执行项目数量。“TIic”是代码中项目总和。
比如,要计算语句覆盖以度量是否每条可执行语句都得到执行,参数“Ie”就指已经执行的代码语句数量,“TIic”就是软件中所有代码语句的数量。两个参数的比值即为测试语句覆盖率。在黑盒测试中,我们可以用IBM RPC工具迅速得到这个结果。
3. 对软件问题报告信息的分析
在整个软件测试过程中,我们可以得到许多关于软件问题报告和修正程序的信息。通过分析这些信息,我们可以提取出更有价值的信息,跟上工作进度并制定决策。
- 根据级别或类型对问题进行分类
通过分类得到的关于问题的信息的统计数据可以从整体上反映出问题的表现状态。这些数据可以告诉我们哪个才是众多问题的解决关键。
- 新问题的时间分布
通过分析新问题和研究新问题的分布状态是很有用的。如果分布曲线显示最近稳定性渐趋平稳,就表明软件稳定性在逐渐提高;如果临近开发最终期限时曲线仍有较大的波动,就需要考虑延缓发布时间,并花更多时间寻找原因。
- 修正率
这可以反映开发人员的修正效率;也可以用来作为性能评估指数,开发人员在执行单元测试时也必须更加认真。
- 测试延迟曲线

图5显示的是测试延迟曲线。其中蓝色曲线表示程序交付日期,红色曲线表示测试完成日期。两条曲线之间的间隔即为“测试”与“程序交付”之间的时间延迟。间隔越大,测试效率越低。在这张图中,第五次和第六次测试延迟时间较其它更长。
- 修正延迟曲线

图6显示的是修正延迟曲线。其中红色曲线代表问题提交的日期,蓝色曲线代表修正完成的日期。这两条曲线之间的间隔显示了“修正”与“问题提交”之间的延迟状态。如果间隔变大,则表明修正时间变长,修正效率变低。在这张图中,有三个阶段的延迟比较大。