第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

編寫單元測(cè)試用例說(shuō)明書的依據(jù)是什么?

編寫單元測(cè)試用例說(shuō)明書的依據(jù)是什么?

縹緲止盈 2019-02-14 15:11:26
編寫單元測(cè)試用例說(shuō)明書的依據(jù)是什么
查看完整描述

2 回答

?
湖上湖

TA貢獻(xiàn)2003條經(jīng)驗(yàn) 獲得超2個(gè)贊

一、 單元測(cè)試的概念

單元通俗的說(shuō)就是指一個(gè)實(shí)現(xiàn)簡(jiǎn)單功能的函數(shù)。單元測(cè)試就是只用一組特定的輸入(測(cè)試用例)測(cè)試函數(shù)是否功能正常,并且返回了正確的輸出。

測(cè)試的覆蓋種類

1.語(yǔ)句覆蓋語(yǔ)句覆蓋就是設(shè)計(jì)若干個(gè)測(cè)試用例,運(yùn)行被測(cè)試程序,使得每一條可執(zhí)行語(yǔ)句至少執(zhí)行一次。

2.判定覆蓋(也叫分支覆蓋):設(shè)計(jì)若干個(gè)測(cè)試用例,運(yùn)行所測(cè)程序,使程序中每個(gè)判斷的取真分支和取假分支至少執(zhí)行一次。

3.條件覆蓋:設(shè)計(jì)足夠的測(cè)試用例,運(yùn)行所測(cè)程序,使程序中每個(gè)判斷的每個(gè)條件的每個(gè)可能取值至少執(zhí)行一次。

4.判定——條件覆蓋:設(shè)計(jì)足夠的測(cè)試用例,運(yùn)行所測(cè)程序,使程序中每個(gè)判斷的每個(gè)條件的每個(gè)可能取值至少執(zhí)行一次,并且每個(gè)可能的判斷結(jié)果也至少執(zhí)行一次。
5.條件組合測(cè)試:設(shè)計(jì)足夠的測(cè)試用例,運(yùn)行所測(cè)程序,使程序中每個(gè)判斷的所有條件取值組合至少執(zhí)行一次。

6.路徑測(cè)試:設(shè)計(jì)足夠的測(cè)試用例,運(yùn)行所測(cè)程序,要覆蓋程序中所有可能的路徑。

用例的設(shè)計(jì)方案主要的有下面幾種:條件測(cè)試,基本路徑測(cè)試,循環(huán)測(cè)試。通過(guò)上面的方法可以實(shí)現(xiàn)測(cè)試用例對(duì)程序的邏輯覆蓋,和路徑覆蓋。

二、開始測(cè)試前的準(zhǔn)備

在開始測(cè)試時(shí),要先聲明一下,無(wú)論你設(shè)計(jì)多少測(cè)試用例,無(wú)論你的測(cè)試方案多么完美,都不可能完全100%的發(fā)現(xiàn)所有BUG,我們所需要做的是用最少的資源,做最多測(cè)試檢查,尋找一個(gè)平衡點(diǎn)保證程序的正確性。窮舉測(cè)試是不可能的。所以現(xiàn)在進(jìn)行單元測(cè)試我選用的是現(xiàn)在一般用的比較多的基本路徑測(cè)試法。

三、開始測(cè)試

基本路徑測(cè)試法:設(shè)計(jì)出的測(cè)試用例要保證每一個(gè)基本獨(dú)立路徑至少要執(zhí)行一次。

函數(shù)說(shuō)明 :當(dāng)i_flag=0;返回 i_count+100
當(dāng)i_flag=1;返回 i_count *10
否則 返回 i_count *20

輸入?yún)?shù):int i_count ,
int i_flag
輸出參數(shù): int i_return;

代碼:

