史上最全的測試用例設(shè)計(jì)方法總結(jié)_第1頁
史上最全的測試用例設(shè)計(jì)方法總結(jié)_第2頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

14/14史上最全的測試用例設(shè)計(jì)方法總結(jié)測試用例的設(shè)計(jì)方法(全)

等價(jià)類劃分方法:

一.方法簡介

1.定義

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

2.劃分等價(jià)類:

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

1)有效等價(jià)類

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

2)無效等價(jià)類

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

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

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

1)完備測試、避免冗余;

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

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

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

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

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

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

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

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

4)在規(guī)定了輸入數(shù)據(jù)的一組值(假定n個(gè)),并且程序要對每一個(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ì)測試用例

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

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

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

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

二.實(shí)戰(zhàn)演習(xí)

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

分析題目中給出和隱含的對輸入條件的要求:

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

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

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

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

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

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

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

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

覆蓋有效等價(jià)類的測試用例:

abc覆蓋等價(jià)類號碼

345(1)--(7)

44

5(1)--(7),(8)

455(1)--(7),(9)

545(1)--(7),(10)

444(1)--(7),(11)覆蓋無效等價(jià)類的測試用例:

2.設(shè)有一個(gè)檔案管理系統(tǒng),要求用戶輸入以年月表示的日期。假設(shè)日期限定在1990年1月~2049年12月,并規(guī)定日期由6位數(shù)字字符組成,前4位表示年,后2位表示月。現(xiàn)用等價(jià)類劃分法設(shè)計(jì)測試用例,來測試程序的"日期檢查功能"。

2)設(shè)計(jì)測試用例,以便覆蓋所有的有效等價(jià)類在表中列出了3個(gè)有效等價(jià)類,編號分別為①、

⑤、⑧,設(shè)計(jì)的測試用例如下:

測試數(shù)據(jù)期望結(jié)果覆蓋的有效等價(jià)類

200211輸入有效①、⑤、⑧

3)為每一個(gè)無效等價(jià)類設(shè)計(jì)一個(gè)測試用例,設(shè)計(jì)結(jié)果如下:

測試數(shù)據(jù)期望結(jié)果覆蓋的無效等價(jià)類

95June無效輸入②

20036無效輸入③

2001006無效輸入④

198912無效輸入⑥

200401無效輸入⑦

200100無效輸入⑨

200113無效輸入⑩

3.NextDate函數(shù)包含三個(gè)變量:month、day和year,函數(shù)的輸出為輸入日期后一天的日期。例如,輸入為2006年3月7日,則函數(shù)的輸出為2006年3月8日。要求輸入變量month、day和year均為整數(shù)值,并且滿足下列條件:

①1≤month≤12

②1≤day≤31

③1920≤year≤2050

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

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

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

Y1={年:1812≤年≤2012}

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

M2={月份:月份12}

D2={日期:日期31}

Y2={年:年2012}

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

月份日期年預(yù)期輸出

61519121912年6月16日

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

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

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

用例ID月份日期年預(yù)期輸出

WR161519121912年6月16日

WR2-1151912月份不在1~12中

WR313151912月份不在1~12中

WR46-11912日期不在1~31中

WR56321912日期不在1~31中

WR66151811年份不在1812~2012中

WR76152013年份不在1812~2012中

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

用例ID月份日期年預(yù)期輸出

SR1-1151912月份不在1~12中

SR26-11912日期不在1~31中

SR36151811年份不在1812~2012中

SR4-1-11912兩個(gè)無效一個(gè)有效

SR56-11811兩個(gè)無效一個(gè)有效

SR6-1151811兩個(gè)無效一個(gè)有效

SR7-1-11811三個(gè)無效

4.傭金問題等價(jià)類測試用例,它是根據(jù)傭金函數(shù)的輸出值域定義等價(jià)類,來改進(jìn)測試用例集合。輸出銷售額≤1000元傭金10%

