測(cè)試用例設(shè)計(jì)方法

? ? ?測(cè)試用例的設(shè)計(jì)方法(全)

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

一.方法簡(jiǎn)介

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à)類都被覆蓋為止澜汤。


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

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)如果三條邊相等即滿足條件(7)秩命,則程序輸出為 " 等邊三角形 " 砍濒。

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

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

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

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

a?????b?????c?????????????覆蓋等價(jià)類號(hào)碼

3?????4?????5???????????? (1)--(7)

4?????4?????5???????????? (1)--(7)杠河,(8)

4?????5?????5???????????? (1)--(7),(9)?

5?????4?????5???????????? (1)--(7)浇辜,(10)

4?????4?????4???????????? (1)--(7)券敌,(11)

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

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

1)劃分等價(jià)類并編號(hào),下表等價(jià)類劃分的結(jié)果

輸入等價(jià)類有效等價(jià)類無效等價(jià)類

日期的類型及長(zhǎng)度①6位數(shù)字字符②有非數(shù)字字符

③少于6位數(shù)字字符

④多于6位數(shù)字字符

年份范圍⑤在1990~2049之間⑥小于1990

⑦大于2049

月份范圍⑧在01~12之間⑨等于00

⑩大于12

2)設(shè)計(jì)測(cè)試用例测蹲,以便覆蓋所有的有效等價(jià)類在表中列出了3個(gè)有效等價(jià)類,編號(hào)分別為①鬼吵、⑤扣甲、⑧,設(shè)計(jì)的測(cè)試用例如下:

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

200211????? 輸入有效?????①齿椅、⑤琉挖、⑧

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

測(cè)試數(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ù)都會(huì)產(chǎn)生一個(gè)輸出粥帚,指明相應(yīng)的變量超出取值范圍胰耗,比如 "month 的值不在 1-12 范圍當(dāng)中 " 。顯然還存在著大量的 year 芒涡、 month 柴灯、 day 的無效組合, NextDate 函數(shù)將這些組合作統(tǒng)一的輸出: " 無效輸入日期 " 费尽。其無效等價(jià)類為:M2={月份:月份<1}

M3={月份:月份>12}

D2={日期:日期<1}

D3={日期:日期>31}

Y2={年:年<1812}

Y3={年:年>2012}

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

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

6??????15???????1912?????????? 1912年6月16日

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

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


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

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

WR1????? 6?????15??? 1912????? 1912年6月16日

WR2???? -1????15??? 1912???? ?月份不在1~12中

WR3???? 13????15??? 1912????? 月份不在1~12中

WR4????? 6?????-1??? 1912????? 日期不在1~31中

WR5????? 6?????32??? 1912????? 日期不在1~31中

WR6????? 6?????15??? 1811???? ?年份不在1812~2012中

WR7????? 6?????15??? 2013????? 年份不在1812~2012中

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

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

SR1?????? -1?????15?????? 1912?????月份不在1~12中

SR2???????6????? -1???????1912????? 日期不在1~31中

SR3???????6????? 15??????1811????? 年份不在1812~2012中

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

SR5???????6????? -1???????1811????? 兩個(gè)無效一個(gè)有效

SR6????? ?-1?????15?????? 1811????? 兩個(gè)無效一個(gè)有效

SR7?????? -1?????-1???????1811????? 三個(gè)無效


4.傭金問題等價(jià)類測(cè)試用例,它是根據(jù)傭金函數(shù)的輸出值域定義等價(jià)類旱幼,來改進(jìn)測(cè)試用例集合查描。

輸出銷售額≤1000元???? 傭金10%

1000<銷售額≤1800????傭金=100+(銷售額-1000)*15%

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

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

1??????????????5?????????? ?5??????????????5???????????????? 500?????? ?50

2?????????????15??????????15?????????????15????????????????1500?????? 175

3?????????????25??????????25?????????????25????????????????2500?????? 360

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

邊界值分析方法:

