---恢复内容开始---
一、实验目的
掌握覆盖测试的基本方法和实践
二、实验要求
运用逻辑覆盖测试的覆盖准则设计被测程序的测试用例,并运行测试用例检查程序的正确与否,给出程序缺陷小结。
三、实验内容
(1)设计某程序的路径覆盖测试用例,如路径覆盖、条件覆盖、分支覆盖、循环覆盖等
测试代码链接
http://www.cnblogs.com/mrlry/p/6617697.html
DD路径图
1语句覆盖
A-B-C-V
A-B-D-E-F-J-K-L-M-V
A-B-D-E-G-J-K-L-N-V
A-B-D-E-H-K-L-O-V
A-B-D-E-H-K-L-P-Q-V
A-B-D-E-H-K-L- P-R-S-U-V
A-B-D-E-H-K-L- P-R-T-U-V
1 |
-1 |
0 |
0 |
A-B-C-V |
退出 |
|
2 |
2016 |
13 |
1 |
A-B-D-E-F-J-K-L-M-V |
月份超出范围 |
|
3 |
2000 |
13 |
1 |
A-B-D-E-G-J-K-L-N-V |
日期超出范围 |
|
4 |
2051 |
12 |
1 |
A-B-D-E-H-K-L-O-V |
年份超出范围 |
|
5 |
2001 |
12 |
2 |
A-B-D-E-H-K-L-P-Q-V |
2001年12月3日 |
|
6 |
2001 |
12 |
31 |
A-B-D-E-H-K-L- P-R-S-U-V |
2002年1月1日 |
|
7 |
2001 |
11 |
30 |
A-B-D-E-H-K-L- P-R-T-U-V |
2001年12月1日 |
2判定覆盖
A-B-C-V
A-B-D-E-F-J-K-L-M-V
A-B-D-E-G-J-K-L-N-V
A-B-D-E-H-K-L-O-V
A-B-D-E-H-K-L-P-Q-V
A-B-D-E-H-K-L- P-R-S-U-V
A-B-D-E-H-K-L- P-R-T-U-V
用例ID |
输入值 |
执行路径 |
预期输出 |
||||
y |
m |
d |
|||||
1 |
-1 |
0 |
0 |
A-B-C-V |
退出 |
|
2 |
2016 |
13 |
1 |
A-B-D-E-F-J-K-L-M-V |
月份超出范围 |
|
3 |
2000 |
13 |
1 |
A-B-D-E-G-J-K-L-N-V |
月份超出范围 |
|
4 |
2051 |
12 |
1 |
A-B-D-E-H-K-L-O-V |
年份超出范围 |
|
5 |
2001 |
12 |
2 |
A-B-D-E-H-K-L-P-Q-V |
2001年12月3日 |
|
6 |
2001 |
12 |
31 |
A-B-D-E-H-K-L- P-R-S-U-V |
2002年1月1日 |
|
7 |
2001 |
11 |
30 |
A-B-D-E-H-K-L- P-R-T-U-V |
2001年12月1日 |
3路径覆盖
A-B-C-V
A-B-D-E-F-J-K-L-M-V
A-B-D-E-F-J-K-L-N-V
A-B-D-E-F-J-K-L-O-V
A-B-D-E-F-J-K-L-P-Q-V
A-B-D-E-F-J-K-L-P-R-S-U-V
A-B-D-E-F-J-K-L-P-R-T-U-V
A-B-D-E-G-J-K-L-N-V
A-B-D-E-G-J-K-L-M-V
A-B-D-E-G-J-K-L-O-V
A-B-D-E-G-J-K-L-P-Q-V
A-B-D-E-G-J-K-L-P- R-S-U-V
A-B-D-E-G-J-K-L-P- R- T-U-V
A-B-D-E-H-K-L-M-V
A-B-D-E-H-K-L-N-V
A-B-D-E-H-K-L-O-V
A-B-D-E-H-K-L-P-Q-V
A-B-D-E-H-K-L- P-R-S-U-V
A-B-D-E-H-K-L- P-R-T-U-V
用例ID |
输入值 |
执行路径 |
预期输出 |
||||||
y |
m |
d |
|||||||
1 |
-1 |
0 |
0 |
A-B-C-V |
退出 |
||||
2 |
2016 |
13 |
1 |
A-B-D-E-F-J-K-L-M-V |
月份超出范围 |
||||
3 |
2016 |
10 |
0 |
A-B-D-E-F-J-K-L-N-V |
日期超出范围 |
||||
4 |
1904 |
12 |
1 |
A-B-D-E-F-J-K-L-O-V |
年份超出范围 |
||||
5 |
2016 |
12 |
2 |
A-B-D-E-F-J-K-L-P-Q-V |
2016年12月3日 |
||||
6 |
2016 |
12 |
31 |
A-B-D-E-F-J-K-L-P-R-S-U-V |
2017年1月1日 |
||||
7 |
2016 |
11 |
30 |
A-B-D-E-F-J-K-L-P-R-T-U-V |
2016年12月1日 |
||||
8 |
2000 |
13 |
1 |
A-B-D-E-G-J-K-L-N-V |
月份超出范围 |
||||
9 |
2000 |
10 |
0 |
A-B-D-E-G-J-K-L-M-V |
日期超出范围 |
||||
10 |
3200 |
12 |
1 |
A-B-D-E-G-J-K-L-O-V |
年份超出范围 |
||||
11 |
2000 |
12 |
2 |
A-B-D-E-G-J-K-L-P-Q-V |
2000年12月3日 |
||||
12 |
2000 |
12 |
31 |
A-B-D-E-G-J-K-L-P- R-S-U-V |
2001年1月1日 |
||||
13 |
2000 |
11 |
30 |
A-B-D-E-G-J-K-L-P- R- T-U-V |
2000年12月1日 |
||||
14 |
2001 |
13 |
1 |
A-B-D-E-H-K-L-M-V |
月份超出范围 |
15 |
2001 |
10 |
0 |
A-B-D-E-H-K-L-N-V |
日期超出范围 |
16 |
2051 |
12 |
1 |
A-B-D-E-H-K-L-O-V |
年份超出范围 |
17 |
2001 |
12 |
2 |
A-B-D-E-H-K-L-P-Q-V |
2001年12月3日 |
18 |
2001 |
12 |
31 |
A-B-D-E-H-K-L- P-R-S-U-V |
2002年1月1日 |
19 |
2001 |
11 |
30 |
A-B-D-E-H-K-L- P-R-T-U-V |
2001年12月1日 |
4条件覆盖
编号 |
M=-1 |
覆盖路径 |
1 |
T |
B-C |
2 |
F |
B-D |
编号 |
y%4==0&&y%100!=0 |
y%100==0&&y%400==0 |
覆盖路径 |
3 |
T |
F |
E-F-J |
4 |
F |
T |
E-G-J |
5 |
F |
F |
E-H-K |
编号 |
m<1||m>12 |
d<1||d>month[m] |
y<1912||y>2050 |
覆盖路径 |
6 |
F |
T |
T |
L-M |
7 |
T |
F |
T |
L-N |
8 |
T |
T |
F |
L-O |
9 |
T |
T |
T |
L-P-Q |
编号 |
m==12&&d==31 |
覆盖路径 |
10 |
T |
R-S-U |
11 |
F |
R-T-U |
A-B-C-V
A-B-D-E-F-J-K-L-M-V
A-B-D-E-G-J-K-L-N-V
A-B-D-E-H-K-L-O-V
A-B-D-E-H-K-L-P-Q-V
A-B-D-E-H-K-L- P-R-S-U-V
A-B-D-E-H-K-L- P-R-T-U-V
用例ID |
输入值 |
执行路径 |
预期输出 |
覆盖条件 |
|||||||
M |
Y |
D |
|||||||||
1 |
-1 |
0 |
0 |
A-B-C-V |
退出 |
1 |
2 |
2016 |
13 |
1 |
A-B-D-E-F-J-K-L-M-V |
月份超出范围 |
2,3,6 |
3 |
2000 |
13 |
1 |
A-B-D-E-G-J-K-L-N-V |
月份超出范围 |
2,4,7 |
4 |
2051 |
12 |
1 |
A-B-D-E-H-K-L-O-V |
年份超出范围 |
2,5,8 |
5 |
2001 |
12 |
2 |
A-B-D-E-H-K-L-P-Q-V |
2001年12月3日 |
2,5,9 |
6 |
2001 |
12 |
31 |
A-B-D-E-H-K-L- P-R-S-U-V |
2002年1月1日 |
2.5.10 |
7 |
2001 |
11 |
30 |
A-B-D-E-H-K-L- P-R-T-U-V |
2001年12月1日 |
2,5,11 |
Junit 脚本 @Test public void test01() { assertEquals("月份超出范围",nextDate.nextdate(2016 ,13, 1)); } @Test public void test02() { assertEquals("日期超出范围",nextDate.nextdate(2016 ,10, 0)); } @Test public void test03() { assertEquals(null,nextDate.nextdate(-1 ,0, 0)); } @Test public void test04() { assertEquals("年份超出范围",nextDate.nextdate(1904 ,12, 1)); } @Test public void test05() { assertEquals("2016年12月3日",nextDate.nextdate(2016 ,12, 2)); } @Test public void test06() { assertEquals("2017年1月1日",nextDate.nextdate(2016 ,12, 31)); } @Test public void test07() { assertEquals("2016年12月1日",nextDate.nextdate(2016 ,11, 30)); } @Test public void test08() { assertEquals("月份超出范围",nextDate.nextdate(2000 ,13, 1)); } @Test public void test09() { assertEquals("日期超出范围",nextDate.nextdate(2000 ,10,0)); } @Test public void test10() { assertEquals("年份超出范围",nextDate.nextdate(3200 ,12, 1)); } @Test public void test11() { assertEquals("2000年12月3日",nextDate.nextdate(2000 ,12, 2)); } @Test public void test12() { assertEquals("2001年1月1日",nextDate.nextdate(2000 ,12, 31)); } @Test public void test13() { assertEquals("2000年12月1日",nextDate.nextdate(2000 ,11,30)); } @Test public void test14() { assertEquals("月份超出范围",nextDate.nextdate(2001 ,13, 1)); } @Test public void test15() { assertEquals("日期超出范围",nextDate.nextdate(2001 ,10, 0)); } @Test public void test16() { assertEquals("年份超出范围",nextDate.nextdate(2051 ,12, 1)); } @Test public void test17() { assertEquals("2001年12月3日",nextDate.nextdate(2001 ,12, 2)); } @Test public void test18() { assertEquals("2002年1月1日",nextDate.nextdate(2001 ,12, 31)); } @Test public void test19() { assertEquals("2001年12月1日",nextDate.nextdate(2001 ,11,30)); }
测试总结
没有对源代码进行修改,并未找到测试的缺陷清单。