測(cè)試用例基礎(chǔ)知識(shí)

測(cè)試用例的內(nèi)容:用例編號(hào)、用例標(biāo)題、重要級(jí)別、預(yù)置條件、測(cè)試輸入、操作步驟、預(yù)期結(jié)果、測(cè)試結(jié)果、作者。

黑盒測(cè)試用例設(shè)計(jì)方法包括等價(jià)類劃分法、邊界值分析法、錯(cuò)誤推測(cè)法、因果圖法、判定表驅(qū)動(dòng)法、正交試驗(yàn)設(shè)計(jì)法、功能圖法、場(chǎng)景模擬分析法等。

(一)等價(jià)類劃分法

1、定義

是把所有可能的輸入數(shù)據(jù),即程序的輸入域劃分成若干部分(子集),然后從每一個(gè)子集中選取少數(shù)具有代表性的數(shù)據(jù)作為測(cè)試用例。該方法是一種重要的,常用的黑盒測(cè)試用例設(shè)計(jì)方法。

2、劃分等價(jià)類

等價(jià)類是指某個(gè)輸入域的子集合。在該子集合中,各個(gè)輸入數(shù)據(jù)對(duì)于揭露程序中的錯(cuò)誤都是等效的,并合理地假定:測(cè)試某等價(jià)類的代表值就等于對(duì)這一類其它值的測(cè)試,因此,可以把全部輸入數(shù)據(jù)合理劃分為若干等價(jià)類,在每一個(gè)等價(jià)類中取一個(gè)數(shù)據(jù)作為測(cè)試的輸入條件就可以用少量代表性的測(cè)試數(shù)據(jù)取得較好的測(cè)試結(jié)果。等價(jià)類劃分可有兩種不同的情況:有效等價(jià)類和無效等價(jià)類。

1)有效等價(jià)類:是指對(duì)于程序的規(guī)格說明來說是合理的、有意義的輸入數(shù)據(jù)構(gòu)成的集合。利用有效等價(jià)類可檢驗(yàn)程序是否實(shí)現(xiàn)了規(guī)格說明中所規(guī)定的功能和性能。

2)無效等價(jià)類:與有效等價(jià)類的定義恰巧相反。無效等價(jià)類指對(duì)程序的規(guī)格說明是不合理的或無意義的輸入數(shù)據(jù)所構(gòu)成的集合。對(duì)于具體的問題,無效等價(jià)類至少應(yīng)有一個(gè),也可能有多個(gè)。

? 設(shè)計(jì)測(cè)試用例時(shí),要同時(shí)考慮這兩種等價(jià)類。因?yàn)檐浖粌H要能接收合理的數(shù)據(jù),也要能經(jīng)受意外的考驗(yàn),這樣的測(cè)試才能確保軟件具有更高的可靠性。

3、劃分等價(jià)類的標(biāo)準(zhǔn)

1)完備測(cè)試、避免冗余

2)劃分等價(jià)類重要的是:集合的劃分、劃分為互不相交的一組子集,而子集的并是整個(gè)集合

3)并是整個(gè)集合:備性

4)子集互不相交:保證一種形式的無冗余性

5)同一類中標(biāo)識(shí)(選擇)一個(gè)測(cè)試用例,同一等價(jià)類中,往往處理相同,相同處理映射到“相同的執(zhí)行路徑”。

4、劃分等價(jià)類的方法

1)在輸入條件規(guī)定了取值范圍或值的個(gè)數(shù)的情況下,則可以確立一個(gè)有效等價(jià)類和兩個(gè)無效等價(jià)類。如:輸入值是學(xué)生成績(jī),范圍是0~100;


2)在輸入條件規(guī)定了輸入值的集合或者規(guī)定了"必須如何"的條件的情況下,可確立一個(gè)有效等價(jià)類和一個(gè)無效等價(jià)類;

3)在輸入條件是一個(gè)布爾量的情況下,可確定一個(gè)有效等價(jià)類和一個(gè)無效等價(jià)類。

4)在規(guī)定了輸入數(shù)據(jù)的一組值(假定n個(gè)),并且程序要對(duì)每一個(gè)輸入值分別處理的情況下,可確立n個(gè)有效等價(jià)類和一個(gè)無效等價(jià)類。