一.方法簡(jiǎn)介

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

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

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

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

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

長(zhǎng)期的測(cè)試工作經(jīng)驗(yàn)告訴我們酸舍,大量的錯(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ù)。

4.常見的邊界值

1)對(duì)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ì)測(cè)試用例。

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

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

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

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


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

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

a、輸入 (i)<0 和 (ii)>=0

b界逛、輸出 (a)>=0 和 (b) Error

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

a昆稿、輸入4,輸出2息拜。對(duì)應(yīng)于 (ii) 和(a) 溉潭。

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

3)邊界值分析:

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

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

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

c蹭秋、輸入0

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

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


4)通常情況下仁讨,軟件測(cè)試所包含的邊界檢驗(yàn)有幾種類型:數(shù)字、字符实昨、位置洞豁、重量、大小、速度丈挟、方位刁卜、尺寸、空間等曙咽。

5)相應(yīng)地蛔趴,以上類型的邊界值應(yīng)該在:最大/最小、首位/末位例朱、上/下孝情、最快/最慢、最高/最低洒嗤、? 最短/最長(zhǎng)箫荡、 空/滿等情況下。

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

項(xiàng)邊界值測(cè)試用例的設(shè)計(jì)思路

字符起始-1個(gè)字符/結(jié)束+1個(gè)字符假設(shè)一個(gè)文本輸入?yún)^(qū)域允許輸入1個(gè)到255個(gè) 字符烁竭,輸入1個(gè)和255個(gè)字符作為有效等價(jià)類菲茬;輸入0個(gè)和256個(gè)字符作為無效等價(jià)類吉挣,這幾個(gè)數(shù)值都屬于邊界條件值派撕。

數(shù)值最小值-1/最大值+1假設(shè)某軟件的數(shù)據(jù)輸入域要求輸入5位的數(shù)據(jù)值,可以使用10000作為最小值睬魂、99999作為最大值终吼;然后使用剛好小于5位和大于5位的 數(shù)值來作為邊界條件。

空間小于空余空間一點(diǎn)/大于滿空間一點(diǎn)例如在用U盤存儲(chǔ)數(shù)據(jù)時(shí)氯哮,使用比剩余磁盤空間大一點(diǎn)(幾KB)的文件作為邊界條件际跪。

7)內(nèi)部邊界值分析:

在多數(shù)情況下,邊界值條件是基于應(yīng)用程序的功能設(shè)計(jì)而需要考慮的因素喉钢,可以從軟件的規(guī)格說明或常識(shí)中得到姆打,也是最終用戶可以很容易發(fā)現(xiàn)問題的。然而肠虽,在測(cè)試用例設(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)算都有一定的范圍限制。

項(xiàng)范圍或值

位(bit)0或者1

字節(jié)(byte)0——225

字(word)0~65535(單字)或 0~4294967295(雙字)

千(K)1024

兆(M)1048576

吉(G)1073741824

b)字符的邊界值檢驗(yàn):在計(jì)算機(jī)軟件中找颓,字符也是很重要的表示元素合愈,其中ASCII和Unicode是常見的編碼方式。下表中列出了一些常用字符對(duì)應(yīng)的ASCII碼值。

字符ASCII碼值字符ASCII碼值

空 (null)0A65

空格 (space)32a97

斜杠 ( / )47Z90

048z122

冒號(hào) ( : )58單引號(hào) ( ‘ )96

@64??

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


6.基于邊界值分析方法選擇測(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í)戰(zhàn)演習(xí)1.現(xiàn)有一個(gè)學(xué)生標(biāo)準(zhǔn)化考試批閱試卷,產(chǎn)生成績(jī)報(bào)告的程序。其規(guī)格說明如下:程序的輸入文件由一些有80個(gè)字符的記錄組成,如右圖所示皱炉,所有記錄分為3組:

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

②試卷各題標(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,…題的答案梳猪。

③每個(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é)生乙的答卷記錄。

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

⑤程序的輸出有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è)試用例表灾前。

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

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

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

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