10001800傭金=220+(銷售額-1800)*20%

測試用例槍機(jī)(45)槍托(30)槍管(25)銷售額傭金

155550050

21515151500175

32525252500360

根據(jù)輸出域選擇輸入值,使落在輸出域等價(jià)類內(nèi),可以結(jié)合弱健壯測試用例結(jié)合。

邊界值分析方法:

一.方法簡介

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

2.與等價(jià)劃分的區(qū)別

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

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

3.邊界值分析方法的考慮:

長期的測試工作經(jīng)驗(yàn)告訴我們,大量的錯(cuò)誤是發(fā)生在輸入或輸出范圍的邊界上,而不是發(fā)生在輸入輸出范圍的內(nèi)部。因此針對各種邊界情況設(shè)計(jì)測試用例,可以查出更多的錯(cuò)誤。

使用邊界值分析方法設(shè)計(jì)測試用例,首先應(yīng)確定邊界情況。通常輸入和輸出等價(jià)類的邊界,就是應(yīng)著重測試的邊界情況。應(yīng)當(dāng)選取正好等于,剛剛大于或剛剛小于邊界的值作為測試數(shù)據(jù),而不是選取等價(jià)類中的典型值或任意值作為測試數(shù)據(jù)。

4.常見的邊界值

1)對16-bit的整數(shù)而言32767和-32768是邊界

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

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

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

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

5.邊界值分析

1)邊界值分析使用與等價(jià)類劃分法相同的劃分,只是邊界值分析假定錯(cuò)誤更多地存在于劃分的邊界上,因此在等價(jià)類的邊界上以及兩側(cè)的情況設(shè)計(jì)測試用例。

例:測試計(jì)算平方根的函數(shù)

--輸入:實(shí)數(shù)

--輸出:實(shí)數(shù)

--規(guī)格說明:當(dāng)輸入一個(gè)0或比0大的數(shù)的時(shí)候,返回其正平方根;當(dāng)輸入一個(gè)小于0的數(shù)時(shí),顯示錯(cuò)誤信息"平方根非法-輸入值小于0"并返回0;庫函數(shù)Print-Line可以用來輸出錯(cuò)誤信息。

2)等價(jià)類劃分:

I.可以考慮作出如下劃分:

a、輸入(i)=0和(b)Error

II.測試用例有兩個(gè):

a、輸入4,輸出2。對應(yīng)于(ii)和(a)。

b、輸入-10,輸出0和錯(cuò)誤提示。對應(yīng)于(i)和(b)。

3)邊界值分析:

劃分(ii)的邊界為0和最大正實(shí)數(shù);劃分(i)的邊界為最小負(fù)實(shí)數(shù)和0。由此得到以下測試用例:

a、輸入{最小負(fù)實(shí)數(shù)}

b、輸入{絕對值很小的負(fù)數(shù)}

c、輸入0

d、輸入{絕對值很小的正數(shù)}

e、輸入{最大正實(shí)數(shù)}

4)通常情況下,軟件測試所包含的邊界檢驗(yàn)有幾種類型:數(shù)字、字符、位置、重量、大小、速度、方位、尺寸、空間等。

5)相應(yīng)地,以上類型的邊界值應(yīng)該在:最大/最小、首位/末位、上/下、最快/最慢、最高/最低、最短/最長、空/滿等情況下。

6)利用邊界值作為測試數(shù)據(jù)

在多數(shù)情況下,邊界值條件是基于應(yīng)用程序的功能設(shè)計(jì)而需要考慮的因素,可以從軟件的規(guī)格說明或常識中得到,也是最終用戶可以很容易發(fā)現(xiàn)問題的。然而,在測試用例設(shè)計(jì)過程中,某些邊界值條件是不需要呈現(xiàn)給用戶的,或者說用戶是很難注意到的,但同時(shí)確實(shí)屬于檢驗(yàn)范疇內(nèi)的邊界條件,稱為內(nèi)部邊界值條件或子邊界值條件。