例:輸入條件說明學(xué)歷可為:專科、本科、碩士、博士四種之一,則分別取這四種這四個(gè)值作為四個(gè)有效等價(jià)類,另外把四種學(xué)歷之外的任何學(xué)歷作為無效等價(jià)類。

5)在規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則的情況下,可確立一個(gè)有效等價(jià)類(符合規(guī)則)和若干個(gè)無效等價(jià)類(從不同角度違反規(guī)則);

6)在確知已劃分的等價(jià)類中各元素在程序處理中的方式不同的情況下,則應(yīng)再將該等價(jià)類進(jìn)一步的劃分為更小的等價(jià)類。

5、設(shè)計(jì)測(cè)試用例

在確立了等價(jià)類后,可建立等價(jià)類表,列出所有劃分出的等價(jià)類輸入條件:有效等價(jià)類、無效等價(jià)類,然后從劃分出的等價(jià)類中按以下三個(gè)原則設(shè)計(jì)測(cè)試用例:

? 1)為每一個(gè)等價(jià)類規(guī)定一個(gè)唯一的編號(hào);

? 2)設(shè)計(jì)一個(gè)新的測(cè)試用例,使其盡可能多地覆蓋尚未被覆蓋地有效等價(jià)類,重復(fù)這一步,直到所有的有效等價(jià)類都被覆蓋為止;

? 3)設(shè)計(jì)一個(gè)新的測(cè)試用例,使其僅覆蓋一個(gè)尚未被覆蓋的無效等價(jià)類,重復(fù)這一步,直到所有的無效等價(jià)類都被覆蓋為止。

6、實(shí)戰(zhàn)

1、某程序規(guī)定:"輸入三個(gè)整數(shù) a 、 b 、 c 分別作為三邊的邊長(zhǎng)構(gòu)成三角形。通過程序判定所構(gòu)成的三角形的類型,當(dāng)此三角形為一般三角形、等腰三角形及等邊三角形時(shí),分別作計(jì)算 … "。用等價(jià)類劃分方法為該程序進(jìn)行測(cè)試用例設(shè)計(jì)。(三角形問題的復(fù)雜之處在于輸入與輸出之間的關(guān)系比較復(fù)雜。)

分析題目中給出和隱含的對(duì)輸入條件的要求:?

(1)整數(shù)??? (2)三個(gè)數(shù)??? (3)非零數(shù)?? (4)正數(shù)?

(5)兩邊之和大于第三邊???? (6)等腰???? (7)等邊?

?? 如果 a 、 b 、 c 滿足條件( 1 ) ~ ( 4 ),則輸出下列四種情況之一:

1)如果不滿足條件(5),則程序輸出為 " 非三角形 " 。

2)如果只有兩條邊相等、即滿足條件(6),則程序輸出為 " 等腰三角形 " 。

3)如果三條邊相等即滿足條件(7),則程序輸出為 " 等邊三角形 " 。

4)如果三條邊都不相等,則程序輸出為 " 一般三角形 " 。?

列出等價(jià)類表并編號(hào)


2、NextDate函數(shù)包含三個(gè)變量:month、day、year,函數(shù)的輸出為輸入日期后一天的日期。

例如,輸入2006年3月7日,則函數(shù)的輸出為2006年3月8日。要求輸入變量month、day、year均為整數(shù)值,并且滿足下列條件:

1、1<=month<=12

2、1<=day<=31

3、1812<=year<=2012

1)有效等價(jià)類為:

M1={月份:1<=月份<=12}

D1={日期:1<=日期<=31}

Y1={年份:1812<=年<=2012}

2)若條件1~3中任何一個(gè)條件失效,則NextDate函數(shù)都會(huì)產(chǎn)生一個(gè)輸出,指明相應(yīng)的變量超出取值范圍,比如“month的值不在12范圍中”。顯然還存在這大量的year、month、day的無效組合,NextDate函數(shù)將這些組合作為統(tǒng)一的輸出:“無效輸入日期”。

其無效等價(jià)類為:

M2={月份:月份<1}

M3={月份:月份>12}

D2={日期:日期<1}

D3={日期:日期>31}

Y2={年份:年<1812}

Y3={年份:年>2012}

弱一般等價(jià)類測(cè)試用例


強(qiáng)一般等價(jià)類測(cè)試用例同弱一般等價(jià)類測(cè)試用例

注:弱有單缺陷假設(shè);健壯考慮了無效值。

弱健壯等價(jià)類測(cè)試