因果圖方法

一.???方法簡(jiǎn)介

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

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

等價(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ì)斥黑,這就需要利用因果圖(邏輯模型)揖盘。

3.因果圖介紹

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)?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缀雳《上“與”也可有任意個(gè)輸入。

2)??? 約束

輸入狀態(tài)相互之間還可能存在某些依賴關(guān)系肥印,稱為約束识椰。例如, 某些輸入條件本身不可能同時(shí)出現(xiàn)。輸出狀態(tài)之間也往往存在約束深碱。在因果圖中,用特定的符號(hào)標(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ì)測(cè)試用例的步驟:

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

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

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

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

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

二.?實(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)?其對(duì)應(yīng)的因果圖如下:

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

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


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

2.有一個(gè)處理單價(jià)為5角錢的飲料的自動(dòng)售貨機(jī)軟件測(cè)試用例的設(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列因什么動(dòng)作也沒做,也刪去期贫。最后可根據(jù)剩下的16列作為確定測(cè)試用例的依據(jù)跟匆。


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

一.??? 方法簡(jiǎn)介

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

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

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

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

3.“閱讀指南”判定表

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

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

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

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

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

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

1)規(guī)則:任何一個(gè)條件組合的特定取值及其相應(yīng)要執(zhí)行的操作稱為規(guī)則寂嘉。在判定表中貫穿條件項(xiàng)和動(dòng)作項(xiàng)的一列就是一條規(guī)則。顯然,判定表中列出多少組條件取值,也就有多少條規(guī)則,既條件項(xiàng)和動(dòng)作項(xiàng)有多少列枫绅。

2)化簡(jiǎn):就是規(guī)則合并有兩條或多條規(guī)則具有相同的動(dòng)作泉孩,并且其條件項(xiàng)之間存在著極為相似的關(guān)系。

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

1)如下圖左端并淋,兩規(guī)則動(dòng)作項(xiàng)一樣寓搬,條件項(xiàng)類似,在1县耽、2條件項(xiàng)分別取Y句喷、N時(shí),無論條件3取何值兔毙,都執(zhí)行同一操作唾琼。即要執(zhí)行的動(dòng)作與條件3無關(guān)。于是可合并澎剥∥荩“-”表示與取值無關(guān)。

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

3)化簡(jiǎn)后的讀書指南判定表

?1234

你覺得疲倦嗎倡蝙?--YN

你對(duì)內(nèi)容感興趣嗎?YYNN

書中內(nèi)容使你胡涂嗎绞佩?YN--

?

請(qǐng)回到本章開頭重讀x???

繼續(xù)讀下去?X??

跳到下一章去讀???x

停止閱讀寺鸥,請(qǐng)休息??x?

7.判定表的建立步驟:(根據(jù)軟件規(guī)格說明)

1)確定規(guī)則的個(gè)數(shù).假如有n個(gè)條件。每個(gè)條件有兩個(gè)取值(0,1),故有2n種規(guī)則征炼。

2)列出所有的條件樁和動(dòng)作樁析既。

3)填入條件項(xiàng)。

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

5)簡(jiǎn)化.合并相似規(guī)則(相同動(dòng)作)拂玻。

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

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

解答:

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

②列出所有的條件茬和動(dòng)作樁:

③填入條件項(xiàng)填帽≈肓埽可從最后1行條件項(xiàng)開始,逐行向上填滿篡腌。如第三行是: Y N Y N Y N Y N褐荷,第二行是: Y Y N N Y Y N N等等。?

④填入動(dòng)作樁和動(dòng)作頂嘹悼。這樣便得到形如圖的初始判定表叛甫。

?12345678

功率大于50馬力嗎?YYYYNNNN

維修記錄不全嗎杨伙?YYNNYYNN

運(yùn)行超過10年嗎其监?YNYNYNYN

動(dòng)

進(jìn)行優(yōu)先處理xxX?X?X?

作其他處理???X?x?x

初始判定表