內(nèi)部邊界值條件主要有下面幾種:

a)數(shù)值的邊界值檢驗(yàn):計(jì)算機(jī)是基于二進(jìn)制進(jìn)行工作的,因此,軟件的任何數(shù)值運(yùn)算都

有一定的范圍限制。

c)其它邊界值檢驗(yàn)

6.基于邊界值分析方法選擇測試用例的原則

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

例如,如果程序的規(guī)格說明中規(guī)定:"重量在10公斤至50公斤范圍內(nèi)的郵件,其郵費(fèi)計(jì)算公式為……"。作為測試用例,我們應(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ù)作為測試數(shù)據(jù)。

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

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

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

再如一程序?qū)儆谇閳?bào)檢索系統(tǒng),要求每次"最少顯示1條、最多顯示4條情報(bào)

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

②試卷各題標(biāo)準(zhǔn)答案記錄:每個(gè)記錄均在第80個(gè)字符處標(biāo)以數(shù)字"2"。該組的第一個(gè)記錄的第1至第3個(gè)字符為題目編號(取值為1一999)。第10至第59個(gè)字符給出第1至第50

題的答案(每個(gè)合法字符表示一個(gè)答案)。該組的第2,第3……個(gè)記錄相應(yīng)為第51至第100,第101至第150,…題的答案。

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

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

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

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

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

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

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

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

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

2.三角形問題的邊界值分析測試用例

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

3.NextDate函數(shù)的邊界值分析測試用例

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

錯(cuò)誤推測方法

一.方法簡介

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

方法。

2.錯(cuò)誤推測方法的基本思想:

列舉出程序中所有可能有的錯(cuò)誤和容易發(fā)生錯(cuò)誤的特殊情況,根據(jù)他們選擇測試用例。1)例如,輸入數(shù)據(jù)和輸出數(shù)據(jù)為0的情況;輸入表格為空格或輸入表格只有一行。這些都是容

易發(fā)生錯(cuò)誤的情況??蛇x擇這些情況下的例子作為測試用例。

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

I.程序是否把空格作為回答

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

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

IV.有兩個(gè)學(xué)生的學(xué)號相同

V.試題數(shù)是負(fù)數(shù)。

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

況:

I.輸入的線性表為空表;

II.表中只含有一個(gè)元素;

III.輸入表中所有元素已排好序;

IV.輸入表已按逆序排好;

V.輸入表中部分或全部元素相同。

二.實(shí)戰(zhàn)演習(xí)

暫無

因果圖方法

一.方法簡介

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

輸入條件的各種組合情況。

2.因果圖法產(chǎn)生的背景:

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

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

3.因果圖介紹

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

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

結(jié)點(diǎn)表示輸出狀態(tài)(或稱結(jié)果)。

3)Ci表示原因,通常置于圖的左部;ei表示結(jié)果,通常在圖的右部。Ci和ei均可取值0或1,0

表示某狀態(tài)不出現(xiàn),1表示某狀態(tài)出現(xiàn)。

4.因果圖概念

1)關(guān)系

①恒等:若ci是1,則ei也是1;否則ei為0。

②非:若ci是1,則ei是0;否則ei是1。

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

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

2)約束

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

A.輸入條件的約束有以下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。

B.輸出條件約束類型

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

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

1)分析軟件規(guī)格說明描述中,那些是原因(即輸入條件或輸入條件的等價(jià)類),那些是結(jié)果(即輸出條

件),并給每個(gè)原因和結(jié)果賦予一個(gè)標(biāo)識符。

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

系,畫出因果圖。

3)由于語法或環(huán)境限制,有些原因與原因之間,原因與結(jié)果之間的組合情況不可能出現(xiàn),為表明這些

特殊情況,在因果圖上用一些記號表明約束或限制條件。

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

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

