日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

实验二+087+饶慧敏

發(fā)布時間:2024/3/26 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 实验二+087+饶慧敏 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

被測代碼地址:http://www.cnblogs.com/wangjiao0-0/p/6622442.html

一、實驗?zāi)康?/h3>

掌握基于覆蓋理論與基本路徑的基本白盒測試方法和實踐

二、實驗要求

運用邏輯覆蓋測試的覆蓋準(zhǔn)則設(shè)計被測程序的測試用例,并運行測試用例檢查程序的正確與否,給出程序缺陷小結(jié)。

三、實驗內(nèi)容

根據(jù)各位同學(xué)自己的被測程序,分別作出各類白盒測試技術(shù)的用例設(shè)計和相應(yīng)的Junit腳本。

所有的覆蓋的技術(shù):語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、組合覆蓋、路徑覆蓋,基本路徑測試方法。

包括的內(nèi)容有:

1) 被測原代碼

1 import java.util.Scanner; 2 3 public class Triangle { 4 public static String triangle(int a, int b, int c) { 5 if (!((1 <= a && a <= 100) && (1 <= b && b <= 100) && (1 <= c && c <= 100))) 6 return "邊的值不在范圍內(nèi)!"; 7 if (!((a < b + c) && (b < a + c) && (c < a + b))) 8 return "不構(gòu)成三角形"; 9 if ((a == b) || (b == c) || (c == a)) 10 if (a == b && b == c) 11 return "等邊三角形"; 12 else 13 return "等腰三角形"; 14 else { 15 if ((a * a == b * b + c * c) || (b * b == a * a + c * c) || (c * c == a * a + b * b)) 16 return "直角三角形"; 17 return "一般三角形"; 18 } 19 } 20 21 public static void main(String[] args) { 22 String input = ""; 23 int a, b, c; 24 Scanner scan = new Scanner(System.in); 25 while (true) { 26 System.out.print("請輸入三角形的三條邊"); 27 input = scan.nextLine().trim(); 28 String[] buf = input.split("[\\s+,,]"); 29 if (input.equals("")) 30 continue; 31 else if (input.equalsIgnoreCase("return"))//退出程序 32 break; 33 else if (buf.length == 3) { 34 try { 35 a = Integer.valueOf(buf[0]); 36 b = Integer.valueOf(buf[1]); 37 c = Integer.valueOf(buf[2]); 38 System.out.println(triangle(a, b, c)); 39 } catch (NumberFormatException e) { 40 System.out.println("請輸入整數(shù)"); 41 } 42 } else//長度錯誤 43 System.out.println("格式錯誤"); 44 } 45 System.out.println("謝謝使用,再見~"); 46 scan.close(); 47 } 48 } View Code

?

2)依據(jù)覆蓋技術(shù),測試用例列表:

(DD-路徑圖)

DD-路徑(只壓縮鏈路經(jīng))

程序圖節(jié)點DD-路徑
4A
5B
6C
7D
8E
9F
10G
11H
12,13I
14,15J
16K
17L
18M

?

I)語句覆蓋:

A-B-C-M

A-B-D-E-M

A-B-D-F-J-L-M

A-B-D-F-J-K-M

A-B-D-F-G-I-M

A-B-D-F-G-H-M

測試用例:

用例ID

輸入值

執(zhí)行路徑

?

預(yù)期輸出

?

a

b

c

1

-1

-1

-1

A-B-C-M

邊的值不在范圍內(nèi)

2

1

2

1

A-B-D-E-M

不構(gòu)成三角形

3

3

3

3

A-B-D-F-J-L-M

等邊三角形

4

3

3

4

A-B-D-F-J-K-M

等腰三角形

5

3

4

5

A-B-D-F-G-I-M

直角三角形

6

2

4

3

A-B-D-F-G-H-M

一般三角形

II)分支覆蓋(判斷覆蓋):

?A-B-C-M

A-B-D-E-M

A-B-D-F-J-L-M

A-B-D-F-J-K-M

A-B-D-F-G-I-M

A-B-D-F-G-H-M

測試用例:

用例ID

輸入值

執(zhí)行路徑

?

預(yù)期輸出

?

a

b

c

1

0

0

0

A-B-C-M

邊的值不在范圍內(nèi)

2

3

2

1

A-B-D-E-M

不構(gòu)成三角形

3

5

5

5

A-B-D-F-J-L-M

等邊三角形

4

5

5

6

A-B-D-F-J-K-M

等腰三角形

5

6

8

10

A-B-D-F-G-I-M

直角三角形

6

3

5

6

A-B-D-F-G-H-M

