白盒测试——简单分支函数测试
實驗目的
(1)掌握白盒測試技術,并能應用白盒測試技術設計測試用例
(2)能用Junit實施測試
實驗內容
void DoWork(int x,int y,int z){ 1 int k=0,j=0; 2 if(( x>3 ) && ( z<10 )) 3 { 4 k=x*y-1; 5 j=sqrt(k); 6 } 7 if(( x= =4 ) || ( y>5 )) 8 j=x*y+10; 9 j=j%3; 10 return j; 11 }說明:程序段中每行開頭的數字(1~11)是對每條語句的編號。
(1)分別以語句覆蓋、判定覆蓋、條件覆蓋和路徑覆蓋方法設計測試用例,并寫出每個測試用例的執行路徑(用題中給出的語句編號表示)。
(2)編寫Java類,調用該方法,并用Junit測試工具編寫測試代碼進行測試。
測試用例的編寫
程序流程圖
程序共有4條路徑:?
P1(1-2-3-4-5-6-7-8-9-10)
P2(1-2-3-4-5-6-7-9-10)
P3(1-2-7-8-9-10)
P4(1-2-7-9-10)
語句覆蓋僅需一次測試即可完成覆蓋:
| 測試用例 | 判定取值(M,N) | 條件取值 | 覆蓋路徑 |
| 輸入:x=4,y=6,z=9 輸出:j=1 | T,T | T1,T2,T3,T4 | P1(1-2-3-4-5-6-7-8-9-10) |
?
判定覆蓋需要進行兩次測試可以完成覆蓋:
| 測試用例 | 判定取值(M,N) | 條件取值 | 覆蓋路徑 |
| 輸入:x=5,y=4,z=9 輸出:j=1 | T,F | T1,T2,F3,F4 | P2(1-2-3-4-5-6-7-9-10) |
| 輸入:x=4,y=4,z=11 輸出:j=2 | F,T | T1,F2,T3,F4 | P3(1-2-7-8-9-10) |
?
條件覆蓋需要進行兩次測試可以完成覆蓋:
| 測試用例 | 判定取值(M,N) | 條件取值 | 覆蓋路徑 |
| 輸入:x=4,y=6,z=11 輸出:j=1 | F,T | T1,F2,T3,T4 | P1(1-2-3-4-5-6-7-8-9-10) |
| 輸入:x=2,y=4,z=9 輸出:j=0 | F,F | F1,T2,F3,F4 | P4(1-2-7-9-10) |
?
路徑覆蓋需要進行四次測試完成覆蓋:
| 測試用例 | 判定取值(M,N) | 條件取值 | 覆蓋路徑 |
| 輸入:x=4,y=6,z=9 輸出:j=1 | T,T | T1,T2,T3,T4 | P1(1-2-3-4-5-6-7-8-9-10) |
| 輸入:x=5,y=4,z=9 輸出:j=1 | T,F | T1,T2,F3,F4 | P2(1-2-3-4-5-6-7-9-10) |
| 輸入:x=4,y=4,z=11 輸出:j=2 | F,T | T1,F2,T3,F4 | P3(1-2-7-8-9-10) |
| 輸入:x=2,y=4,z=9 輸出:j=0 | F,F | F1,T2,F3,F4 | P4(1-2-7-9-10) |
?
測試過程
測試類:
package io.shentuzhigang.demo.whitebox;/*** @author ShenTuZhiGang* @version 1.0.0* @date 2021-04-06 17:03*/ public class Exp1 {public Exp1() {}public int doWork(int x, int y, int z) {int k = 0, j = 0;if ((x > 3) && (z < 10)) {k = x * y - 1;j = (int) Math.sqrt(k);}if ((x == 4) || (y > 5)) {j = x * y + 10;}j = j % 3;return j;}public int div(int x, int y) {return x / y;}}JUnit測試類:
package io.shentuzhigang.demo.whitebox;import org.junit.jupiter.api.Test; import static org.hamcrest.MatcherAssert.*; import static org.hamcrest.Matchers.*;/*** @author ShenTuZhiGang* @version 1.0.0* @date 2021-04-06 17:02*/ public class Exp1Test {private Exp1 exp1;public Exp1Test() {exp1 = new Exp1();}@Testpublic void testDoWork() {// 語句覆蓋測試assertThat(exp1.doWork(4, 6, 9),is(1));// 判定覆蓋測試assertThat(exp1.doWork(5, 4, 9),is(1));assertThat(exp1.doWork(4, 4, 11),is(2));// 條件覆蓋測試assertThat(exp1.doWork(4, 6, 11),is(1));assertThat(exp1.doWork(2, 4, 9),is(0));// 路徑覆蓋測試assertThat(exp1.doWork(4, 6, 9),is(1));assertThat(exp1.doWork(5, 4, 9),is(1));assertThat(exp1.doWork(4, 4, 11),is(2));assertThat(exp1.doWork(2, 4, 9),is(0));}}測試結果的分析
?
測試文檔的撰寫
?
心得與體會
(1)掌握白盒測試技術
(2)應用白盒測試技術設計測試用例
(3)能用Junit實施測試
參考文章
軟件測試實驗1——語句覆蓋、判定覆蓋、條件覆蓋、路徑覆蓋的用例設計及Junit測試
總結
以上是生活随笔為你收集整理的白盒测试——简单分支函数测试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《数据库系统实训》实验报告——子查询与组
- 下一篇: Docker——IDEA部署Spring