1 int Test(int i_count, int i_flag)
2 {
3 int i_temp = 0;
4 while (i_count>0)
5 {
6 if (0 == i_flag)
7 {
8 i_temp = i_count + 100;
9 break;
10 }
11 else
12 {
13 if (1 == i_flag)
14 {
15 i_temp = i_temp + 10;
16 }
17 else
18 {
19 i_temp = i_temp + 20;
20 }
21 }
22 i_count--;
23 }
24 return i_temp;
25 }

1.畫出程序控制流程圖

圈中的數(shù)字代表的是語(yǔ)句的行號(hào),也許有人問(wèn)為什么選4,6,13,8......作為結(jié)點(diǎn),第2行,第3行為什么不是結(jié)點(diǎn),因?yàn)檫x擇結(jié)點(diǎn)是有規(guī)律的。讓我們看程序中;第2行,第3行是按順序執(zhí)行下來(lái)的。直到第4行才出現(xiàn)了循環(huán)操作。而2,3行沒(méi)有什么判斷,選擇等分支操作,所以我們把2,3,4全部合并成一個(gè)結(jié)點(diǎn)。其他的也是照這個(gè)規(guī)則合并,然后就有了上面的流程圖。

2.計(jì)算圈復(fù)雜度

有了圖以后我們要知道到底我們有寫多少個(gè)測(cè)試用例,才能滿足基本路徑測(cè)試。

這里有有了一個(gè)新概念——圈復(fù)雜度

圈復(fù)雜度是一種為程序邏輯復(fù)雜性提供定量測(cè)試的軟件度量。將該度量用于計(jì)算程序的基本獨(dú)立路徑數(shù)目。為確保所有語(yǔ)句至少執(zhí)行一次的測(cè)試數(shù)量的上界。
公式圈復(fù)雜度V(G)=E+N+2,E是流圖中邊的數(shù)量,N是流圖中結(jié)點(diǎn)的數(shù)量。

公式圈復(fù)雜度V(G)=P+1 ,P是流圖G中判定結(jié)點(diǎn)的數(shù)量。

通俗的說(shuō)圈負(fù)責(zé)度就是判斷單元是不是復(fù)雜,是不是好測(cè)試的標(biāo)準(zhǔn)。一般來(lái)說(shuō)如果圈復(fù)雜度如果大于20就表示這個(gè)單元的可測(cè)試性不好,太復(fù)雜(也許有人覺(jué)得無(wú)所謂,但是如果你們公司實(shí)行了 CMMI5的話,對(duì)這個(gè)是有規(guī)定的)。

從圖中我們可以看到,

V(G)=10條邊-8結(jié)點(diǎn)+2=4
V(G)=3 個(gè)判定結(jié)點(diǎn)+1=4

上圖的圈復(fù)雜圖是4。這個(gè)結(jié)果對(duì)我們來(lái)說(shuō)有什么意義呢?它表示我們只要最多4個(gè)測(cè)試用例就可以達(dá)到基本路徑覆蓋。

3.導(dǎo)出程序基本路徑。

現(xiàn)在我們知道了起碼要寫4個(gè)測(cè)試用例,但是怎么設(shè)計(jì)這4個(gè)測(cè)試用例?

導(dǎo)出程序基本路徑,根據(jù)程序基本路徑設(shè)計(jì)測(cè)試用例子。

程序基本路徑:基本獨(dú)立路徑就是從程序的開始結(jié)點(diǎn)到結(jié)束可以選擇任何的路徑遍歷,但是每條路徑至少應(yīng)該包含一條已定義路徑不曾用到的邊。(看起來(lái)不好理解,讓我們看例子)。
讓我們看上面的流程圖:從結(jié)點(diǎn)4到24有幾條路徑呢?

1 B(4,24)
2 C,E,J(4,6,8,24)
3 C,D,F(xiàn),H,A,B(4,6,13,15,22,4,24)
4 C,D,G,I,A,B(4,6,13,19,22,4,24)
還有嗎??

5 C,D,C,I,A,C,E,J(4,6,13,19,22,4,6,8,24)算嗎?