強(qiáng)健壯等價(jià)類測(cè)試



(二)邊界值分析法

定義:邊界值分析法就是對(duì)輸入或輸出的邊界值進(jìn)行測(cè)試的一種黑盒測(cè)試方法。通常邊界值分析法是作為對(duì)等價(jià)類劃分法的補(bǔ)充,這種情況下,其測(cè)試用例來自等價(jià)類的邊界。

與等價(jià)類區(qū)別:

1)邊界值分析不是從某等價(jià)類中隨便挑一個(gè)作為代表,而是使這個(gè)等價(jià)類的每個(gè)邊界都要作為測(cè)試條件。

2)邊界值分析不僅考慮輸入條件,還要考慮輸出空間產(chǎn)生的測(cè)試情況。

分析方法:

大量的錯(cuò)誤是發(fā)生在輸入或輸出范圍的邊界上,而不是發(fā)生在輸入輸出范圍的內(nèi)部。因此針對(duì)各種邊界情況設(shè)計(jì)測(cè)試用例,可以查出更多的錯(cuò)誤。使用邊界值分析方法設(shè)計(jì)測(cè)試用例,首先應(yīng)確定邊界情況。通常輸入和輸出等價(jià)類的邊界,就是應(yīng)著重測(cè)試的邊界情況。應(yīng)當(dāng)選取正好等于,剛剛大于或剛剛小于邊界的值作為測(cè)試數(shù)據(jù),而不是選取等價(jià)類中的典型值或任意值作為測(cè)試數(shù)據(jù)。

常見邊界值:

1)對(duì)16Bit的整數(shù)而言,32767和32768是邊界

?2)屏幕上光標(biāo)在最左上、最右下位置

?3)報(bào)表的第一行和最后一行

?4)數(shù)組元素的第一個(gè)和最后一個(gè)

5)循環(huán)的第0次、第1次和倒數(shù)第2次、最后一次

測(cè)試用例:

1)????如果輸入條件規(guī)定了值的范圍,則應(yīng)取剛達(dá)到這個(gè)范圍的邊界的值,以及剛剛超越這個(gè)范圍邊界的值作為測(cè)試輸入數(shù)據(jù)。

???例如,如果程序的規(guī)格說明中規(guī)定:"重量在10公斤至50公斤范圍內(nèi)的郵件,其郵費(fèi)計(jì)算公式為……"。作為測(cè)試用例,我們應(yīng)取10及50,還應(yīng)取10.01,49.99,9.99及50.01等。

2)????如果輸入條件規(guī)定了值的個(gè)數(shù),則用最大個(gè)數(shù),最小個(gè)數(shù),比最小個(gè)數(shù)少一,比最大個(gè)數(shù)多一的數(shù)作為測(cè)試數(shù)據(jù)。

???例如,一個(gè)輸入文件應(yīng)包括1~255個(gè)記錄,則測(cè)試用例可取1和255,還應(yīng)取0及256等。

3)????將規(guī)則1)和2)應(yīng)用于輸出條件,即設(shè)計(jì)測(cè)試用例使輸出值達(dá)到邊界值及其左右的值。

???例如,某程序的規(guī)格說明要求計(jì)算出"每月保險(xiǎn)金扣除額為0至1165.25元",其測(cè)試用例可取0.00及1165.24、還可取一0.01及1165.26等。

???再如一程序?qū)儆谇閳?bào)檢索系統(tǒng),要求每次"最少顯示1條、最多顯示4條情報(bào)摘要",這時(shí)我們應(yīng)考慮的測(cè)試用例包括1和4,還應(yīng)包括0和5等。

4)????如果程序的規(guī)格說明給出的輸入域或輸出域是有序集合,則應(yīng)選取集合的第一個(gè)元素和最后一個(gè)元素作為測(cè)試用例。

5)????如果程序中使用了一個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu),則應(yīng)當(dāng)選擇這個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu)的邊界上的值作為測(cè)試用例。

6)????分析規(guī)格說明,找出其它可能的邊界條件。

實(shí)例1,批閱試卷

現(xiàn)有一個(gè)學(xué)生標(biāo)準(zhǔn)化考試批閱試卷,產(chǎn)生成績(jī)報(bào)告的程序。其規(guī)格說明如下:程序的輸入文件由一些有80個(gè)字符的記錄組成,如右圖所示,所有記錄分為3組:


1) 標(biāo)題:這一組只有一個(gè)記錄,其內(nèi)容為輸出成績(jī)報(bào)告的名字。

2) 試卷各題標(biāo)準(zhǔn)答案記錄:每個(gè)記錄均在第80個(gè)字符處標(biāo)以數(shù)字"2"。該組的第一個(gè)記錄的第1至第3個(gè)字符為題目編號(hào)(取值為1一999)。第10至第59個(gè)字符給出第1至第50題的答案(每個(gè)合法字符表示一個(gè)答案)。該組的第2,第3……個(gè)記錄相應(yīng)為第51至第100,第101至第150,…題的答案。

3) 每個(gè)學(xué)生的答卷描述:該組中每個(gè)記錄的第80個(gè)字符均為數(shù)字"3"。每個(gè)學(xué)生的答卷在若干個(gè)記錄中給出。如甲的首記錄第1至第9字符給出學(xué)生姓名及學(xué)號(hào),第10至第59字符列出的是甲所做的第1至第50題的答案。若試題數(shù)超過50,則第2,第3……紀(jì)錄分別給出他的第51至第100,第101至第150……題的解答。然后是學(xué)生乙的答卷記錄。

4) 學(xué)生人數(shù)不超過200,試題數(shù)不超過999。

5) 程序的輸出有4個(gè)報(bào)告:

a)按學(xué)號(hào)排列的成績(jī)單,列出每個(gè)學(xué)生的成績(jī)、名次。

b)按學(xué)生成績(jī)排序的成績(jī)單。

c)平均分?jǐn)?shù)及標(biāo)準(zhǔn)偏差的報(bào)告。

d)試題分析報(bào)告。按試題號(hào)排序,列出各題學(xué)生答對(duì)的百分比。

解答:分別考慮輸入條件和輸出條件,以及邊界條件。給出下表所示的輸入條件及相應(yīng)的測(cè)試用例。


輸出條件及相應(yīng)的測(cè)試用例表。


實(shí)例2,三角形的邊界問題分析測(cè)試用例

在三角形問題描述中,除了要求邊長(zhǎng)是整數(shù)外,沒有給出其它的限制條件。在此,我們將三角形每邊邊長(zhǎng)的取范圍值設(shè)值為[1, 100]。


實(shí)例3,NextDate函數(shù)邊界值分析測(cè)試用例

在NextDate函數(shù)中,隱含規(guī)定了變量mouth和變量day的取值范圍為1≤mouth≤12和1≤day≤31,并設(shè)定變量year的取值范圍為1912≤year≤2050。

(三)錯(cuò)誤推測(cè)法

定義:基于經(jīng)驗(yàn)和直覺推測(cè)程序中所有可能存在的各種錯(cuò)誤,從而有針對(duì)性的設(shè)計(jì)測(cè)試用例的方法。

基本思想:列舉出程序中所有可能有的錯(cuò)誤和容易發(fā)生錯(cuò)誤的特殊情況,根據(jù)他們選擇測(cè)試用例。

1.?????例如、輸入數(shù)據(jù)和輸出數(shù)據(jù)為0的情況;輸入表格為空格或輸入表格只有一行。這些都是容易發(fā)生錯(cuò)誤的情況。可選擇這些情況下的例子作為測(cè)試用例。

2.?????例如、前面例子中成績(jī)報(bào)告的程序,采用錯(cuò)誤推測(cè)法還可補(bǔ)充設(shè)計(jì)一些測(cè)試用例:

1)?????程序是否把空格作為回答

2)?????在回答記錄中混有標(biāo)準(zhǔn)答案記錄

3)?????除了標(biāo)題記錄外,還有一些的記錄最后一個(gè)字符即不是2也不是3

4)?????有兩個(gè)學(xué)生的學(xué)號(hào)相同

5)?????試題數(shù)是負(fù)數(shù)

3.?????例如,測(cè)試一個(gè)對(duì)線性表(比如數(shù)組)進(jìn)行排序的程序,可推測(cè)列出以下幾項(xiàng)需要特別測(cè)試的情況:

1)????輸入的線性表為空表;

2)????表中只含有一個(gè)元素;

3)????輸入表中所有元素已排好序;

4)????輸入表已按逆序排好;

5)????輸入表中部分或全部元素相同。

4.?????例如,測(cè)試手機(jī)終端的通話功能,可以設(shè)計(jì)各種通話失敗的情況來補(bǔ)充測(cè)試用例:

