实验二 164 张增进
一、實驗目的
掌握基于覆蓋理論與基本路徑的基本白盒測試方法和實踐
二、實驗要求
運用邏輯覆蓋測試的覆蓋準則設計被測程序的測試用例,并運行測試用例檢查程序的正確與否,給出程序缺陷小結。
三、實驗內容
根據各位同學自己的被測程序,分別作出各類白盒測試技術的用例設計和相應的Junit腳本。
所有的覆蓋的技術:語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、組合覆蓋、路徑覆蓋,基本路徑測試方法。
包括的內容有:
1) 被測原代碼:
public class CodeModification {private static Scanner scanner;/** 耳機80元,手機殼10元,手機貼膜8元*/public static float commission(int headphoneNum,int mpShellNum,int csProtectorNum){int total = headphoneNum*80+mpShellNum*10+csProtectorNum*8;float commission = 0;if(total<1000){commission = (float) (total*0.1);}else if(total>=1000 && total<=1800){commission = (float) (1000*0.1+(total-1000)*0.15);}else if(total>1800){commission = (float) (1000*0.1+800*0.15+(total-1800)*0.2);}return commission;}public static int inputHandle(Scanner sc, int index){int data = 0;String[] prompt = {"請輸入耳機銷量:","請輸入手機殼銷量:","請輸入手機貼膜銷量:"};while(true){System.out.println(prompt[index]);String dataString = sc.nextLine();try{data = Integer.parseInt(dataString);if (data<0) {System.out.println("輸入數量不滿足要求");continue;}return data;}catch(Exception e){System.out.println("輸入數量不滿足要求");}}}public static void main(String[] args) {while(true){System.out.println("請分別輸入三種手機配件的銷售情況:");scanner = new Scanner(System.in);int headphoneNum = inputHandle(scanner, 0);int mpShell = inputHandle(scanner, 1);int csProtectorNum = inputHandle(scanner, 2);float tax = commission(headphoneNum,mpShell,csProtectorNum);System.out.println("傭金額為:"+tax+"元");}}
} ?2)依據覆蓋技術,測試用例列表:
DD路徑圖:
程序圖:
DD:
| 1 | A |
| 2 | B |
| 3 | C |
| 4 | D |
| 5 | E |
| 6 | F |
| 7 | G |
| 8 | H |
| 9 | I |
| 10 | J |
| 11 | K |
| 12 | P |
所有的條件:
A/1、開始
B/2、輸入耳機銷量
C/3、字符串里面是不是純數字
D/4、判斷數字是否大于0
E/5、輸入手機銷量
F/6、輸入手機貼膜銷量
G/7、計算銷售額
H/8、銷售額<1000
I/9、銷售額 > 1000
J/10、銷售額?< 1800
K/11、銷售額 > 1800
P/12、結束
測試用例:
語句覆蓋、路徑覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、組合覆蓋:
| 測試編號 | 耳機數量 | 手機數量 | 手機膜數量 | 預計結果 | 實際結果 | 執行路徑 | 是否通過 |
| 1 | 100 | 100 | 100 | 1820.0元 | 1820.0元 | A-B-C-D-E-C-D-F-C-D-F-G-H-I-J-K-P | 是 |
| 2 | -12 | 3 | 3 | 輸入不滿足要求 | 輸入不滿足要求 | A-B-C-D-B | 是 |
| 3 | 12 | -12 | 32 | 輸入不滿足要求 | 輸入不滿足要求 | A-B-C-D-E-C-D-E | 是 |
| 4 | 12 | 12 | -32 | 輸入不滿足要求 | 輸入不滿足要求 | A-B-C-D-E-C-D-F-C-D-F | 是 |
| 5 | 10 | 10 | 10 | 182.0元 | 182.0元 | A-B-C-D-E-C-D-F-C-D-J-H-P | 是 |
| 6 | 100 | 10 | 10 | 1496.0元 | 1496.0元 | A-B-C-D-E-C-D-F-C-D-J-H-I-J-P | 是 |
?條件覆蓋、判定/條件覆蓋、組合覆蓋:
| 測試編號 | 耳機數量 | 手機數量 | 手機膜數量 | 預計結果 | 實際結果 | 執行路徑 | 是否通過 |
| 10 | 133 | 134 | 233 | 2628.8元 | 2628.8元 | A-B-C-D-E-C-D-F-C-D-F-G-H-I-J-K-P | 是 |
| 11 | a | c | d | 輸入不滿足要求 | 輸入不滿足要求 | A-B-C-D-E-C-D-F-C-D-J-H-P | 是 |
| 12 | 200 | a | 100 | 輸入不滿足要求 | 輸入不滿足要求 | A-B-C-D-E-C-D-F-C-D-J-H-I-J-P | 是 |
?測試代碼:
import static org.junit.Assert.*;import java.util.Scanner;import org.junit.After;
import org.junit.Before;
import org.junit.Test;public class CodeModificationTest {@Beforepublic void setUp() throws Exception {}@Afterpublic void tearDown() throws Exception {}@SuppressWarnings("deprecation")@Testpublic void testCommission() {String data1 = CodeModification.commission(10, 10, 10)+"";assertEquals("98.0",data1);}@SuppressWarnings("deprecation")@Testpublic void testCommission1() {String data2 = CodeModification.commission(10, 20, 30)+"";assertEquals("136.0",data2);}@SuppressWarnings("deprecation")@Testpublic void testCommission2() {String data3 = CodeModification.commission(20, 20, 20)+"";assertEquals("252.0",data3);}}
?測試結果:
?
測試總結:
未找到缺陷。
???? 又進一步學習了測試代碼的方法和技巧。
?
轉載于:https://www.cnblogs.com/123zzj/p/6705890.html
總結
以上是生活随笔為你收集整理的实验二 164 张增进的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 候鸟飞回来是什么歌呢?
- 下一篇: 使用μJava进行变异体测试