不算,為什么?因?yàn)樯厦娴?條路徑已經(jīng)包括了所有的邊。第5條路徑已經(jīng)不包含沒(méi)有用過(guò)的邊了。所有的路徑都遍歷過(guò)了。

好了,現(xiàn)在我們有了4條基本獨(dú)立路徑根據(jù)獨(dú)立路徑我們可以設(shè)計(jì)測(cè)試用例。

1 B(4,24)
輸入數(shù)據(jù):i_flag=0,或者是i_flag<0的某一個(gè)值。
預(yù)期結(jié)果:i_temp=0.

2 C,E,J(4,6,8,24)
輸入數(shù)據(jù): i_count =1; i_flag=0
預(yù)期結(jié)果:i_temp=101.

3 C,D,F(xiàn),H,A,B(4,6,13,15,22,4,24)
輸入數(shù)據(jù): i_count =1; i_flag=1
預(yù)期結(jié)果:i_temp=10.

4 C,D,G,I,A,B(4,6,13,19,22,4,24)
輸入數(shù)據(jù): i_count =1; i_flag=2
預(yù)期結(jié)果:i_temp=20.

這里的輸入數(shù)據(jù)是有路徑和程序推論出來(lái)的。而要注意的是預(yù)期結(jié)果是從函數(shù)說(shuō)明中導(dǎo)出,不能根據(jù)程序結(jié)構(gòu)中導(dǎo)出。

為什么這么說(shuō)?
讓我們看程序中的第3行。
int i_temp=0; 假如開發(fā)人員一不小心寫錯(cuò)了,變成了int i_temp=1; 根據(jù)程序?qū)С龅念A(yù)期結(jié)果就會(huì)是一個(gè)錯(cuò)誤的值,但是單元測(cè)試不出來(lái)問(wèn)題,那單元測(cè)試就失去了意義。

有人也許會(huì)問(wèn)這么簡(jiǎn)單的函數(shù)就有4個(gè)測(cè)試用例,如果還復(fù)雜一些的怎么辦?上面的測(cè)試用例還可以簡(jiǎn)化嗎?答案是可以。

我們來(lái)看 路徑 1 B(4,24)和 4 C,D,G,I,A,B(4,6,13,19,22,4,24),路徑1是路徑4的真子集,所以1是可以不必要的。上圖的圈復(fù)雜度是4。這個(gè)結(jié)果對(duì)我們來(lái)說(shuō)有什么意義呢?它表示我們只要最多4個(gè)測(cè)試用例就可以達(dá)到基本路徑覆蓋。所以說(shuō)圈復(fù)雜度標(biāo)示是最多的測(cè)試用例個(gè)數(shù),不是一定要4個(gè)測(cè)試用例才可以。不過(guò)有一點(diǎn)要申明的是測(cè)試用例越簡(jiǎn)化代表你的測(cè)試越少,這樣程序的安全性就越低了。

四、完成測(cè)試

接下來(lái)根據(jù)測(cè)試用例使用工具測(cè)試NUNIT,VS2005都可以。

接下來(lái)根據(jù)測(cè)試結(jié)果編寫測(cè)試報(bào)告,測(cè)試人,時(shí)間,結(jié)果,用例,是否通過(guò),格式網(wǎng)上一大把,每個(gè)公司的格式也不一樣就不說(shuō)了。



查看完整回答
反對(duì) 回復(fù) 2019-03-03
?
不負(fù)相思意

TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超10個(gè)贊

相關(guān)的標(biāo)準(zhǔn),比如GB之類,還有項(xiàng)目的研制要求如研制任務(wù)書等,還有具體的測(cè)試來(lái)源,詳細(xì)設(shè)計(jì)文檔以及一些其他文檔。

查看完整回答
反對(duì) 回復(fù) 2019-03-03
  • 2 回答
  • 0 關(guān)注
  • 1288 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)