32【简答题】 使用独立路径法设计出的测试用例能够保证程序的每一条可执行语句在测试过程中至少执行一次。 以下代码由Java语言书写,请按要求回答问题。(代码请放到eclipse中保证输入正确) int GetMaxDay ( int year, int month ) { int maxday= 0; if(month>=1&&month<=12){ if ( month==2 ){ if ( year%4==0 ){ if ( year% 100=0 ){ if( year%400= 0 ) maxday=29; else maxday = 28; }else maxday =29; } else maxday = 28; }else if ( month==4‖month==6‖ month==9‖month==11) maxday =30; else maxday=31; } return maxday;}] (1) 请画出以上代码的控制流图。 (2)请计算上述控制流图的环复杂度V (G) (独立线性路径数) (3)假设输入的取值范围是1000 < year < 2001,请使用独立路径测试法为变量year、month设计测试用例(写出year取值、month 取值、maxday 预期结果),使其满足独立路径覆盖要求。
时间: 2023-12-06 19:39:57 浏览: 132
基于路径的测试实例生成
(1) 控制流图如下:
![控制流图](https://img-blog.csdnimg.cn/20211019164626577.png)
(2) 环复杂度V(G) = 9,即独立线性路径数为9。
(3) 使用独立路径测试法,需要设计以下9条测试用例来覆盖所有独立路径:
- 路径1: year < 1000 → 跳过所有语句
- 路径2: year >= 1000, year >= 2001 → 跳过所有语句
- 路径3: year >= 1000, year < 2001, month < 1 → 跳过所有语句
- 路径4: year >= 1000, year < 2001, month >= 1, month > 12 → 执行第10行,maxday的预期结果为0
- 路径5: year >= 1000, year < 2001, month >= 1, month <= 12, month != 2, month != 4, month != 6, month != 9, month != 11 → 执行第13行,maxday的预期结果为31
- 路径6: year >= 1000, year < 2001, month >= 1, month <= 12, month = 4/6/9/11 → 执行第16行,maxday的预期结果为30
- 路径7: year >= 1000, year < 2001, month >= 1, month <= 12, month = 2, year % 4 != 0 → 执行第20行,maxday的预期结果为28
- 路径8: year >= 1000, year < 2001, month >= 1, month <= 12, month = 2, year % 4 = 0, year % 100 != 0 → 执行第23行,maxday的预期结果为29
- 路径9: year >= 1000, year < 2001, month >= 1, month <= 12, month = 2, year % 4 = 0, year % 100 = 0, year % 400 = 0 → 执行第26行,maxday的预期结果为29
阅读全文