一般三角形

?

?

III)路徑覆蓋: 

A-B-C-M

A-B-D-E-M

A-B-D-F-J-L-M

A-B-D-F-J-K-M

A-B-D-F-G-I-M

A-B-D-F-G-H-M

測試用例:

?

用例ID

輸入值

執(zhí)行路徑

?

預(yù)期輸出

?

a

b

c

1

101

0

0

A-B-C-M

邊的值不在范圍內(nèi)

2

4

2

2

A-B-D-E-M

不構(gòu)成三角形

3

100

100

100

A-B-D-F-J-L-M

等邊三角形

4

50

50

80

A-B-D-F-J-K-M

等腰三角形

5

6

8

10

A-B-D-F-G-I-M

直角三角形

6

10

15

20

A-B-D-F-G-H-M

一般三角形

?IV)條件覆蓋:

?

編號

1<=a<=100

1<=b<=100

1<=c<=100

!(1<=a<=100&&1<=b<=100

&&1<=c<=100)

覆蓋路徑

1

F

F

F

T

B-C-M

2

F

F

T

T

B-C-M

3

T

F

F

T

B-C-M

4

T

F

T

T

B-C-M

5

T

T

T

F

B-D

6

F

T

F

T

B-C-M

7

F

T

T

T

B-C-M

8

T

T

F

FB-D

?

?

編號

a < b + c

b < a + c

c < a + b

!(a < b +c&&b < a + c

&&c < a + b)

覆蓋路徑

9

F

F

F

T

D-E-M

10

F

F

T

T

D-E-M

11

T

F

F

T

D-E-M

12

T

F

T

T

D-E-M

13

T

T

T

F

D-F

14

F

T

F

T

D-E-M

15

F

T

T

T

D-E-M

16

T

T

F

TD-E-M

?

編號

a == b

b == c

c==a

(a == b) || (b == c) || (c == a)

覆蓋路徑

17

F

F

F

F

F-J

18

F

F

T

T

F-G

19

T

F

F

T

F-G

20

T

F

T

T

F-G

21

T

T

T

T

F-G

22

F

T

F

T

F-G

23

F

T

T

T

D-F

24

T

T

F

TD-F

?

編號

a == b

b == c

(a == b) &&(b == c)

覆蓋路徑

25

F

F

F

G-I

26

F

T

F

G-I

27

T

T

T

G-H

28

T

F

F

G-I

?

編號

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

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

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

(a == b) || (b == c) || (c == a)

覆蓋路徑

29

F

F

F

F

J-L

30

F

F

T

T

J-K

31

T

F

F

T

J-K

32

T

F

T

T

J-K

33

T

T

T

T

J-K

34

F

T

F

T

J-K

35

F

T

T

T

J-K

36

T

T

F

TJ-K

?

測試用例:

用例ID

輸入值

執(zhí)行路徑

覆蓋條件

?

預(yù)期輸出

?

a

b

c

1

0

0

0

A-B-C-M

1

邊的值不在范圍內(nèi)

2

1

2

4

A-B-D-E-M

5,9

不構(gòu)成三角形

3

4 

4

4

A-B-D-F-G-H-M

5,13,21,27

等邊三角形

4

2

3

2

A-B-D-F-G-I-M

5,13,18,25

等腰三角形

5

2

6

7

A-B-D-F-J-L-M

? 5,13,17,30

一般三角形

6

3

5

4

A-B-D-F-J-K-M

5,13,17,29

直角三角形

7

2

2

3

A-B-D-F-G-I-M

5,13,19,26

等腰三角形

8

3

2

2

A-B-D-F-G-I-M

5,13,22,26

等腰三角形

3)相應(yīng)Junit測試腳本、執(zhí)行結(jié)果