⑤化簡(jiǎn)。合并相似規(guī)則后得到圖限匣。

?12345

功率大于50馬力嗎抖苦?YYYNN

維修記錄不全嗎?YNN--

運(yùn)行超過10年嗎膛腐?-YNYN

動(dòng)

進(jìn)行優(yōu)先處理xx?X?

作其他處理??x?x

2.NextData函數(shù)的精簡(jiǎn)決策表

M1={月份睛约, 每月有30天}

M2={月份, 每月有31天}

M3={月份哲身,2月}???????????????? 有29=512條規(guī)則

D1={日期辩涝,1~28}???????????????? 12月末31日和其它31

D2={日期,29}??????????????????? 日月份的31日處理不同

D3={日期勘天,30}??????????????????? 平年2月28日處理不同

D4={日期怔揩,31}??????????????????? 于2月27日

Y1 ={年:年是閏年}

Y2 ={年:年不是閏年}

改進(jìn)為

M1={月份: 每月有30天}

M2={月份: 每月有31天,12月除外}

M4={月份:12月}

M3={月份:2月}

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

D2={日期:28}

D3={日期:29}

D4={日期:30}

D5={日期:31}

Y1 ={年:年是閏年}

Y2 ={年:年不是閏年}

輸入變量間存在大量邏輯關(guān)系的NextData決策表


3.?用決策表測(cè)試法測(cè)試以下程序:該程序有三個(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ī)定的可能采取的操作(即列出所有的動(dòng)作樁)拴测。

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

案例分析如下:

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+2?????????????????????? a2: day=2??????????????????? a3: day=1?

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

4.?判定表在功能測(cè)試中的應(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ì)測(cè)試用例,就必須列出這些默許規(guī)則(如下表)澜公。

?規(guī)則5規(guī)則6規(guī)則7規(guī)則8

條件1-NYY

條件2-YYN

條件3YNNN

條件4NNY-

默許操作xxxx

默許的規(guī)則

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

I.??優(yōu)點(diǎn):它能把復(fù)雜的問題按各種可能的情況一一列舉出來姆另,簡(jiǎn)明而易于理解,也可避免遺漏。

II. 缺點(diǎn):不能表達(dá)重復(fù)執(zhí)行的動(dòng)作蜕青,例如循環(huán)結(jié)構(gòu)苟蹈。

3)B. Beizer 指出了適合使用判定表設(shè)計(jì)測(cè)試用例的條件:

①規(guī)格說明以判定表形式給出,或很容易轉(zhuǎn)換成判定表糊渊。

②條件的排列順序不會(huì)也不影響執(zhí)行哪些操作右核。

③規(guī)則的排列順序不會(huì)也不影響執(zhí)行哪些操作。

④每當(dāng)某一規(guī)則的條件已經(jīng)滿足,并確定要執(zhí)行的操作后,不必檢驗(yàn)別的規(guī)則渺绒。

⑤如果某一規(guī)則得到滿足要執(zhí)行多個(gè)操作,這些操作的執(zhí)行順序無關(guān)緊要贺喝。

B. Beizer提出這5個(gè)必要條件的目的是為了使操作的執(zhí)行完全依賴于條件的組合。其實(shí)對(duì)于某些不滿足這幾條的判定表宗兼,同樣可以借以設(shè)計(jì)測(cè)試用例躏鱼,只不過尚需增加其它的測(cè)試用例罷了。



正交實(shí)驗(yàn)設(shè)計(jì)方法

一.方法簡(jiǎn)介

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

正交實(shí)驗(yàn)設(shè)計(jì)方法:依據(jù)Galois理論,從大量的(實(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è)試用例具有一定的覆蓋率牧牢。

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

??? 暫無





功能圖分析方法

一.方法簡(jiǎn)介

一個(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)不同,邏輯覆蓋可分為:語(yǔ)句覆蓋,判定覆蓋,判定-條件覆蓋,條件組合覆蓋及路徑覆蓋.下面我們指的邏輯覆蓋和路徑是功能或系統(tǒng)水平上的,以區(qū)別與白盒測(cè)試中的程序內(nèi)部的.)

