跳转至

3–Equivalence Class Testing

一,基本了解

1,Functional Testing 别名:Black-Box Testing ,Specification-Based Testing 优点:助我们选择有效的有错误的子测试 缺点:无法确定测试的系统个数 2, Techniques Each was developed to cover a particular aspect of the specification

Equivalence Class Testing

Boundary Value Testing

Combinational Testing

Sequential (State-based) Testing

Testing with Random Data

Error Guessing/Expert Testing

3,Equivalence Class Testing A,概述 (1)将测试用例的数量减少到一个可管理的水平,同时保持合理的测试覆盖率。 (2)将输入域或输出范围分割为有限数量的子域/子范围(即分区或价类) (3)选一个代表值测试 (4)如果被测试的软件使用代表值通过,测试时,我们假设等价类中的所有值都是正确的 B,性质 互斥 and collectively exhaustive

image1

二,等价测试的步骤

1,步骤

1,根据题目,分析出所有的输入和输出的可能性【合法+非法】

输入的数:如果是连续范围,要全覆盖;如果是一个集合,所有情况都包含

2,列出Test Case

(1)要写出非法输入和不预期出现的值

非法的值标志*,(*)表示错误(此时的错误不代表false)的test,必须被单独测试

3,Test Data

(1)根据指定范围选取代表值作为测试数据

非法的放在最后一起测,非法不要和合法的一起测试

(2)再次出现的值打[]

4,进行测试

案例

2,案例

image2

1,根据题目,分析出所有的输入和输出的可能性【合法+非法】 输入的数:如果是连续范围,要全覆盖;如果是一个集合,所有情况都包含 image3 2,列出Test Case (1)要写出非法输入和不预期出现的值

非法的值标志,()表示错误(此时的错误不代表false)的test,必须被单独测试

image4

3,Test Data (1)根据指定范围选取代表值作为测试数据 非法的放在最后一起测,非法不要和合法的一起测试 (2)再次出现的值打[] image5

完善test case image6

4,进行测试

image7

2,测试方式 方法1:A Naïve Approach

image8

方法2:Using Testing Frameworks image9

方法3【常用】 image7 image10

3,导入数据方式 导入数据方式【少量数据时】 方法1 image7 方法2 image11

导入数据方式2【大量数据】 image12

@DisplayName 测试的名字
@Parameterized 参数化测试使用不同参数多次运行测试

image-20240129112535095

5,其他测试 5.1,Weak Normal Equivalence Class Testing

弱正规测试

1.在测试用例中从每个等价类中使用一个变量(单故障假设)

2.在期望值比较低的时候,可以使用此方法

5.2 Strong Normal Equivalence Class Testing

测试所有有效域的组合(多故障假设)

它的测试用例数量等于所有参数的有效域数量的乘积。

5.3Weak Robust Equivalence Class Testing

每个有效和无效域的一个测试用例(单一故障假设)

仍然基于单一故障假设,但测试有效和无效域,比弱正规等价类测试强

注意如何为无效域选择测试用例(提示:假设单个故障)

5.4Strong Robust Equivalence Class Testing 测试有效和无效域的所有组合(多故障假设

完全符合完整性和不完整性的性质(全面) 执行这样一个完整的测试可能太耗时。 •根据软件设计过程的不同,可能根本不需要一个健壮的测试

5.5 image15

Weak Normal Equivalence Class Testing 部分样本的有些范围
Strong Normal Equivalence Class Testing 所有的有效范围
Weak Robust Equivalence Class Testing 部分有效范围和无效范围
Strong Robust Equivalence Class Testing 所有的有效范围和无效范围

6,Design-by-Contract vs. Defensive Design 不同情况选择不同测试 image16