等价类测试 - 下一个日期问题
等价类测试(Equivalence class Partitioning)是一种在软件测试中使用的黑盒测试技术,是软件开发生命周期(SDLC)的主要步骤。这种测试技术在时间消耗和测试用例精度方面优于许多测试技术,如边界值分析、最坏情况测试、稳健情况测试等。由于进行测试是为了识别可能的风险,因此等价类测试比其他技术表现得更好,因为使用它生成的测试用例在逻辑上被标识为具有分区之间的分区以创建不同的输入和输出类。这可以从如下所述的下一个日期问题中看出:
给定日-月-年格式的一天,您需要找到给定日期的下一个日期。为此执行边界值分析和等价类测试。
状况 :
D: 1
边界值分析:
No. of test Cases (n = no. of variables) = 4n+1 = 4*3 +1 =13
测试用例:
Test Case ID | Day | Month | Year | Expected Output |
---|---|---|---|---|
1 | 1 | 6 | 2000 | 2-6-2000 |
2 | 2 | 6 | 2000 | 3-6-2000 |
3 | 15 | 6 | 2000 | 16-6-2000 |
4 | 30 | 6 | 2000 | 1-7-2000 |
5 | 31 | 6 | 2000 | Invalid Date |
6 | 15 | 1 | 2000 | 16-1-2000 |
7 | 15 | 2 | 2000 | 16-2-2000 |
8 | 15 | 11 | 2000 | 16-11-2000 |
9 | 15 | 12 | 2000 | 16-12-2000 |
10 | 15 | 6 | 1800 | 16-6-1800 |
11 | 15 | 6 | 1801 | 16-6-1801 |
12 | 15 | 6 | 2047 | 16-6-2047 |
13 | 15 | 6 | 2048 | 16-6-2048 |
等价类测试:
输入类:
Day:
D1: day between 1 to 28
D2: 29
D3: 30
D4: 31
Month:
M1: Month has 30 days
M2: Month has 31 days
M3: Month is February
Year:
Y1: Year is a leap year
Y2: Year is a normal year
输出类:
Increment Day
Reset Day and Increment Month
Increment Year
Invalid Date
强正态等价类测试用例:
测试用例:
Test Case ID | Day | Month | Year | Expected Output |
---|---|---|---|---|
E1 | 15 | 4 | 2004 | 16-4-2004 |
E2 | 15 | 4 | 2003 | 16-4-2003 |
E3 | 15 | 1 | 2004 | 16-1-2004 |
E4 | 15 | 1 | 2003 | 16-1-2003 |
E5 | 15 | 2 | 2004 | 16-2-2004 |
E6 | 15 | 2 | 2003 | 16-2-2003 |
E7 | 29 | 4 | 2004 | 30-4-2004 |
E8 | 29 | 4 | 2003 | 30-4-2003 |
E9 | 29 | 1 | 2004 | 30-1-2004 |
E10 | 29 | 1 | 2003 | 30-1-2003 |
E11 | 29 | 2 | 2004 | 1-3-2004 |
E12 | 29 | 2 | 2003 | Invalid Date |
E13 | 30 | 4 | 2004 | 1-5-2004 |
E14 | 30 | 4 | 2003 | 1-5-2003 |
E15 | 30 | 1 | 2004 | 31-1-2004 |
E16 | 30 | 1 | 2003 | 31-1-2003 |
E17 | 30 | 2 | 2004 | Invalid Date |
E18 | 30 | 2 | 2003 | Invalid Date |
E19 | 31 | 4 | 2004 | Invalid Date |
E20 | 31 | 4 | 2003 | Invalid Date |
E21 | 31 | 1 | 2004 | 1-2-2004 |
E22 | 31 | 1 | 2003 | 1-5-2003 |
E23 | 31 | 2 | 2004 | Invalid Date |
E24 | 31 | 2 | 2003 | Invalid Date |
因此,从这个问题可以清楚地看出,等价类测试清楚地检查了许多没有考虑边界值的情况,例如有 28-29 天的 2 月、导致 2 月天数变化的闰年等等。
因此,上面的例子证明了等价划分产生了更有效的测试用例,在风险评估期间应该考虑这些用例。