1.功能圖

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

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)造樹.

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

????? 暫無




場(chǎng)景設(shè)計(jì)方法

一.方法簡(jiǎn)介

現(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í)行犀斋。

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

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

1. 例子描述

下圖所示是ATM例子的流程示意圖。



2.場(chǎng)景設(shè)計(jì):下表所示是生成的場(chǎng)景啡氢。

表3-8 場(chǎng)景設(shè)計(jì)

場(chǎng)景1——成功提款基本流?

場(chǎng)景2——ATM內(nèi)沒有現(xiàn)金基本流備選流2

場(chǎng)景3——ATM內(nèi)現(xiàn)金不足基本流備選流3

場(chǎng)景4——PIN有誤(還有輸入機(jī)會(huì))基本流備選流4

場(chǎng)景5——PIN有誤(不再有輸入機(jī)會(huì))基本流備選流4

場(chǎng)景6——賬戶不存在/賬戶類型有誤基本流備選流5

場(chǎng)景7——賬戶余額不足基本流備選流6

注:為方便起見状囱,備選流3和6(場(chǎng)景3和7)內(nèi)的循環(huán)以及循環(huán)組合未納入上表。

3.用例設(shè)計(jì)

對(duì)于這7個(gè)場(chǎng)景中的每一個(gè)場(chǎng)景都需要確定測(cè)試用例倘是⊥ぜ希可以采用矩陣或決策表來確定和管理測(cè)試用例。下面顯示了一種通用格式搀崭,其中各行代表各個(gè)測(cè)試用例叨粘,而各列則代表測(cè)試用例的信息。本示例中瘤睹,對(duì)于每個(gè)測(cè)試用例升敲,存在一個(gè)測(cè)試用例ID、條件(或說明)默蚌、測(cè)試用例中涉及的所有數(shù)據(jù)元素(作為輸入或已經(jīng)存在于數(shù)據(jù)庫(kù)中)以及預(yù)期結(jié)果冻晤。

表3-9 測(cè)試用例表


TC(測(cè)試用例)ID號(hào)場(chǎng)景/條件PIN賬號(hào)輸入(或選擇)的金額賬面

金額

ATM內(nèi)的金額預(yù)期結(jié)果

CW1場(chǎng)景1:成功提款VVVVV成功提款

CW2場(chǎng)景2:ATM內(nèi)沒有現(xiàn)金VVVVI提款選項(xiàng)不可用,用例結(jié)束

CW3場(chǎng)景3:ATM內(nèi)現(xiàn)金不足VVVVI警告消息绸吸,返回基本流步驟6鼻弧,輸入金額

CW4場(chǎng)景4:PIN有誤(還有不止一次輸入機(jī)會(huì))IVn/aVV警告消息,返回基本流步驟 4锦茁,輸入 PIN

CW5場(chǎng)景4:PIN有誤(還有一次輸入機(jī)會(huì))I


Vn/aVV警告消息攘轩,返回基本流步驟 4,輸入 PIN

CW6場(chǎng)景4:PIN有誤(不再有輸入機(jī)會(huì))IVn/aVV警告消息码俩,卡予保留度帮,用例結(jié)束


4.數(shù)據(jù)設(shè)計(jì)

一旦確定了所有的測(cè)試用例,則應(yīng)對(duì)這些用例進(jìn)行復(fù)審和驗(yàn)證以確保其準(zhǔn)確且適度稿存,并取消多余或等效的測(cè)試用例笨篷。

測(cè)試用例一經(jīng)認(rèn)可,就可以確定實(shí)際數(shù)據(jù)值(在測(cè)試用例實(shí)施矩陣中)并且設(shè)定測(cè)試數(shù)據(jù)瓣履,如表3-10所示率翅。

表3-10???? 測(cè)試用例表

