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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

软件工程实验

發布時間:2023/12/29 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 软件工程实验 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

實驗一:白盒測試

一、實驗目的

鞏固白盒測試知識,對于給定的待測程序,能熟練應用基本控制流覆蓋方法。

二、實驗內容

白盒測試又稱為結構測試、邏輯驅動測試或基于程序的測試,一般用來分析程序的內部結構。測試規劃基于產品內部結構進行測試,檢查內部操作是否按規定執行,軟件各個部分功能是否得到充分使用,則這種測試方法稱為白盒測試方法。
白盒測試將被測程序看做一個打開的盒子,測試者能夠看到被測源程序,可以分析被測程序的內部結構,此時測試的焦點集中在根據其內部結構設計測試用例。白盒測試要求是對某些程序的結構特性做到一定程度的覆蓋,或者說這種測試是“基于覆蓋率的測試”。
測試內容包括語句覆蓋測試、分支覆蓋測試、條件覆蓋測試、分支/條件覆蓋測試、條件組合覆蓋測試和基本路徑測試。

三、實驗過程

1.測試程序

#include<iostream> using namespace std; int test_X,test_A,test_B; void Do(int &X,int &A,int &B){if((A>0)&&(B<2)){X=X+A;}else{if((A==0)||(X<1)){A=A+1;}} }int main(){int flag = 1;while(flag){cout<<"please input test_A test_B test_X"<<endl;cin>>test_A>>test_B>>test_X;Do(test_X,test_A,test_B);cout<<"test_A = "<<test_A<<endl;cout<<"test_B = "<<test_B<<endl;cout<<"test_X = "<<test_X<<endl;cout<<"Continue(y/n)?"<<endl;char con;cin>>con;switch(con){case 'n': flag = 0;break;case 'y': default : flag = 1;break;}cout<<endl<<endl; }return 0; }

2.分析測試

1)程序流程圖

2)樣例分析:

(1)要滿足語句覆蓋,執行路徑通過:1→2 →8 和 1→5→6→8 即可。可設計測試用例:
1:A=1 B=1 X=0 (路徑1→2→8 )
2:A=0 B=3 X=0 (路徑1→5→6→8 )
(2)要滿足分支覆蓋,兩個分支表達式的取真和取假分支都要走到,執行路徑為: 1→2 →8 、 1→5→8 和 1→5→6→8 ,可設計測試用例:
1:A=1 B=1 X=0 (路徑1→2→8 覆蓋條件: TA)
2:A=0 B=3 X=0 (路徑1→5→6→8 覆蓋條件: ~TA TB)
3:A=-1 B=3 X=2 (路徑1→5→8 覆蓋條件: ~TA ~TB)
(3)程序段控制流圖中只有以上三條路徑,可見這組測試用例也滿足路徑覆蓋。
(4)要滿足條件覆蓋,每個分支中的每個條件的可能取值都要取到,即:T1 T2 T3 T4 ~T1 ~T2 ~T3 ~T4。觀察前面設計測試用例:
1: A=1 B=1 X=0 (路徑1→2 →8 覆蓋條件: T1 T2)
2: A=0 B=3 X=0 (路徑1→5→6→8 覆蓋條件: ~ T1 ~T2 T3 T4)
3: A=-1 B=3 X=2 (路徑1→5→8 覆蓋條件: ~ T1 ~T2 ~T3 ~T4)
上述測試用例覆蓋了4個條件產生的8種情況。
可見,這組測試用例同時覆蓋了兩個分支的取真分支和取假分支以及4個條件產生的8種情況,所以它們滿足分支-條件覆蓋的標準。
(5)要滿足條件組合覆蓋,每個分支中各條件的每一種組合至少要出現一次,在兩個分支中有8種可能的組合:
① A>0, B<2: T1, T2 ② A>0, B≥2: T1, ~T2
③ A≤0, B<2: ~T1, T2 ④ A≤0, B≥2: ~T1, ~T2
⑤ A=0, X<1: T3, T4 ⑥ A=0, X≥1: T3, ~T4
⑦ A≠0, X<1: ~T3, T4 ⑧ A≠0, X≥1: ~T3, ~T4
沿用前面設計測試用例:
1: A=1 B=1 X=0 (路徑1→2 →8 覆蓋條件: T1 T2 ①)
2: A=0 B=3 X=0 (路徑1→5→6→8 覆蓋條件: ~T1 ~T2 T3 T4 ④ ⑤)
3: A=-1 B=3 X=2 (路徑1→5→8 覆蓋條件: ~T1 ~T2 ~T3 ~T4 ④ ⑧)