二.實(shí)戰(zhàn)演習(xí)

1.某軟件規(guī)格說明書包含這樣的要求:第一列字符必須是A或B,第二列字符必須是一個(gè)數(shù)字,在

此情況下進(jìn)行文件的修改,但如果第一列字符不正確,則給出信息L;如果第二列字符不是數(shù)字,則給出信息M。

解答:

1)根據(jù)題意,原因和結(jié)果如下:

原因:

1——第一列字符是A;

2——第一列字符是B;

3——第二列字符是一數(shù)字。

結(jié)果:

21——修改文件;

22——給出信息L;

23——給出信息M。

2)其對應(yīng)的因果圖如下:

11為中間節(jié)點(diǎn);考慮到原因1和原因2不可能同時(shí)為1,因此在因果圖上施加E約束。

3)根據(jù)因果圖建立判定表。

表中8種情況的左面兩列情況中,原因①和原因②同時(shí)為1,這是不可能出現(xiàn)的,故應(yīng)排除這兩種情況。表的最下一欄給出了6種情況的測試用例,這是我們所需要的數(shù)據(jù)。

2.有一個(gè)處理單價(jià)為5角錢的飲料的自動售貨機(jī)軟件測試用例的設(shè)計(jì)。其規(guī)格說明如下:若投入5

角錢或1元錢的硬幣,押下〖橙汁〗或〖啤酒〗的按鈕,則相應(yīng)的飲料就送出來。若售貨機(jī)沒有零錢找,則一個(gè)顯示〖零錢找完〗的紅燈亮,這時(shí)在投入1元硬幣并押下按鈕后,飲料不送出來而且1元硬幣也退出來;若有零錢找,則顯示〖零錢找完〗的紅燈滅,在送出飲料的同時(shí)退還5角硬幣。

1)分析這一段說明,列出原因和結(jié)果

原因:

1.售貨機(jī)有零錢找

2.投入1元硬幣

3.投入5角硬幣

4.押下橙汁按鈕

5.押下啤酒按鈕

結(jié)果:

21.售貨機(jī)〖零錢找完〗燈亮

22.退還1元硬幣

23.退還5角硬幣

24.送出橙汁飲料

25.送出啤酒飲料

2)畫出因果圖,如圖所示。所有原因結(jié)點(diǎn)列在左邊,所有結(jié)果結(jié)點(diǎn)列在右邊。建立中間結(jié)點(diǎn),表示處

理的中間狀態(tài)。中間結(jié)點(diǎn):

11.投入1元硬幣且押下飲料按鈕

12.押下〖橙汁〗或〖啤酒〗的按鈕

13.應(yīng)當(dāng)找5角零錢并且售貨機(jī)有零錢找

14.錢已付清

3)轉(zhuǎn)換成判定表:

4)在判定表中,陰影部分表示因違反約束條件的不可能出現(xiàn)的情況,刪去。第16列與第32列因什

么動作也沒做,也刪去。最后可根據(jù)剩下的16列作為確定測試用例的依據(jù)。

判定表驅(qū)動分析方法

一.方法簡介

1.定義:判定表是分析和表達(dá)多邏輯條件下執(zhí)行不同操作的情況的工具。

2.判定表的優(yōu)點(diǎn)

能夠?qū)?fù)雜的問題按照各種可能的情況全部列舉出來,簡明并避免遺漏。因此,利用判定表能夠設(shè)計(jì)出完整的測試用例集合。

在一些數(shù)據(jù)處理問題當(dāng)中,某些操作的實(shí)施依賴于多個(gè)邏輯條件的組合,即:針對不同邏輯條件的組合值,分別執(zhí)行不同的操作。判定表很適合于處理這類問題。

3.“閱讀指南”判定表

4.判定表通常由四個(gè)部分組成如下圖所示。