TC(測(cè)試用例)ID號(hào)場(chǎng)景/條件PIN賬號(hào)輸入(或選擇)的金額

(元)

賬面

金額(元)

ATM內(nèi)的金額(元)預(yù)期結(jié)果

CW1場(chǎng)景1:成功提款4987809-49850.00500.002 000成功提款。賬戶余額被更新為450.00

CW2場(chǎng)景2:ATM內(nèi)沒有現(xiàn)金4987809-498100.00500.000.00提款選項(xiàng)不可用袖迎,用例結(jié)束

CW3場(chǎng)景3:ATM內(nèi)現(xiàn)金不足4987809-498100.00500.0070.00警告消息冕臭,返回基本流步驟6腺晾,輸入金額

CW4場(chǎng)景4:PIN有誤(還有不止一次輸入機(jī)會(huì))4978809-498n/a500.002 000警告消息,返回基本流步驟4辜贵,輸入PIN

CW5場(chǎng)景4:PIN有誤(還有一次輸入機(jī)會(huì))4978809-498n/a500.002 000警告消息悯蝉,返回基本流步驟4,輸入PIN

CW6場(chǎng)景4:PIN有誤(不再有輸入機(jī)會(huì))4978809-498n/a500.002 000警告消息托慨,卡予保留鼻由,用例結(jié)束


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

一.??? 方法簡(jiǎn)介

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

2.???????? 錯(cuò)誤推測(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è)試用例:

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

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

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

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

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

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

I.?????????輸入的線性表為空表卢佣;

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

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

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

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

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

??? 暫無



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

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

1)在任何情況下都必須使用邊界值分析方法仇参,經(jīng)驗(yàn)表明用這種方法設(shè)計(jì)出測(cè)試用例發(fā)現(xiàn)程序錯(cuò)誤的能力最強(qiáng)嘹叫。?【文章來源:文斯測(cè)試技術(shù)研究中心http://blog.csdn.net/vincetest

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ì)步驟【文章來源:文斯測(cè)試技術(shù)研究中心http://blog.csdn.net/vincetest

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

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

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

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

5)異常測(cè)試用例被啼;【文章來源:文斯測(cè)試技術(shù)研究中心http://blog.csdn.net/vincetest

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)系作者
  • 序言:七十年代末命浴,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子贱除,更是在濱河造成了極大的恐慌生闲,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,406評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件月幌,死亡現(xiàn)場(chǎng)離奇詭異碍讯,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)扯躺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門捉兴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人录语,你說我怎么就攤上這事倍啥。” “怎么了澎埠?”我有些...
    開封第一講書人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵虽缕,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我蒲稳,道長(zhǎng)氮趋,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任弟塞,我火速辦了婚禮凭峡,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘决记。我一直安慰自己摧冀,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開白布系宫。 她就那樣靜靜地躺著索昂,像睡著了一般。 火紅的嫁衣襯著肌膚如雪扩借。 梳的紋絲不亂的頭發(fā)上椒惨,一...
    開封第一講書人閱讀 51,301評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音潮罪,去河邊找鬼康谆。 笑死领斥,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的沃暗。 我是一名探鬼主播月洛,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼孽锥!你這毒婦竟也來了嚼黔?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤惜辑,失蹤者是張志新(化名)和其女友劉穎唬涧,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體盛撑,經(jīng)...
    沈念sama閱讀 45,443評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡碎节,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了撵彻。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片钓株。...
    茶點(diǎn)故事閱讀 39,795評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖陌僵,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情创坞,我是刑警寧澤碗短,帶...
    沈念sama閱讀 35,501評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站题涨,受9級(jí)特大地震影響偎谁,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜纲堵,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評(píng)論 3 328
  • 文/蒙蒙 一巡雨、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧席函,春花似錦铐望、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至营曼,卻和暖如春乒验,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蒂阱。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工锻全, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留狂塘,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓鳄厌,卻偏偏與公主長(zhǎng)得像荞胡,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子部翘,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354

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