实验二+118+陈元可

一、实验目的

掌握基于覆盖理论与基本路径的基本白盒测试方法和实践

二、实验要求

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

三、实验内容

1) 被测原代码被测源码链接:http://www.cnblogs.com/cyk0674804/p/6591815.html

2)依据覆盖技术,测试用例列表:

程序图:                                            

      

DD路径图:  

    

DD-路径(只压缩链路经)

程序图节点

DD-路径

1,2

A

3

B

5

C

4,6,9

D

7,10,13

E

8

F

11

G

12

H

14,18

I

15

J

16,19,20

K

17

L

21

M

语句覆盖:

A-B-C-F-H-L-M;  A-B-C-F-H-K-M;

A-B-C-F-G-L-M;  A-B-C-F-G-K-M;

A-B-C-E-M;  A-B-D-M;

测试用例:

用例ID

输入值

执行路径

预期输出

a

b

c

result

1

1

1

1

A-B-C-F-H-L-M

等边三角形

2

8

8

4

A-B-C-F-H-K-M

等腰三角形

3

3

4

5

A-B-C-F-G-L-M

直角三角形

4

3

4

6

A-B-C-F-G-K-M

一般三角形

5

1

1

8

A-B-C-E-M

不构成三角形

6

111

50

90

A-B-D-M

边的值不在范围内!

分支覆盖:

A-B-C-F-H-L-M;  A-B-C-F-H-K-M;

A-B-C-F-G-L-M;  A-B-C-F-G-K-M;

A-B-C-E-M;  A-B-D-M;

测试用例:

 

用例ID

输入值

执行路径

预期输出

a

b

c

result

1

1

1

1

A-B-C-F-H-L-M

等边三角形

2

8

8

4

A-B-C-F-H-K-M

等腰三角形

3

3

4

5

A-B-C-F-G-L-M

直角三角形

4

3

4

6

A-B-C-F-G-K-M

一般三角形

5

1

1

8

A-B-C-E-M

不构成三角形

6

111

50

90

A-B-D-M

边的值不在范围内!

路径覆盖:

A-B-C-F-H-L-M;  A-B-C-F-H-K-M;

A-B-C-F-G-L-M;  A-B-C-F-G-K-M;

A-B-C-E-M;  A-B-D-M;

测试用例:

 

用例ID

输入值

执行路径

预期输出

a

b

c

result

1

1

1

1

A-B-C-F-H-L-M

等边三角形

2

8

8

4

A-B-C-F-H-K-M

等腰三角形

3

3

4

5

A-B-C-F-G-L-M

直角三角形

4

3

4

6

A-B-C-F-G-K-M

一般三角形

5

1

1

8

A-B-C-E-M

不构成三角形

6

111

50

90

A-B-D-M

边的值不在范围内!

条件覆盖:

编号

a>=1

a<=100

b>=1

b<=100

c>=1

c<=100

 

a>=1 &&a<=100&&b>=1&&b<=100&&c>=1&&c<=100

覆盖路径

1

T

F

F

F

F

F

F

B-C

2

T

T

F

F

F

F

F

B-D

3

T

T

T

F

F

F

F

B-D

4

T

T

T

T

F

F

F

B-D

5

T

T

T

T

T

F

F

B-D

6

T

T

T

T

T

T

F

B-D

7

T

T

T

T

T

T

T

B-C

 

编号

a<b+c

b<a+c

c<a+b

a<b+c &&b<a+c&& c<a+b

覆盖路径

1

T

F

F

F

C-E

2

T

T

F

F

C-E

3

T

T

T

T

C-F

4

T

F

T

F

C-E

5

F

F

F

F

C-E

6

F

T

F

F

C-E

7

F

F

T

F

C-E

8

F

T

T

F

C-E

 

 

编号

a==b

a==c

b==c

a==b || a==c||b==c

覆盖路径

1

T

F

F

T

F-H

2

T

T

F

T

F-H

3

T

T

T

T

F-H

4

T

F

T

T

F-H

5

F

F

F

F

F-G

6

F

T

F

T

F-H

7

F

F

T

T

F-H

8

F

T

T

T

F-H

 

 

编号

a==b

b==c

a==b &&b==c

覆盖路径

1

F

F

F

H-K

2

F

T

F

H-K

3

T

F

F

H-K

4

T

T

T

H-L

 

编号

a*a+b*b==c*c

b*b+c*c==a*a

a*a+c*c==b*b

a*a+b*b==c*c || b*b+c*c==a*a || a*a+c*c==b*b

覆盖路径

1

T

F

F

T

G-J

2

T

T

F

T

G-J

3

T

T

T

T

G-J

4

T

F

T

T

G-J

5

F

F

F

F

G-I

6

F

T

F

T

G-J

7

F

F

T

T

G-J

8

F

T

T

T

G-J

测试用例:

用例ID

输入值

执行路径

预期输出

a

b

c

result

1

1

1

1

A-B-C-F-H-L-M

等边三角形

2

8

8

4

A-B-C-F-H-K-M

等腰三角形

3

3

4

5

A-B-C-F-G-L-M

直角三角形

4

3

4

6

A-B-C-F-G-K-M

一般三角形

5

1

1

8

A-B-C-E-M

不构成三角形

6

111

50

90

A-B-D-M

边的值不在范围内!

Junit测试脚本:

import static org.junit.Assert.*;

 
import org.junit.BeforeClass;

import org.junit.Test;
 

public class test01Test {

    @BeforeClass

    public static void setUpBeforeClass() throws Exception {

    }

    @Test

    public final void testTriangle() {


       assertEquals("等边三角形",test01.triangle(1,1,1));

       assertEquals("等腰三角形",test01.triangle(8,8,4));

       assertEquals("直角三角形",test01.triangle(3,4,5));

       assertEquals("一般三角形",test01.triangle(3,4,6));

       assertEquals("不构成三角形",test01.triangle(1,1,8));

       assertEquals("边的值不在范围内!",test01.triangle(111,50,90)); 

    }
}

三、测试小结

  代码能够通过所有测试用例,未发现缺陷。

  通过本次实验我对白盒测试有了更深刻的理解。进一步掌握了白盒测试的基本路径测试方法,能够更好的设计测试用例。

  一个好的平台可以避免许多手工测试的麻烦,效率更加显著。

原文地址:https://www.cnblogs.com/cyk0674804/p/6706482.html