1)????無SIM 卡插入時(shí)進(jìn)行呼出(非緊急呼叫)

2)????插入已欠費(fèi)SIM卡進(jìn)行呼出

3)????射頻器件損壞或無信號(hào)區(qū)域插入有效SIM卡呼出

4)????網(wǎng)絡(luò)正常,插入有效SIM卡,呼出無效號(hào)碼(如1、888、333333、不輸入任何號(hào)碼等)

5)????網(wǎng)絡(luò)正常,插入有效SIM卡,使用“快速撥號(hào)”功能呼出設(shè)置無效號(hào)碼的數(shù)字

(四)因果圖法

定義:因果圖法是一種利用圖解法分析輸入的各種組合情況,從而設(shè)計(jì)測(cè)試用例的方法,它適合于檢查程序輸入條件的各種組合情況。

應(yīng)用:

等價(jià)類劃分法和邊界值分析方法都是著重考慮輸入條件,但沒有考慮輸入條件的各種組合、輸入條件之間的相互制約關(guān)系。這樣雖然各種輸入條件可能出錯(cuò)的情況已經(jīng)測(cè)試到了,但多個(gè)輸入條件組合起來可能出錯(cuò)的情況卻被忽視了。

如果在測(cè)試時(shí)必須考慮輸入條件的各種組合,則可能的組合數(shù)目將是天文數(shù)字,因此必須考慮采用一種適合于描述多種條件的組合、相應(yīng)產(chǎn)生多個(gè)動(dòng)作的形式來進(jìn)行測(cè)試用例的設(shè)計(jì),這就需要利用因果圖(邏輯模型)。

1.?????因果圖介紹

1)????4種符號(hào)分別表示了規(guī)格說明中向4種因果關(guān)系。


2)????因果圖中使用了簡(jiǎn)單的邏輯符號(hào),以直線聯(lián)接左右結(jié)點(diǎn)。左結(jié)點(diǎn)表示輸入狀態(tài)(或稱原因),右結(jié)點(diǎn)表示輸出狀態(tài)(或稱結(jié)果)。

3)????C1表示原因,通常置于圖的左部;e1表示結(jié)果,通常在圖的右部。C1和e1均可取值0或1,0表示某狀態(tài)不出現(xiàn),1表示某狀態(tài)出現(xiàn)。

2.?????因果圖涉及的概念

1)????關(guān)系

??恒等:若c1是1,則e1也是1;否則e1為0。

??非:若c1是1,則e1是0;否則e1是1。

??或:若c1或c2或c3是1,則e1是1;否則e1為0。“或”可有任意個(gè)輸入。

??與:若c1和c2都是1,則e1為1;否則e1為0。“與”也可有任意個(gè)輸入。

2)????約束

輸入狀態(tài)相互之間還可能存在某些依賴關(guān)系,稱為約束。例如,某些輸入條件本身不可能同時(shí)出現(xiàn)。輸出狀態(tài)之間也往往存在約束。在因果圖中,用特定的符號(hào)標(biāo)明這些約束。


??輸入條件的約束有以下4類:

·????????E約束(異):a和b中至多有一個(gè)可能為1,即a和b不能同時(shí)為1。

·????????I約束(或):a、b和c中至少有一個(gè)必須是1,即?a、b?和c不能同時(shí)為0。

·????????O約束(唯一);a和b必須有一個(gè),且僅有1個(gè)為1。

·????????R約束(要求):a是1時(shí),b必須是1,即不可能a是1時(shí)b是0。

??輸出條件約束類型

???????????????輸出條件的約束只有M約束(強(qiáng)制):若結(jié)果a是1,則結(jié)果b強(qiáng)制為0。

3.?????采用因果圖法設(shè)計(jì)測(cè)試用例的步驟:

1)????分析軟件規(guī)格說明描述中,那些是原因(即輸入條件或輸入條件的等價(jià)類),那些是結(jié)果(即輸出條件),并給每個(gè)原因和結(jié)果賦予一個(gè)標(biāo)識(shí)符。

2)????分析軟件規(guī)格說明描述中的語義,找出原因與結(jié)果之間,原因與原因之間對(duì)應(yīng)的關(guān)系,根據(jù)這些關(guān)系,畫出因果圖。