1)條件樁(ConditionStub):列出了問題得所有條件。通常認(rèn)為列出的條件的次序無關(guān)緊要。

2)動作樁(ActionStub):列出了問題規(guī)定可能采取的操作。這些操作的排列順序沒有約束。

3)條件項(xiàng)(ConditionEntry):列出針對它左列條件的取值。在所有可能情況下的真假值。

4)動作項(xiàng)(ActionEntry):列出在條件項(xiàng)的各種取值情況下應(yīng)該采取的動作。

5.規(guī)則及規(guī)則合并

1)規(guī)則:任何一個(gè)條件組合的特定取值及其相應(yīng)要執(zhí)行的操作稱為規(guī)則。在判定表中貫穿條件項(xiàng)

和動作項(xiàng)的一列就是一條規(guī)則。顯然,判定表中列出多少組條件取值,也就有多少條規(guī)則,既條件項(xiàng)和動作項(xiàng)有多少列。

2)化簡:就是規(guī)則合并有兩條或多條規(guī)則具有相同的動作,并且其條件項(xiàng)之間存在著極為相似的

關(guān)系。

6.規(guī)則及規(guī)則合并舉例

1)如下圖左端,兩規(guī)則動作項(xiàng)一樣,條件項(xiàng)類似,在1、2條件項(xiàng)分別取Y、N時(shí),無論條件3

取何值,都執(zhí)行同一操作。即要執(zhí)行的動作與條件3無關(guān)。于是可合并?!埃北硎九c取值無關(guān)。

2)與上類似,下圖中,無關(guān)條件項(xiàng)“-”可包含其他條件項(xiàng)取值,具有相同動作的規(guī)則可合并。

4)填入動作項(xiàng)。等到初始判定表。

5)簡化.合并相似規(guī)則(相同動作)。

二.實(shí)戰(zhàn)演習(xí)

1.問題要求:”……對功率大于50馬力的機(jī)器、維修記錄不全或已運(yùn)行10年以上的機(jī)器,應(yīng)給予優(yōu)先的維修處理……”。這里假定,“維修記錄不全”和“優(yōu)先維修處理”均已在別處有更嚴(yán)格的定義。請建立判定表。

解答:

①確定規(guī)則的個(gè)數(shù):這里有3個(gè)條件,每個(gè)條件有兩個(gè)取值,故應(yīng)有2*2*2=8種規(guī)則。

②列出所有的條件茬和動作樁:

③填入條件項(xiàng)??蓮淖詈?行條件項(xiàng)開始,逐行向上填滿。如第三行是:YNYNYNYN,第二行是:YYNNYYNN等等。

④填入動作樁和動作頂。這樣便得到形如圖的初始判定表。

3.用決策表測試法測試以下程序:該程序有三個(gè)輸入變量month、day、year(month、day和year均為整數(shù)值,并且滿足:1≤month≤12和1≤day≤31),分別作為輸入日期的月份、日、年份,通過程序可以輸出該輸入日期在日歷上隔一天的日期。

例如,輸入為2004年11月29日,則該程序的輸出為2000年12月1日。

1)分析各種輸入情況,列出為輸入變量month、day、year劃分的有效等價(jià)類。

2)分析程序規(guī)格說明,結(jié)合以上等價(jià)類劃分的情況給出問題規(guī)定的可能采取的操作(即列出所有的動作樁)。

3)根據(jù)(1)和(2),畫出簡化后的決策表。

案例分析如下:

1)month變量的有效等價(jià)類:

M1:{month=4,6,9,11}

M2:{month=1,3,5,7,8,10}

M3:{month=12}

M4:{month=2}

2)day變量的有效等價(jià)類:

D1:{1≤day≤26}D2:{day=27}

D3:{day=28}D4:

{day=29}D5:{day=30}

D6:{day=31}

3)year變量的有效等價(jià)類:

Y1:{year是閏年}Y2:{year不是閏年}

