实验二+140+阮晨曦

Posted Rcher

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实验二+140+阮晨曦相关的知识,希望对你有一定的参考价值。

---恢复内容开始---

一、实验目的

掌握覆盖测试的基本方法和实践

二、实验要求

运用逻辑覆盖测试的覆盖准则设计被测程序的测试用例,并运行测试用例检查程序的正确与否,给出程序缺陷小结。

三、实验内容

(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)); }

 

 

测试总结

       没有对源代码进行修改,并未找到测试的缺陷清单。

       

 

以上是关于实验二+140+阮晨曦的主要内容,如果未能解决你的问题,请参考以下文章

第4次作业类测试代码+140+阮晨曦

第5次作业类测试代码+140+阮晨曦

[NTUSTISC pwn LAB 7]Return to libc实验(puts泄露libc中gadget片段定位)

201555332盛照宗—网络对抗实验1—逆向与bof基础

第十周作业

20165315 缓冲区溢出漏洞实验