3)????由于語法或環(huán)境限制,有些原因與原因之間,原因與結(jié)果之間的組合情況不可能出現(xiàn),為表明這些特殊情況,在因果圖上用一些記號(hào)表明約束或限制條件。

4)????把因果圖轉(zhuǎn)換為判定表。

5)????把判定表的每一列拿出來作為依據(jù),設(shè)計(jì)測(cè)試用例。

實(shí)例1,字符

某軟件規(guī)格說明書包含這樣的要求:第一列字符必須是A或B,第二列字符必須是一個(gè)數(shù)字,在此情況下進(jìn)行文件的修改,但如果第一列字符不正確,則給出信息L;如果第二列字符不是數(shù)字,則給出信息M。

實(shí)例2,自動(dòng)售貨機(jī)

有一個(gè)處理單價(jià)為5角錢的飲料的自動(dòng)售貨機(jī)軟件測(cè)試用例的設(shè)計(jì)。其規(guī)格說明如下:若投入5角錢或1元錢的硬幣,押下〖橙汁〗或〖啤酒〗的按鈕,則相應(yīng)的飲料就送出來。若售貨機(jī)沒有零錢找,則一個(gè)顯示〖零錢找完〗的紅燈亮,這時(shí)在投入1元硬幣并押下按鈕后,飲料不送出來而且1元硬幣也退出來;若有零錢找,則顯示〖零錢找完〗的紅燈滅,在送出飲料的同時(shí)退還5角硬幣。

(五)判定表驅(qū)動(dòng)法


(六)正交試驗(yàn)設(shè)計(jì)法

定義:從大量的(實(shí)驗(yàn))數(shù)據(jù)(測(cè)試?yán)┲刑暨x適量的,有代表性的點(diǎn)(例),從而合理地安排實(shí)驗(yàn)(測(cè)試)的一種科學(xué)實(shí)驗(yàn)設(shè)計(jì)方法.類似的方法有:聚類分析方法,因子方法方法等.

利用正交實(shí)驗(yàn)設(shè)計(jì)測(cè)試用例的步驟:

1.?????提取功能說明,構(gòu)造因子--狀態(tài)表

把影響實(shí)驗(yàn)指標(biāo)的條件稱為因子.而影響實(shí)驗(yàn)因子的條件叫因子的狀態(tài).利用正交實(shí)驗(yàn)設(shè)計(jì)方法來設(shè)計(jì)測(cè)試用例時(shí),首先要根據(jù)被測(cè)試軟件的規(guī)格說明書找出影響其功能實(shí)現(xiàn)的操作對(duì)象和外部因素,把他們當(dāng)作因子,而把各個(gè)因子的取值當(dāng)作狀態(tài).對(duì)軟件需求規(guī)格說明中的功能要求進(jìn)行劃分,把整體的概要性的功能要求進(jìn)行層層分解與展開,分解成具體的有相對(duì)獨(dú)立性的基本的功能要求.這樣就可以把被測(cè)試軟件中所有的因子都確定下來,并為確定個(gè)因子的權(quán)值提供參考的依據(jù).確定因子與狀態(tài)是設(shè)計(jì)測(cè)試用例的關(guān)鍵.因此要求盡可能全面的正確的確定取值,以確保測(cè)試用例的設(shè)計(jì)作到完整與有效。

2.?????加權(quán)篩選,生成因素分析表

對(duì)因子與狀態(tài)的選擇可按其重要程度分別加權(quán).可根據(jù)各個(gè)因子及狀態(tài)的作用大小,出現(xiàn)頻率的大小以及測(cè)試的需要,確定權(quán)值的大小。

3.?????利用正交表構(gòu)造測(cè)試數(shù)據(jù)集

正交表的推導(dǎo)依據(jù)Galois理論(這里省略,需要時(shí)可查數(shù)理統(tǒng)計(jì)方面的教材)。

利用正交實(shí)驗(yàn)設(shè)計(jì)方法設(shè)計(jì)測(cè)試用例,比使用等價(jià)類劃分,邊界值分析,因果圖等方法有以下優(yōu)點(diǎn):節(jié)省測(cè)試工作工時(shí);可控制生成的測(cè)試用例數(shù)量;測(cè)試用例具有一定的覆蓋率。


(七)功能圖法