1 package com.test; 2 import com.junit.Triangle; 3 import static org.junit.Assert.*; 4 5 import org.junit.Before; 6 import org.junit.Test; 7 8 9 public class TriangleTest { 10 private static Triangle trangle = new Triangle(); 11 12 @Before 13 public void setUp() throws Exception { 14 15 } 16 17 18 19 // 語句覆蓋 20 @Test 21 public void statementTest() { 22 assertEquals("邊的值不在范圍內(nèi)!", trangle.triangle(-1, -1, -1)); 23 assertEquals("不構(gòu)成三角形", trangle.triangle(1, 2, 1)); 24 assertEquals("等邊三角形", trangle.triangle(3, 3, 3)); 25 assertEquals("等腰三角形", trangle.triangle(3, 3, 4)); 26 assertEquals("直角三角形", trangle.triangle(3, 4, 5)); 27 assertEquals("一般三角形", trangle.triangle(2, 4, 3)); 28 } 29 30 // 判定覆蓋 31 @Test 32 public void judgeTest1() { 33 34 assertEquals("不構(gòu)成三角形", trangle.triangle(3, 2, 1)); 35 36 } 37 38 @Test 39 public void judgeTest2() { 40 assertEquals("邊的值不在范圍內(nèi)!", trangle.triangle(0, 0, 0)); 41 42 } 43 44 @Test 45 public void judgeTest3() { 46 47 assertEquals("等邊三角形", trangle.triangle(5, 5, 5)); 48 } 49 50 @Test 51 public void judgeTest4() { 52 53 assertEquals("等腰三角形", trangle.triangle(5, 5, 6)); 54 } 55 56 @Test 57 public void judgeTest5() { 58 59 assertEquals("直角三角形", trangle.triangle(6, 8, 10)); 60 61 } 62 63 @Test 64 public void judgeTest6() { 65 66 assertEquals("一般三角形", trangle.triangle(3, 5, 6)); 67 } 68 69 // 路徑覆蓋 70 @Test 71 public void pathTest1() { 72 assertEquals("邊的值不在范圍內(nèi)!", trangle.triangle(101, 0, 0)); 73 74 } 75 76 @Test 77 public void pathTest2() { 78 79 assertEquals("不構(gòu)成三角形", trangle.triangle(4, 2, 2)); 80 81 } 82 83 @Test 84 public void pathTest3() { 85 86 assertEquals("等邊三角形", trangle.triangle(100, 100, 100)); 87 88 } 89 90 @Test 91 public void pathTest4() { 92 93 assertEquals("等腰三角形", trangle.triangle(50, 50, 80)); 94 95 } 96 97 @Test 98 public void pathTest5() { 99 100 assertEquals("直角三角形", trangle.triangle(6, 8, 10)); 101 102 } 103 104 @Test 105 public void pathTest6() { 106 assertEquals("一般三角形", trangle.triangle(10, 15, 20)); 107 } 108 109 // 條件覆蓋 110 @Test 111 public void conditionTest1() { 112 assertEquals("邊的值不在范圍內(nèi)!", trangle.triangle(0, 0, 0)); 113 114 } 115 116 117 @Test 118 public void conditionTest2() { 119 120 assertEquals("不構(gòu)成三角形", trangle.triangle(1, 2, 4)); 121 } 122 123 124 @Test 125 public void conditionTest3() { 126 127 assertEquals("等邊三角形", trangle.triangle(4, 4, 4)); 128 129 } 130 131 132 @Test 133 public void conditionTest4() { 134 135 assertEquals("等腰三角形", trangle.triangle(2, 3, 2)); 136 137 } 138 139 140 @Test 141 public void conditionTest5() { 142 143 assertEquals("直角三角形", trangle.triangle(3, 5, 4)); 144 145 } 146 147 148 @Test 149 public void conditionTest6() { 150 151 assertEquals("一般三角形", trangle.triangle(2, 6, 7)); 152 153 } 154 155 156 @Test 157 public void conditionTest7() { 158 159 assertEquals("等腰三角形", trangle.triangle(2, 2, 3)); 160 161 } 162 163 164 @Test 165 public void conditionTest8() { 166 167 assertEquals("等腰三角形", trangle.triangle(3, 2, 2)); 168 } 169 170 } View Code

?

4)給出測試參數(shù)化和打包測試的腳本,并生成執(zhí)行結(jié)果

?參數(shù)化測試

1 package com.test; 2 3 import static org.junit.Assert.*; 4 5 import java.util.Arrays; 6 import java.util.Collection; 7 8 import org.junit.Test; 9 import org.junit.runner.RunWith; 10 import org.junit.runners.Parameterized; 11 import org.junit.runners.Parameterized.Parameters; 12 13 import com.junit.Triangle; 14 15 16 @RunWith(Parameterized.class) 17 public class TriangleParamTest { 18 private int param1; 19 private int param2; 20 private int param3; 21 private String result; 22 23 Triangle triangle = new Triangle(); 24 25 @Parameters 26 public static Collection data(){ 27 return Arrays.asList(new Object[][]{ 28 {-1, -1, -1,"邊的值不在范圍內(nèi)!"}, 29 {1, 2, 1,"不構(gòu)成三角形"}, 30 {3, 3, 3,"等邊三角形"}, 31 {3, 3, 4,"等腰三角形"}, 32 {3, 4, 5,"直角三角形"}, 33 {2, 4, 3,"一般三角形"} 34 35 }); 36 } 37 38 public TriangleParamTest(int param1,int param2,int param3,String result){ 39 this.param1 = param1; 40 this.param2 = param2; 41 this.param3 = param3; 42 this.result = result; 43 } 44 45 @Test 46 public void testParam(){ 47 String rs = triangle.triangle(param1, param2, param3); 48 assertEquals(rs,result); 49 } 50 51 } View Code