四、實驗驗證

1.語句覆蓋測試

2.分支覆蓋測試、條件覆蓋測試、分支/條件覆蓋測試、路徑覆蓋測試

3.條件組合覆蓋測試

實驗二:黑盒測試

一、實驗目的

鞏固黑盒測試知識,黑盒測試能夠發現下述錯誤,功能不正確或遺漏了功能;界面錯誤;數據結構錯誤或外部數據庫訪問錯誤;性能錯誤;初始化和終止錯誤。

二、實驗內容

測試規劃是基于產品的功能,目的是檢查程序各個功能是否能夠實現,并檢查其中的功能錯誤,這種策試方法稱為黑盒測試方法。
黑盒測試又稱為功能測試、數據驅動測試和基于規格說明的測試。它是一種從用戶觀點出發的測試,一般被用來確認軟件功能的正確性和可操作性。
黑盒測試的基本觀點是:任何程序都可以看作是從輸入定義域映射到輸出值域的函數過程,被測程序被認為是一個打不開的黑盒子,黑盒中的內容完全不知道,只明確要做到什么。
黑盒測試主要根據規格說明書設計測試用例,并不涉及程序內部構造和內部特性,只依靠被測程序輸入和輸出之間的關系或程序的功能設計測試用例。
黑盒測試技術包括: 等價劃分法、邊界值分析法、錯誤推測法、因果圖法等

三、實驗過程

1.測試程序

#include <stdio.h> int main() {float a,b,c;printf("請輸入三角形的三條邊長a,b,c:\n");scanf("%f",&a);scanf("%f",&b);scanf("%f",&c);if((a>=1&&a<=100)&&(b>=1&&b<=100)&&(c>=1&&c<=100)){if(a+b<c||a+c<b||b+c<a) /*判斷是否能構成三角形*/{printf("非三角形!\n");} else if((a==b&&(a!=c))||(a==c&&(b!=c))||(b==c&&(a!=c))) /*判斷是否為等腰三角形*/{printf("等腰三角形\n");} else if(a==c && a==b) /*判斷是否為等邊三角形*/{printf("等邊三角形\n");} else if(a*a+b*b==c*c||b*b+c*c==a*a||a*a+c*c==b*b){printf("直角三角形\n");} else{printf("一般三角形!\n");} }else{printf("請輸入1-100之間的數!\n");} return 0; }

2.分析測試

1)邊界值分析法:

根據題目要求可知邊的有效取值范圍是[1,100],分析可得出:
a、邊界值是:1,100
b、次邊界值是:0,101,2,99

2)等價類劃分法:

(1)傳統等價類劃分測試用例設計
在三角形問題中,輸入條件為:
a、 整數
b、 三個數
c、 取值為1~100

(2)標準和穩健等價類劃分測試用例設計
三角形問題有四種可能輸出:等邊三角形、等腰三角形、直角三角形、一般三角形和非三角形。利用這些信息可確定下列輸出(值域)等價類。

R1={<a,b,c>:邊為a,b,c的等邊三角形} R2={<a,b,c>:邊為a,b,c的等腰三角形} R3={<a,b,c>:邊為a,b,c的一般三角形} R4={<a,b,c>:邊為a,b,c不能形成三角形} R5={<a,b,c>:邊為a,b,c的直角三角形 }

4個標準等價類劃分測試用例,如表:

考慮a,b,c的無效值產生了下面7個穩健等價類劃分測試用例,如表所示:

四、實驗驗證

輸入3、4、5

輸入 6 、7、8

輸入6、6、6

輸入6、6、9

輸入1、2、5


附錄本篇報告下載鏈接

總結

以上是生活随笔為你收集整理的软件工程实验的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。