定義:功能圖由狀態(tài)遷移圖和布爾函數(shù)組成.狀態(tài)遷移圖用狀態(tài)和遷移來描述.一個(gè)狀態(tài)指出數(shù)據(jù)輸入的位置(或時(shí)間),而遷移則指明狀態(tài)的改變.同時(shí)要依靠判定表或因果圖表示的邏輯功能.例,一個(gè)簡(jiǎn)化的自動(dòng)出納機(jī)ATM的功能圖。

應(yīng)用:

1.????功能圖介紹

一個(gè)程序的功能說明通常由動(dòng)態(tài)說明和靜態(tài)說明組成.動(dòng)態(tài)說明描述了輸入數(shù)據(jù)的次序或轉(zhuǎn)移的次序.

靜態(tài)說明描述了輸入條件與輸出條件之間的對(duì)應(yīng)關(guān)系.對(duì)于較復(fù)雜的程序,由于存在大量的組合情況,因此,僅用靜態(tài)說明組成的規(guī)格說明對(duì)于測(cè)試來說往往是不夠的.必須用動(dòng)態(tài)說明來補(bǔ)充功能說明.功能圖方法是用功能圖FD形式化地表示程序的功能說明,并機(jī)械地生成功能圖的測(cè)試用例.

功能圖模型由狀態(tài)遷移圖和邏輯功能模型構(gòu)成.狀態(tài)遷移圖用于表示輸入數(shù)據(jù)序列以及相應(yīng)的輸出數(shù)據(jù).在狀態(tài)遷移圖中,由輸入數(shù)據(jù)和當(dāng)前狀態(tài)決定輸出數(shù)據(jù)和后續(xù)狀態(tài).邏輯功能模型用于表示在狀態(tài)中輸入條件和輸出條件之間的對(duì)應(yīng)關(guān)系.邏輯功能模型只適合于描述靜態(tài)說明,輸出數(shù)據(jù)僅由輸入數(shù)據(jù)決定.測(cè)試用例則是由測(cè)試中經(jīng)過的一系列狀態(tài)和在每個(gè)狀態(tài)中必須依靠輸入/輸出數(shù)據(jù)滿足的一對(duì)條件組成.功能圖方法其實(shí)是是一種黑盒白盒混合用例設(shè)計(jì)方法。

(功能圖方法中,要用到邏輯覆蓋和路徑測(cè)試的概念和方法,其屬白盒測(cè)試方法中?的內(nèi)容.邏輯覆蓋是以程序內(nèi)部的邏輯結(jié)構(gòu)為基礎(chǔ)的測(cè)試用例設(shè)計(jì)方法.該方法要求測(cè)試人員對(duì)程序的邏輯結(jié)構(gòu)有清楚的了解.由于覆蓋測(cè)試的目標(biāo)不同,邏輯覆蓋可分為:語句覆蓋,判定覆蓋,判定-條件覆蓋,條件組合覆蓋及路徑覆蓋.下面我們指的邏輯覆蓋和路徑是功能或系統(tǒng)水平上的,以區(qū)別與白盒測(cè)試中的程序內(nèi)部的.)

2.????測(cè)試用例生成方法

從功能圖生成測(cè)試用例,得到的測(cè)試用例數(shù)是可接受的. 問題的關(guān)鍵的是如何從狀態(tài)遷移圖中選取測(cè)試用例. 若用節(jié)點(diǎn)代替狀態(tài),用弧線代替遷移,則狀態(tài)遷移圖就可轉(zhuǎn)化成一個(gè)程序的控制流程圖形式.問題就轉(zhuǎn)化為程序的路徑測(cè)試問題(如白盒測(cè)試)問題了.

3.????測(cè)試用例生成規(guī)則

為了把狀態(tài)遷移(測(cè)試路徑)的測(cè)試用例與邏輯模型(局部測(cè)試用例)的測(cè)試用例組合起來,從功能圖生成實(shí)用的測(cè)試用例,須定義下面的規(guī)則.在一個(gè)結(jié)構(gòu)化的狀態(tài)遷移(SST)中,定義三種形式的循環(huán):順序,選擇和重復(fù).但分辨一個(gè)狀態(tài)遷移中的所有循環(huán)是有困難的.(其表示圖形省略)。

4.????從功能圖生成測(cè)試用例的過程

1)????生成局部測(cè)試用例:在每個(gè)狀態(tài)中,從因果圖生成局部測(cè)試用例.局部測(cè)試用例由原因值(輸入數(shù)據(jù))組合與對(duì)應(yīng)的結(jié)果值(輸出數(shù)據(jù)或狀態(tài))構(gòu)成。

