The notes of How We Test Software At Microsoft(3)

来源:互联网 发布:小学生应知的法律知识 编辑:程序博客网 时间:2024/05/21 19:32

Chapter5Functional Testing Techniques

The need for Functional Testing

再次提到exploratory testing,探索性测试主要是行为性测试(behavioral testing),对于熟悉产品的新功能非常有效,也可以让测试人员有效的快速的评测一个产品,但是不能很好衡量一个复杂的软件或项目。

Equivalence Class PetitioningECP

等价类划分方法选择适当的数据子集来代表整个数据集,通过降低测试的数目实现“合理的”覆盖,覆盖了更多的输入数据。

ECP Data Decomposition Theory Overgeneralization of variable data reduces the base number of ECP tests but increase the probability of missing errors or generation false negatives of false positives. Hyperanalysis of variable data increase the probability of redundancy, which can reduce the overall efficiency of the test approach.

对等价类划分过于广泛,就会增加遗漏缺陷的可能,过于解析,造成测试的冗余。

首先要把数据分成两个大类:有效等价类和无效等价类。然后再对两类进行细分等价类子集。有效等价类是对于程序的规格说明是合理的,有意义的输入数据构成的集合,利用有效等价类可以验证程序是否实现了规格说明中所规定的功能和性能。无效等价类指对程序的规格说明是不合理的或无意义的输入数据的集合,无效等价类的测试可以检验程序的错误处理容错能力,更容易暴露程序的缺陷。

在《软件测试的艺术》书中提到四个启发式的过程(heuristics)指导更好划分等价类。

Note: A heuristic is a guideline, principle , or rule of thumb that is often useful in performing tasks such as decision making , troubleshooting, and problem solving.

1)      Range:如果输入条件规定了一个取值范围,例如数量可以是1999,那么就应该确定处一个有效等价类1<数量<999,以及两个无效等价类(数量<1,数量>999)。

2)      Group:如果所有输入的数据的某个属性是一样的,那么就可以认为是一个等价类。

3)      Unique:如果输入条件规定了一个输入值的集合,而且有理由认为程序会对每个值进行不同处理,那么就应该为每个输入值确定一个有效等价类和一个无效等价类。

4)      Specific:如果规定了输入条件,例如“标识符的第一个字符必须是字母”,那么就应该确定一个有效等价类和一个无效等价类。

Summary of Equivalence Class Partitioning

1)      Force the testers to perform a more detailed analysis of the feature set and the variable data used by input and output parameters.

2)      Help testers identify corner cases they might have overlooked

3)      Provide clear evidence of which data sets were tested and how they were tested

4)      Increase test effectiveness systematically, which helps reduce risk

5)      Increase efficiency by logically reducing redundant tests

利用等价类划分设计测试的前提是深入了解产品特性,并能非常清楚输入参数的类型,特点以及输出的结果。

原创粉丝点击