CUFMH2Blog

ST7 - 三角形问题等价类划分

Word count: 767 Reading time: 3 min
2020-07-05 calculating Share

等价类划分是一种典型的黑盒测试方法。等价类划分方法完全不考虑被测程序的内部结构,只依据程序的规格说明来设计测试用例。

作业内容

构造下述三角形问题的弱健壮的等价类测试用例。

三角形问题:输入三个不超过100的正整数作为三角形的三条边,判断三角形是等边三角形、等腰不等边三角形、完全不等边三角形还是不能构成三角形。

内容说明

等价类的划分:

  • 一个输入等价类是指程序输入域的某个子集,在该子集中,各个输入数据对于揭露程序中的错误是等效的。测试某一个等价类的代表值就等同于对这个等价类的其它值的测试。
  • 等价类的划分有两种不同的情况:
    • 有效等价类:对于程序规格说明来说是合理的、有意义的输入数据构成的集合。
    • 无效等价类:对于程序规格说明来说是不合理的、无意义的输入数据构成的集合。
  • 设计测试用例时,通常要求同时考虑有效等价类和无效等价类的用例设计。
    • 这一类测试称为健壮性测试。

弱/强、一般/健壮的等价类测试分类:

  • 弱 (weak) 等价类测试
    • 针对单缺陷的等价类测试用例设计。
    • 单缺陷:在同一输入条件下失效大概率由单个缺陷引起。
  • 强 (strong) 等价类测试
    • 针对多缺陷的等价类测试用例设计。
  • 一般 (normal) 等价类测试
    • 只覆盖有效等价类的测试用例设计。
  • 健壮 (robust) 等价类测试
    • 同时覆盖有效等价类和无效等价类的测试用例设计。
    • 健壮性:软件在异常情况下还能正常运行的能力。健壮性 包括容错能力和异常恢复能力。容错性测试通常构造一些 不合理的输入来诱导软件出错。

解答

定义等价类如下:

  • R1 = {: the triangle with sides a, b, and c is equilateral}
  • R2 = {: the triangle with sides a, b, and c is isosceles}
  • R3 = {: the triangle with sides a, b, and c is scalene}
  • R4 = {: sides a, b, and c do not form a triangle}

构造等价类的测试用例:

Test Case a b c Expected Output
WN1 5 5 5 Equilateral
WN2 2 2 3 Isosceles
WN3 2 3 2 Isosceles
WN4 3 2 2 Isosceles
WN5 3 4 5 Scalene
WN6 4 1 2 Not a triangle

考虑无效值,再构造以下弱健壮性等价类测试用例:

Test Case a b c Expected Output
WN1 -1 5 5 Value of a is out of range
WN2 5 -1 5 Value of b is out of range
WN3 5 5 -1 Value of c is out of range
WN4 101 5 5 Value of a is out of range
WN5 5 101 5 Value of b is out of range
WN6 5 5 101 Value of c is out of range
WN7 5.5 5 5 Value of a is illegal
WN8 5 5.5 5 Value of b is illegal
WN9 5 5 5.5 Value of c is illegal
CATALOG
  1. 1. 作业内容
  2. 2. 内容说明
  3. 3. 解答