?

?

打包測試

1 package com.test; 2 3 import org.junit.runner.RunWith; 4 import org.junit.runners.Suite; 5 6 7 @RunWith(Suite.class) 8 @Suite.SuiteClasses( 9 { 10 TriangleTest.class, 11 TriangleParamTest.class, 12 13 }) 14 public class AllTriangleTest { 15 16 } View Code

?

?

4、測試小結(jié):

  代碼能夠通過所有測試用例,未發(fā)現(xiàn)缺陷。

  修改建議:程序的退出方式不夠友好,建議修改。

? ? 通過本次實驗我對白盒測試有了更深刻的理解。進一步掌握了白盒測試的基本路徑測試方法,能夠更好的設(shè)計測試用例。同時,我還掌握了Junit腳本的使用方法。其中測試參數(shù)化和打包測試可以讓測試更加簡潔明了。

轉(zhuǎn)載于:https://www.cnblogs.com/lucerner/p/6698106.html

總結(jié)

以上是生活随笔為你收集整理的实验二+087+饶慧敏的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国语对白真实视频播放 | 精品一区视频 | 天天天干干干 | 草草视频网站 | 久久精品视频16 | 九九热在线免费视频 | 强行挺进白丝老师翘臀网站 | 亚洲麻豆| 人人干人人模 | 国产精品网站在线 | 亚洲一区二区三区 | 欧美一级一片 | 精品动漫一区二区 | 天天干夜夜| 久久久久久久久网站 | 色二区| 老司机在线看片 | 日韩亚洲国产精品 | 亚洲最大综合网 | 亚洲一区福利视频 | 午夜视频一区二区三区 | 久久久久久国产精品视频 | 欧美黄页在线观看 | 四虎影视精品 | 欧美区在线观看 | 国产伦理吴梦梦伦理 | 精品视频久久久久久 | 久久久久久日产精品 | 中文字幕亚洲图片 | 毛片精品 | 超碰人人射 | 美女屁股网站 | www网站在线免费观看 | 亚洲两性视频 | 丝袜老师办公室里做好紧好爽 | 男人天堂久久 | 国产精品久久久久久久久久辛辛 | 国产五月天婷婷 | 三上悠亚痴汉电车 | 亚洲小视频 | 波多野结衣一区二区三区免费视频 | 午夜色图| 好爽快一点高潮了 | 2021天天操| 天天操操夜夜操操 | 亚洲免费久久 | 久久国产这里只有精品 | 久久久久久久久久国产精品 | 少妇又色又紧又爽又刺激视频 | 无码人妻av免费一区二区三区 | 色又黄又爽 | 国产调教视频在线观看 | 久久av秘一区二区三区 | 日韩一区免费视频 | 亚洲の无码国产の无码步美 | 人人人妻人人澡人人爽欧美一区 | 麻豆视频在线观看免费网站黄 | 3d动漫精品啪啪一区二区下载 | 91网站在线播放 | √天堂资源地址在线官网 | 国产资源在线视频 | 性做久久 | 久久久91| 波多野结衣黄色 | 超碰操| 亚洲制服一区二区 | 欧美极品少妇×xxxbbb | 色欲av无码精品一区 | 亚洲色图二区 | 国产午夜三级一区二区三 | 国产1区 | 久久久久99人妻一区二区三区 | 97在线播放 | 亚洲成人av电影网站 | 天堂在线官网 | 成人无码视频 | 一区二区三区美女 | 一个人在线观看免费视频www | 特大黑人巨交吊性xx | 亚洲人免费视频 | 国产91丝袜在线播放九色 | 中文字幕乱码一区 | 欧洲成人在线观看 | 操操影视 | 亚洲另类欧美日韩 | 成人福利午夜 | 中文字幕乱码一区 | 最新中文字幕在线 | 成人午夜av | 性猛交xxxx乱大交孕妇印度 | 亚洲石原莉奈一区二区在线观看 | 午夜国产精品视频 | 人人超碰人人 | 黄大片18满岁| 法国空姐电影在线观看 | 日本在线www| 中文字幕在线观看精品 | 免费无码又爽又黄又刺激网站 | 中国成熟妇女毛茸茸 |