日韩性视频-久久久蜜桃-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)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日本裸体网站 | 男受被做哭激烈娇喘gv视频 | 黑人操日本女优 | 国产尤物av| 亚洲一区二区三区在线观看视频 | 五月婷婷免费视频 | 91国自产精品中文字幕亚洲 | 国产尤物视频在线观看 | 中文字幕在线有码 | 娇妻玩4p被三个男人伺候电影 | 中国少妇乱子伦视频播放 | 亚洲成人黄色av | 哈利波特3在线观看免费版英文版 | 亚洲白浆| 午夜影视免费 | 美女黄色一级片 | 久久久黄色网 | 性感美女被爆操 | 中文字幕狠狠干 | 亚洲国产情侣 | 免费久久久| 午夜视频在线观看网站 | 日本精品视频一区二区 | 国产精品九 | 大陆熟妇丰满多毛xxxⅹ | 午夜啪啪福利视频 | 精品人妻无码一区二区性色 | 男人都懂的网站 | 黄色片一区二区三区 | 欧美成人一区二区三区片免费 | 欧美中文字幕视频 | xxxx国产精品 | 成人欧美一区二区三区在线观看 | 国产精品理论在线观看 | 精品视频久久久久久 | 荒岛淫众女h文小说 | 青草草在线观看 | 日韩不卡毛片 | 在线免费观看高清视频 | 久久精选| 日本精品在线播放 | 亚洲欧美一区二区三区四区 | 欧美偷拍少妇精品一区 | 国产男女无遮挡猛进猛出 | 夜色网| 美女少妇毛片 | 久久白虎| 一区二区三区天堂 | 精品人妻av一区二区三区 | 欧美一区三区三区高中清蜜桃 | 夜夜草网站| 午夜精品视频一区 | 久久精品国产亚洲AV高清综合 | av亚洲在线观看 | 6080午夜| 亚洲av永久无码国产精品久久 | 日本一区视频在线观看 | 欧美破处大片 | 国产午夜精品理论片在线 | 黄色成人在线免费观看 | 亚欧美精品 | 国产综合福利 | 尤物毛片 | 91国产高清 | 爱如潮水3免费观看日本高清 | 色乱码一区二区三区熟女 | 精品国产免费观看 | 大尺度av| 中文字幕高清在线 | 人人爽人人香蕉 | 欧美三级电影在线观看 | 日本国产一区二区 | 日本中文字幕观看 | 国产高潮失禁喷水爽到抽搐 | 天天想你免费观看完整版高清电影 | 成人免费毛片免费 | 玉女心经是什么意思 | 女主播在线观看 | 亚洲 激情| 国产三级国产精品 | 欧美日本韩国在线 | 午夜淫片 | 久久久久久1 | 亚洲欧美国产精品 | 天海翼一区二区 | 麻豆视频免费入口 | 久草热播 | 69视频国产 | 深爱激情综合网 | 99综合 | 国产精品探花一区二区在线观看 | 申鹤乳液狂飙 | 美女天天干 | 91av毛片| 中文字幕在线观看日韩 | 男女啪啪资源 | 久草视频免费在线播放 | 日本成人在线免费观看 | 成人免费网站 |