2)????測(cè)試路徑生成:利用上面的規(guī)則(三種)生成從初始狀態(tài)到最后狀態(tài)的測(cè)試路徑。

3)????測(cè)試用例合成:合成測(cè)試路徑與功能圖中每個(gè)狀態(tài)中的局部測(cè)試用例.結(jié)果是初始狀態(tài)到最后狀態(tài)的一個(gè)狀態(tài)序列,以及每個(gè)狀態(tài)中輸入數(shù)據(jù)與對(duì)應(yīng)輸出數(shù)據(jù)的組合。

5.????測(cè)試用例的合成算法:采用條件構(gòu)造樹.

(八)場(chǎng)景模擬分析法

定義:現(xiàn)在的軟件幾乎都是用事件觸發(fā)來控制流程的,事件觸發(fā)時(shí)的情景便形成了場(chǎng)景,而同一事件不同的觸發(fā)順序和處理結(jié)果就形成事件流。這種在軟件設(shè)計(jì)方面的思想也可以引入到軟件測(cè)試中,可以比較生動(dòng)地描繪出事件觸發(fā)時(shí)的情景,有利于測(cè)試設(shè)計(jì)者設(shè)計(jì)測(cè)試用例,同時(shí)使測(cè)試用例更容易理解和執(zhí)行。

應(yīng)用:

基本流和備選流:如下圖所示,圖中經(jīng)過用例的每條路徑都用基本流和備選流來表示,直黑線表示基本流,是經(jīng)過用例的最簡(jiǎn)單的路徑。備選流用不同的色彩表示,一個(gè)備選流可能從基本流開始,在某個(gè)特定條件下執(zhí)行,然后重新加入基本流中(如備選流1和3);也可能起源于另一個(gè)備選流(如備選流2),或者終止用例而不再重新加入到某個(gè)流(如備選流2和4)


測(cè)試用例設(shè)計(jì)綜合策略

1.????Myers提出了使用各種測(cè)試方法的綜合策略:

1)????在任何情況下都必須使用邊界值分析方法,經(jīng)驗(yàn)表明用這種方法設(shè)計(jì)出測(cè)試用例發(fā)現(xiàn)程序錯(cuò)誤的能力最強(qiáng)。

2)????必要時(shí)用等價(jià)類劃分方法補(bǔ)充一些測(cè)試用例。

3)????用錯(cuò)誤推測(cè)法再追加一些測(cè)試用例。

4)????對(duì)照程序邏輯,檢查已設(shè)計(jì)出的測(cè)試用例的邏輯覆蓋程度,如果沒有達(dá)到要求的覆蓋標(biāo)準(zhǔn),應(yīng)當(dāng)再補(bǔ)充足夠的測(cè)試用例。

5)????如果程序的功能說明中含有輸入條件的組合情況,則一開始就可選用因果圖法。

2.????測(cè)試用例的設(shè)計(jì)步驟

1)????構(gòu)造根據(jù)設(shè)計(jì)規(guī)格得出的基本功能測(cè)試用例;

2)????邊界值測(cè)試用例;

3)????狀態(tài)轉(zhuǎn)換測(cè)試用例;

4)????錯(cuò)誤猜測(cè)測(cè)試用例;

5)????異常測(cè)試用例;

6)????性能測(cè)試用例;

7)????壓力測(cè)試用例。

3.????優(yōu)化測(cè)試用例的方法

1)????利用設(shè)計(jì)測(cè)試用例的8種方法不斷的對(duì)測(cè)試用例進(jìn)行分解與合并;

2)????采用遺傳算法理論進(jìn)化測(cè)試用例;

3)????在測(cè)試時(shí)利用發(fā)散思維構(gòu)造測(cè)試用例;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,646評(píng)論 6 533
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,595評(píng)論 3 418
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,560評(píng)論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,035評(píng)論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,814評(píng)論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,224評(píng)論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,301評(píng)論 3 442
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,444評(píng)論 0 288
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,988評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,804評(píng)論 3 355
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,998評(píng)論 1 370
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,544評(píng)論 5 360
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,237評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,665評(píng)論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,927評(píng)論 1 287
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,706評(píng)論 3 393
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,993評(píng)論 2 374

推薦閱讀更多精彩內(nèi)容