4)考慮各種有效的輸入情況,程序中可能采取的操作有以下六種:

a1:day+2a2:day=2a3:day=1

a4:month+1a5:month=1a6:year+1

4.判定表在功能測試中的應(yīng)用

1)一些軟件的功能需求可用判定表表達(dá)得非常清楚,在檢驗(yàn)程序的功能時(shí)判定表也就成為一個(gè)不錯(cuò)的工具。如果一個(gè)軟件的規(guī)格說明指出:

I.當(dāng)條件1和條件2滿足,并且條件3和條件4不滿足,或者當(dāng)條件1、3和條件4滿足時(shí),要執(zhí)行操作1。

II.在任一個(gè)條件都不滿足時(shí),要執(zhí)行操作2。

III.在條件1不滿足,而條件4被滿足時(shí),要執(zhí)行操作3。根據(jù)規(guī)格說明得到如下判定表:

這里,判定表只給出了16種規(guī)則中的8種。事實(shí)上,除這8條以外的一些規(guī)則是指當(dāng)不

能滿足指定的條件,執(zhí)行3種操作時(shí),要執(zhí)行1個(gè)默許的操作。在沒必要時(shí),判定表通??陕匀ミ@些規(guī)則。但如果用判定表來設(shè)計(jì)測試用例,就必須列出這些默許規(guī)則(如下表)。

一.方法簡介

利用因果圖來設(shè)計(jì)測試用例時(shí),作為輸入條件的原因與輸出結(jié)果之間的因果關(guān)系,有時(shí)很難從軟件需求規(guī)格說明中得到。往往因果關(guān)系非常龐大,以至于據(jù)此因果圖而得到的測試用例數(shù)目多的驚人,給軟件測試帶來沉重的負(fù)擔(dān),為了有效地,合理地減少測試的工時(shí)與費(fèi)用,可利用正交實(shí)驗(yàn)設(shè)計(jì)方法進(jìn)行測試用例的設(shè)計(jì)。

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

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

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

把影響實(shí)驗(yàn)指標(biāo)的條件稱為因子.而影響實(shí)驗(yàn)因子的條件叫因子的狀態(tài).利用正交實(shí)驗(yàn)設(shè)計(jì)方法來設(shè)計(jì)測試用例時(shí),首先要根據(jù)被測試軟件的規(guī)格說明書找出影響其功能實(shí)現(xiàn)的操作對象和外部因素,把他們當(dāng)作因子,而把各個(gè)因子的取值當(dāng)作狀態(tài).對軟件需求規(guī)格說明中的功能要求進(jìn)行劃分,把整體的概要性的功能要求進(jìn)行層層分解與展開,分解成具體的有相

對獨(dú)立性的基本的功能要求.這樣就可以把被測試軟件中所有的因子都確定下來,并為確定個(gè)因子的權(quán)值提供參考的依據(jù).確定因子與狀態(tài)是設(shè)計(jì)測試用例的關(guān)鍵.因此要求盡可能全面的正確的確定取值,以確保測試用例的設(shè)計(jì)作到完整與有效。

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

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

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

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

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

二.實(shí)戰(zhàn)演習(xí)

暫無

功能圖分析方法

一.方法簡介

一個(gè)程序的功能說明通常由動態(tài)說明和靜態(tài)說明組成.動態(tài)說明描述了輸入數(shù)據(jù)的次序或轉(zhuǎn)移的次序.靜態(tài)說明描述了輸入條件與輸出條件之間的對應(yīng)關(guān)系.對于較復(fù)雜的程序,由于存在大量的組合情況,因此,僅用靜態(tài)說明組成的規(guī)格說明對于測試來說往往是不夠的.必須用動態(tài)說明來補(bǔ)充功能說明.功能圖方法是用功能圖FD形式化地表示程序的功能說明,并機(jī)械地生成功能圖的測試用例.功能圖模型由狀態(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)中輸入條件和

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論