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

下載本文檔

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

文檔簡(jiǎn)介

1、測(cè)試用例的設(shè)計(jì)(shj)方法(全)等價(jià)類(lèi)劃分(hu fn)方法: 一.方法(fngf)簡(jiǎn)介1.定義 是把所有可能的輸入數(shù)據(jù),即程序的輸入域劃分成若干部分(子集),然后從每一個(gè)子集中選取少數(shù)具有代表性的數(shù)據(jù)作為測(cè)試用例。該方法是一種重要的,常用的黑盒測(cè)試用例設(shè)計(jì)方法。 2.劃分等價(jià)類(lèi): 等價(jià)類(lèi)是指某個(gè)輸入域的子集合。在該子集合中,各個(gè)輸入數(shù)據(jù)對(duì)于揭露程序中的錯(cuò)誤都是等效的,并合理地假定:測(cè)試某等價(jià)類(lèi)的代表值就等于對(duì)這一類(lèi)其它值的測(cè)試,因此,可以把全部輸入數(shù)據(jù)合理劃分為若干等價(jià)類(lèi),在每一個(gè)等價(jià)類(lèi)中取一個(gè)數(shù)據(jù)作為測(cè)試的輸入條件就可以用少量代表性的測(cè)試數(shù)據(jù)取得較好的測(cè)試結(jié)果。等價(jià)類(lèi)劃分可有兩種不同的情

2、況:有效等價(jià)類(lèi)和無(wú)效等價(jià)類(lèi)。 1)有效等價(jià)類(lèi) 是指對(duì)于程序的規(guī)格說(shuō)明來(lái)說(shuō)是合理的、有意義的輸入數(shù)據(jù)構(gòu)成的集合。利用有效等價(jià)類(lèi)可檢驗(yàn)程序是否實(shí)現(xiàn)了規(guī)格說(shuō)明中所規(guī)定的功能和性能。 2)無(wú)效等價(jià)類(lèi) 與有效等價(jià)類(lèi)的定義恰巧相反。無(wú)效等價(jià)類(lèi)指對(duì)程序的規(guī)格說(shuō)明是不合理的或無(wú)意義的輸入數(shù)據(jù)所構(gòu)成的集合。對(duì)于具體的問(wèn)題,無(wú)效等價(jià)類(lèi)至少應(yīng)有一個(gè),也可能有多個(gè)。 設(shè)計(jì)測(cè)試用例時(shí),要同時(shí)考慮這兩種等價(jià)類(lèi)。因?yàn)檐浖粌H要能接收合理的數(shù)據(jù),也要能經(jīng)受意外的考驗(yàn),這樣的測(cè)試才能確保軟件具有更高的可靠性。 3.劃分等價(jià)類(lèi)的標(biāo)準(zhǔn): 1)完備測(cè)試、避免冗余; 2)劃分等價(jià)類(lèi)重要的是:集合的劃分,劃分為互不相交的一組子集,而子集

3、的并是整個(gè)集合; 3)并是整個(gè)集合:完備性; 4)子集互不相交:保證一種形式的無(wú)冗余性; 5)同一類(lèi)中標(biāo)識(shí)(選擇)一個(gè)測(cè)試用例,同一等價(jià)類(lèi)中,往往處理相同,相同處理映射到相同的執(zhí)行路徑。4.劃分等價(jià)類(lèi)的方法 1)在輸入條件規(guī)定了取值范圍或值的個(gè)數(shù)的情況下,則可以確立一個(gè)有效等價(jià)類(lèi)和兩個(gè)無(wú)效等價(jià)類(lèi)。如:輸入值是學(xué)生成績(jī),范圍是0100;2)在輸入條件規(guī)定了輸入值的集合或者規(guī)定了必須如何的條件的情況下,可確立一個(gè)有效等價(jià)類(lèi)和一個(gè)無(wú)效等價(jià)類(lèi); 3)在輸入條件是一個(gè)布爾量的情況下,可確定一個(gè)有效等價(jià)類(lèi)和一個(gè)無(wú)效等價(jià)類(lèi)。 4)在規(guī)定了輸入數(shù)據(jù)的一組值(假定n個(gè)),并且程序要對(duì)每一個(gè)輸入值分別處理的情況下

4、,可確立n個(gè)有效等價(jià)類(lèi)和一個(gè)無(wú)效等價(jià)類(lèi)。 例:輸入條件說(shuō)明學(xué)歷可為:專(zhuān)科、本科、碩士、博士四種(s zhn)之一,則分別取這四種這四個(gè)值作為四個(gè)有效等價(jià)類(lèi),另外把四種學(xué)歷之外的任何學(xué)歷作為無(wú)效等價(jià)類(lèi)。 5)在規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則的情況下,可確立一個(gè)有效等價(jià)類(lèi)(符合規(guī)則)和若干個(gè)無(wú)效等價(jià)類(lèi)(從不同角度違反規(guī)則); 6)在確知已劃分的等價(jià)類(lèi)中各元素在程序處理中的方式不同的情況下,則應(yīng)再將該等價(jià)類(lèi)進(jìn)一步的劃分為更小的等價(jià)類(lèi)。 5.設(shè)計(jì)測(cè)試用例 在確立了等價(jià)類(lèi)后,可建立等價(jià)類(lèi)表,列出所有劃分出的等價(jià)類(lèi)輸入條件:有效等價(jià)類(lèi)、無(wú)效等價(jià)類(lèi),然后從劃分出的等價(jià)類(lèi)中按以下三個(gè)原則設(shè)計(jì)測(cè)試用例: 1)為每

5、一個(gè)等價(jià)類(lèi)規(guī)定一個(gè)唯一的編號(hào); 2)設(shè)計(jì)一個(gè)新的測(cè)試用例,使其盡可能多地覆蓋尚未被覆蓋地有效等價(jià)類(lèi),重復(fù)這一步,直到所有的有效等價(jià)類(lèi)都被覆蓋為止; 3)設(shè)計(jì)一個(gè)新的測(cè)試用例,使其僅覆蓋一個(gè)尚未被覆蓋的無(wú)效等價(jià)類(lèi),重復(fù)這一步,直到所有的無(wú)效等價(jià)類(lèi)都被覆蓋為止。 二.實(shí)戰(zhàn)演習(xí)1.某程序規(guī)定:輸入三個(gè)整數(shù) a 、 b 、 c 分別作為(zuwi)三邊的邊長(zhǎng)構(gòu)成三角形。通過(guò)程序判定所構(gòu)成的三角形的類(lèi)型,當(dāng)此三角形為一般三角形、等腰三角形及等邊三角形時(shí),分別作計(jì)算 。用等價(jià)類(lèi)劃分方法為該程序進(jìn)行測(cè)試用例設(shè)計(jì)。(三角形問(wèn)題的復(fù)雜之處在于輸入與輸出之間的關(guān)系比較復(fù)雜。) 分析題目中給出和隱含的對(duì)輸入條件的要

6、求: (1)整數(shù) (2)三個(gè)數(shù) (3)非零數(shù) (4)正數(shù) (5)兩邊之和大于第三邊 (6)等腰 (7)等邊 如果 a 、 b 、 c 滿(mǎn)足條件( 1 ) ( 4 ),則輸出下列四種情況之一: 1)如果不滿(mǎn)足條件(5),則程序輸出為 非三角形 。 2)如果三條邊相等即滿(mǎn)足條件(7),則程序輸出為 等邊三角形 。 3)如果只有兩條邊相等、即滿(mǎn)足條件(6),則程序輸出為 等腰三角形 。 4)如果三條邊都不相等,則程序輸出為 一般三角形 。 列出等價(jià)類(lèi)表并編號(hào)覆蓋有效等價(jià)(dngji)類(lèi)的測(cè)試用例: a b c 覆蓋等價(jià)類(lèi)號(hào)碼 3 4 5 (1)-(7) 4 4 5 (1)-(7),(8) 4 5 5

7、 (1)-(7),(9) 5 4 5 (1)-(7),(10) 4 4 4 (1)-(7),(11) 覆蓋無(wú)效等價(jià)類(lèi)的測(cè)試用例:2.設(shè)有一個(gè)檔案管理系統(tǒng),要求用戶(hù)輸入以年月表示(biosh)的日期。假設(shè)日期限定在1990年1月2049年12月,并規(guī)定日期由6位數(shù)字字符組成,前4位表示年,后2位表示月?,F(xiàn)用等價(jià)類(lèi)劃分法設(shè)計(jì)測(cè)試用例,來(lái)測(cè)試程序的日期檢查功能。 1)劃分等價(jià)類(lèi)并編號(hào),下表等價(jià)類(lèi)劃分的結(jié)果輸入等價(jià)類(lèi)有效等價(jià)類(lèi)無(wú)效等價(jià)類(lèi)日期的類(lèi)型及長(zhǎng)度6位數(shù)字字符有非數(shù)字字符少于6位數(shù)字字符多于6位數(shù)字字符年份范圍在19902049之間小于1990大于2049月份范圍在0112之間等于00大于122)

8、設(shè)計(jì)測(cè)試用例,以便(ybin)覆蓋所有的有效等價(jià)類(lèi)在表中列出了3個(gè)有效等價(jià)類(lèi),編號(hào)分別為、,設(shè)計(jì)的測(cè)試用例如下: 測(cè)試數(shù)據(jù) 期望結(jié)果 覆蓋(fgi)的有效等價(jià)類(lèi) 200211 輸入有效 、 3)為每一個(gè)無(wú)效等價(jià)類(lèi)設(shè)計(jì)一個(gè)測(cè)試用例,設(shè)計(jì)結(jié)果如下: 測(cè)試數(shù)據(jù) 期望結(jié)果 覆蓋的無(wú)效等價(jià)類(lèi) 95June 無(wú)效輸入 20036 無(wú)效輸入 2001006無(wú)效輸入 198912 無(wú)效輸入 200401 無(wú)效輸入 200100 無(wú)效輸入 200113 無(wú)效輸入 3.NextDate 函數(shù)包含三個(gè)變量:month 、 day 和 year ,函數(shù)的輸出為輸入日期后一天的日期。 例如,輸入為 2006年3月 7日

9、,則函數(shù)的輸出為 2006年3月8日 。要求輸入變量 month 、 day 和 year 均為整數(shù)值,并且滿(mǎn)足下列條件: 1month12 1day31 1920year2050 1)有效等價(jià)類(lèi)為: 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 的無(wú)效組合, NextDate 函數(shù)將這些組合作統(tǒng)一的輸出: 無(wú)效輸入日期 。其無(wú)效等價(jià)類(lèi)為: M2月份:月份12

10、 D2日期:日期31 Y2年:年2012 弱一般等價(jià)類(lèi)測(cè)試用例 月份 日期 年 預(yù)期輸出 6 15 1912 1912年6月16日 強(qiáng)一般等價(jià)類(lèi)測(cè)試用例同弱一般等價(jià)類(lèi)測(cè)試用例 注:弱-有單缺陷假設(shè);健壯-考慮了無(wú)效值 (一)弱健壯等價(jià)類(lèi)測(cè)試 用例ID 月份 日期 年 預(yù)期輸出 WR1 6 15 1912 1912年6月16日 WR2 -1 15 1912 月份不在112中 WR3 13 15 1912 月份不在112中 WR4 6 -1 1912 日期不在131中 WR5 6 32 1912 日期不在131中 WR6 6 15 1811 年份不在18122012中 WR7 6 15 2013

11、年份不在18122012中 (二)強(qiáng)健壯等價(jià)類(lèi)測(cè)試 用例ID 月份 日期 年 預(yù)期輸出 SR1 -1 15 1912 月份不在112中 SR2 6 -1 1912 日期不在131中 SR3 6 15 1811 年份不在18122012中 SR4 -1 -11912 兩個(gè)無(wú)效一個(gè)有效 SR5 6 -1 1811 兩個(gè)無(wú)效一個(gè)有效 SR6 -1 15 1811 兩個(gè)無(wú)效一個(gè)有效 SR7 -1 -11811 三個(gè)無(wú)效 4.傭金問(wèn)題等價(jià)類(lèi)測(cè)試用例,它是根據(jù)傭金函數(shù)的輸出值域定義等價(jià)類(lèi),來(lái)改進(jìn)測(cè)試用例集合。輸出銷(xiāo)售額1000元 傭金1010001800 傭金=220+(銷(xiāo)售額-1800)*20%測(cè)試用例

12、 槍機(jī)(45) 槍托(30) 槍管(25) 銷(xiāo)售額 傭金 1 5 5 5 500 50 2 15 15 15 1500 175 3 25 25 25 2500 360根據(jù)輸出域選擇(xunz)輸入值,使落在輸出域等價(jià)類(lèi)內(nèi),可以結(jié)合弱健壯測(cè)試用例結(jié)合。邊界值分析方法:一.方法(fngf)簡(jiǎn)介1.定義:邊界值分析法就是對(duì)輸入或輸出的邊界值進(jìn)行測(cè)試的一種黑盒測(cè)試方法。通常邊界值分析法是作為(zuwi)對(duì)等價(jià)類(lèi)劃分法的補(bǔ)充,這種情況下,其測(cè)試用例來(lái)自等價(jià)類(lèi)的邊界。 2.與等價(jià)劃分的區(qū)別 1)邊界值分析不是從某等價(jià)類(lèi)中隨便挑一個(gè)作為代表,而是使這個(gè)等價(jià)類(lèi)的每個(gè)邊界都要作為測(cè)試條件。 2)邊界值分析不僅考

13、慮輸入條件,還要考慮輸出空間產(chǎn)生(chnshng)的測(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à)類(lèi)的邊界,就是應(yīng)著重測(cè)試的邊界情況。應(yīng)當(dāng)選取正好等于,剛剛大于或剛剛小于邊界的值作為測(cè)試數(shù)據(jù),而不是選取等價(jià)類(lèi)中的典型值或任意值作為測(cè)試數(shù)據(jù)。 4.常見(jiàn)的邊界值 1)對(duì)16-bit 的整數(shù)而言 32767 和 -32768 是邊界 2)屏幕上光標(biāo)在最左上、最右下位置 3)報(bào)表的第一

14、行和最后一行 4)數(shù)組元素的第一個(gè)和最后一個(gè) 5)循環(huán)的第 0 次、第 1 次和倒數(shù)第 2 次、最后一次5.邊界值分析 1)邊界值分析使用與等價(jià)類(lèi)劃分法相同的劃分,只是邊界值分析假定錯(cuò)誤更多地存在于劃分的邊界上,因此在等價(jià)類(lèi)的邊界上以及兩側(cè)的情況設(shè)計(jì)測(cè)試用例。 例:測(cè)試計(jì)算平方根的函數(shù) -輸入:實(shí)數(shù) -輸出:實(shí)數(shù) -規(guī)格說(shuō)明:當(dāng)輸入一個(gè)0或比0大的數(shù)的時(shí)候,返回其正平方根;當(dāng)輸入一個(gè)小于0的數(shù)時(shí),顯示錯(cuò)誤信息平方根非法-輸入值小于0并返回0;庫(kù)函數(shù)Print-Line可以(ky)用來(lái)輸出錯(cuò)誤信息。 2)等價(jià)類(lèi)劃分: I.可以考慮作出如下劃分: a、輸入 (i)=0 b、輸出 (a)=0 和 (

15、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ù)(fsh) c、輸入 0 d、輸入 絕對(duì)值很小的正數(shù) e、輸入 最大正實(shí)數(shù) 4)通常情況下,軟件測(cè)試所包含的邊界檢驗(yàn)有幾種類(lèi)型:數(shù)字、字符、位置、重量、大小、速度、方位、尺寸、空間等。 5)相應(yīng)地,以上類(lèi)型的邊界值應(yīng)該在:最大/最小、首位/末位、上/下、最快/最慢、最高/最低、

16、 最短/最長(zhǎng)、 空/滿(mǎn)等情況下。 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à)類(lèi);輸入0個(gè)和256個(gè)字符作為無(wú)效等價(jià)類(lèi),這幾個(gè)數(shù)值都屬于邊界條件值。數(shù)值最小值-1/最大值+1假設(shè)某軟件的數(shù)據(jù)輸入域要求輸入5位的數(shù)據(jù)值,可以使用10000作為最小值、99999作為最大值;然后使用剛好小于5位和大于5位的 數(shù)值來(lái)作為邊界條件??臻g小于空余空間一點(diǎn)/大于滿(mǎn)空間一點(diǎn)例如在用U盤(pán)存儲(chǔ)數(shù)據(jù)時(shí),使用比剩余磁盤(pán)空間大一點(diǎn)(幾KB)的文件作為邊界條件。7)內(nèi)部邊界值分析: 在多數(shù)情況下,

17、邊界值條件是基于應(yīng)用程序的功能設(shè)計(jì)而需要考慮的因素,可以從軟件(run jin)的規(guī)格說(shuō)明或常識(shí)中得到,也是最終用戶(hù)可以很容易發(fā)現(xiàn)問(wèn)題的。然而,在測(cè)試用例設(shè)計(jì)過(guò)程中,某些邊界值條件是不需要呈現(xiàn)給用戶(hù)的,或者說(shuō)用戶(hù)是很難注意到的,但同時(shí)確實(shí)屬于檢驗(yàn)范疇內(nèi)的邊界條件,稱(chēng)為內(nèi)部邊界值條件或子邊界值條件。 內(nèi)部邊界值條件主要有下面幾種: a)數(shù)值的邊界值檢驗(yàn):計(jì)算機(jī)是基于二進(jìn)制進(jìn)行工作的,因此,軟件的任何數(shù)值運(yùn)算都有一定的范圍限制。項(xiàng)范圍或值位(bit)0或者1字節(jié)(byte)0225字(word)065535(單字)或 04294967295(雙字)千(K)1024兆(M)1048576吉(G)10

18、73741824b)字符的邊界值檢驗(yàn):在計(jì)算機(jī)軟件中,字符也是很重要的表示(biosh)元素,其中ASCII和Unicode是常見(jiàn)的編碼方式。下表中列出了一些常用字符對(duì)應(yīng)的ASCII碼值。字符ASCII碼值字符ASCII碼值空 (null)0A65空格 (space)32a97斜杠 ( / )47Z90048z122冒號(hào) ( : )58單引號(hào) ( )9664c)其它邊界值檢驗(yàn) 6.基于邊界值分析方法選擇測(cè)試用例的原則 1)如果輸入條件規(guī)定了值的范圍,則應(yīng)取剛達(dá)到這個(gè)范圍的邊界的值,以及剛剛超越這個(gè)范圍邊界的值作為測(cè)試輸入數(shù)據(jù)。 例如,如果程序的規(guī)格說(shuō)明中規(guī)定:重量在10公斤至50公斤范圍內(nèi)的郵

19、件,其郵費(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)包括(boku)1255個(gè)記錄,則測(cè)試用例可取1和255,還應(yīng)取0及256等。 3)將規(guī)則1)和2)應(yīng)用于輸出條件,即設(shè)計(jì)測(cè)試用例使輸出值達(dá)到邊界值及其左右的值。 例如,某程序的規(guī)格說(shuō)明要求計(jì)算出每月保險(xiǎn)金扣除額為0至1165.25元,其測(cè)試用例可取0.00及1165.24、還可取一0.01及116526等。 再如一程序?qū)儆谇閳?bào)檢索系統(tǒng),要求每次最少顯示1條、

20、最多顯示4條情報(bào)摘要,這時(shí)我們應(yīng)考慮的測(cè)試用例包括1和4,還應(yīng)包括0和5等。 4)如果程序的規(guī)格說(shuō)明給出的輸入域或輸出域是有序集合,則應(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ī)格說(shuō)明,找出其它可能的邊界條件。二.實(shí)戰(zhàn)演習(xí)1.現(xiàn)有一個(gè)學(xué)生標(biāo)準(zhǔn)化考試批閱(p yu)試卷,產(chǎn)生成績(jī)報(bào)告的程序。其規(guī)格說(shuō)明如下:程序的輸入文件由一些有80個(gè)字符的記錄組成,如右圖所示,所有記錄分為3組:標(biāo)題:這一組只有(zhyu)一個(gè)記錄,其內(nèi)容為輸出成績(jī)報(bào)告的名字。 試卷各題標(biāo)準(zhǔn)答案記錄:每個(gè)記錄均在第80個(gè)

21、字符處標(biāo)以數(shù)字(shz)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ù)超過(guò)50,則第2,第3紀(jì)錄分別給出他的第51至第100,第101至第150題的解答。然后是學(xué)生乙的答卷記錄。 學(xué)生人數(shù)不超過(guò)200,試題數(shù)不超過(guò)999

22、。 程序的輸出有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è)試用例。 輸出(shch)條件及相應(yīng)的測(cè)試用例表。2.三角形問(wèn)題(wnt)的邊界值分析測(cè)試用例在三角形問(wèn)題描述中,除了要求邊長(zhǎng)是整數(shù)外,沒(méi)有給出其它的限制條件。在此,我們將三角形每邊邊長(zhǎng)的取范圍值設(shè)值為1, 100 。3.NextDate函數(shù)的邊界值分析(fnx)測(cè)試用例在NextDate函數(shù)中,隱含規(guī)定了變量mou

23、th和變量day的取值范圍為1mouth12和1day31,并設(shè)定變量year的取值范圍為1912year2050 。錯(cuò)誤推測(cè)(tuc)方法一. 方法(fngf)簡(jiǎn)介1. 定義:基于經(jīng)驗(yàn)和直覺(jué)(zhju)推測(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è)試用例

24、:I. 程序是否把空格作為回答II. 在回答記錄中混有標(biāo)準(zhǔn)答案記錄III. 除了(ch le)標(biāo)題記錄外,還有一些的記錄最后一個(gè)字符即不是2也不是3IV. 有兩個(gè)(lin )學(xué)生的學(xué)號(hào)相同V. 試題(sht)數(shù)是負(fù)數(shù)。 3) 再如,測(cè)試一個(gè)對(duì)線(xiàn)性表(比如數(shù)組)進(jìn)行排序的程序,可推測(cè)列出以下幾項(xiàng)需要特別測(cè)試的情況:I. 輸入的線(xiàn)性表為空表;II. 表中只含有一個(gè)元素;III. 輸入表中所有元素已排好序;IV. 輸入表已按逆序排好;V. 輸入表中部分或全部元素相同。二. 實(shí)戰(zhàn)演習(xí) 暫無(wú)因果圖方法一. 方法簡(jiǎn)介1.定義:是一種利用圖解法分析輸入的各種組合情況,從而設(shè)計(jì)測(cè)試用例的方法,它適合于檢查程序

25、輸入條件的各種組合情況。2.因果圖法產(chǎn)生的背景:等價(jià)類(lèi)劃分法和邊界值分析方法都是著重考慮輸入條件,但沒(méi)有考慮輸入條件的各種組合、輸入條件之間的相互制約關(guān)系。這樣雖然各種輸入條件可能出錯(cuò)的情況已經(jīng)測(cè)試到了,但多個(gè)輸入條件組合起來(lái)可能出錯(cuò)的情況卻被忽視了。如果在測(cè)試時(shí)必須考慮輸入條件的各種組合,則可能的組合數(shù)目將是天文數(shù)字,因此必須考慮采用一種適合于描述多種條件的組合、相應(yīng)產(chǎn)生多個(gè)動(dòng)作的形式來(lái)進(jìn)行測(cè)試用例的設(shè)計(jì),這就需要利用因果圖(邏輯模型)。3.因果圖介紹1)4種符號(hào)分別表示了規(guī)格說(shuō)明中向4種因果關(guān)系。2)因果圖中使用了簡(jiǎn)單的邏輯符號(hào),以直線(xiàn)聯(lián)接左右結(jié)點(diǎn)。左結(jié)點(diǎn)表示輸入狀態(tài)(zhungti)(或

26、稱(chēng)原因),右結(jié)點(diǎn)表示輸出狀態(tài)(或稱(chēng)結(jié)果)。 3)Ci表示原因,通常置于圖的左部;ei表示結(jié)果,通常在圖的右部。Ci和ei均可取值0或1,0表示某狀態(tài)(zhungti)不出現(xiàn),1表示某狀態(tài)出現(xiàn)。 4. 因果(yngu)圖概念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)相互之間還可能存在某些依賴(lài)關(guān)系,稱(chēng)為約束。例如, 某些輸入條件本身不可能同時(shí)出現(xiàn)。輸出狀態(tài)之間也往往存在約束。在

27、因果圖中,用特定的符號(hào)標(biāo)明這些約束。A.輸入條件的約束(yush)有以下4類(lèi): E約束(異):a和b中至多有一個(gè)(y )可能為1,即a和b不能同時(shí)為1。 I約束(或):a、b和c中至少有一個(gè)(y )必須是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.輸出條件約束類(lèi)型輸出條件的約束只有M約束(強(qiáng)制):若結(jié)果a是1,則結(jié)果b強(qiáng)制為0。5.采用因果圖法設(shè)計(jì)測(cè)試用例的步驟:1)分析軟件規(guī)格說(shuō)明描述中, 那些是原因(即輸入條件或輸入條件的等價(jià)類(lèi)),那些是結(jié)果(即輸出條件), 并給每個(gè)原因和結(jié)果賦予

28、一個(gè)標(biāo)識(shí)符。2)分析軟件規(guī)格說(shuō)明描述中的語(yǔ)義,找出原因與結(jié)果之間, 原因與原因之間對(duì)應(yīng)的關(guān)系,根據(jù)這些關(guān)系,畫(huà)出因果圖。3)由于語(yǔ)法或環(huán)境限制, 有些原因與原因之間,原因與結(jié)果之間的組合情況不可能出現(xiàn),為表明這些特殊情況, 在因果圖上用一些記號(hào)表明約束或限制條件。4)把因果圖轉(zhuǎn)換為判定表。5)把判定表的每一列拿出來(lái)作為依據(jù),設(shè)計(jì)測(cè)試用例。二.實(shí)戰(zhàn)演習(xí)1.某軟件規(guī)格說(shuō)明書(shū)包含這樣的要求:第一列字符必須是A或B,第二列字符必須是一個(gè)數(shù)字,在此情況下進(jìn)行文件的修改,但如果第一列字符不正確,則給出信息L;如果第二列字符不是數(shù)字,則給出信息M。解答:1)根據(jù)題意,原因和結(jié)果如下: 原因: 1第一列字符是

29、A; 2第一列字符是B; 3第二列字符(z f)是一數(shù)字。 結(jié)果(ji gu): 21修改(xigi)文件; 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角錢(qián)的飲料的自動(dòng)售貨機(jī)軟件測(cè)試用例的設(shè)計(jì)。其規(guī)格說(shuō)明如下:若投入5角錢(qián)或1元錢(qián)的硬幣,押下橙汁或啤酒的按鈕,則相應(yīng)的飲料就送出來(lái)。若售貨機(jī)沒(méi)有零錢(qián)找,則

30、一個(gè)顯示零錢(qián)找完的紅燈亮,這時(shí)在投入1元硬幣并押下按鈕后,飲料不送出來(lái)而且1元硬幣也退出來(lái);若有零錢(qián)找,則顯示零錢(qián)找完的紅燈滅,在送出飲料的同時(shí)退還5角硬幣。1)分析這一段說(shuō)明,列出原因和結(jié)果原因:1.售貨機(jī)有零錢(qián)找2.投入1元硬幣3.投入5角硬幣 4.押下橙汁按鈕5.押下啤酒(pji)按鈕 結(jié)果(ji gu): 21.售貨機(jī)零錢(qián)(ln qin)找完燈亮 22.退還1元硬幣23.退還5角硬幣 24.送出橙汁飲料25.送出啤酒飲料2)畫(huà)出因果圖,如圖所示。所有原因結(jié)點(diǎn)列在左邊,所有結(jié)果結(jié)點(diǎn)列在右邊。建立中間結(jié)點(diǎn),表示處理的中間狀態(tài)。中間結(jié)點(diǎn):11. 投入1元硬幣且押下飲料按鈕 12. 押下橙汁或

31、啤酒的按鈕 13. 應(yīng)當(dāng)找5角零錢(qián)并且售貨機(jī)有零錢(qián)找 14. 錢(qián)已付清3)轉(zhuǎn)換成判定表:4)在判定表中,陰影部分表示因違反約束條件的不可能出現(xiàn)的情況,刪去。第16列與第32列因什么動(dòng)作也沒(méi)做,也刪去。最后可根據(jù)剩下的16列作為確定測(cè)試用例的依據(jù)。判定表驅(qū)動(dòng)分析方法一. 方法(fngf)簡(jiǎn)介1.定義(dngy):判定表是分析和表達(dá)多邏輯條件(tiojin)下執(zhí)行不同操作的情況的工具。2.判定表的優(yōu)點(diǎn)能夠?qū)?fù)雜的問(wèn)題按照各種可能的情況全部列舉出來(lái),簡(jiǎn)明并避免遺漏。因此,利用判定表能夠設(shè)計(jì)出完整的測(cè)試用例集合。在一些數(shù)據(jù)處理問(wèn)題當(dāng)中,某些操作的實(shí)施依賴(lài)于多個(gè)邏輯條件的組合,即:針對(duì)不同邏輯條件的組合

32、值,分別執(zhí)行不同的操作。判定表很適合于處理這類(lèi)問(wèn)題。3.“閱讀指南”判定表4. 判定表通常由四個(gè)部分組成如下圖所示。1)條件樁(Condition Stub):列出了問(wèn)題得所有條件。通常認(rèn)為列出的條件的次序無(wú)關(guān)緊要。2)動(dòng)作樁(Action Stub):列出了問(wèn)題規(guī)定可能采取的操作。這些操作的排列順序沒(méi)有約束。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í)行的操作稱(chēng)為規(guī)則。在判定表中貫穿(gun

33、chun)條件項(xiàng)和動(dòng)作項(xiàng)的一列就是一條規(guī)則。顯然,判定表中列出多少(dusho)組條件取值,也就有多少(dusho)條規(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)類(lèi)似,在1、2條件項(xiàng)分別取Y、N時(shí),無(wú)論條件3取何值,都執(zhí)行同一操作。即要執(zhí)行的動(dòng)作與條件3無(wú)關(guān)。于是可合并?!啊北硎九c取值無(wú)關(guān)。2)與上類(lèi)似,下圖中,無(wú)關(guān)條件項(xiàng)“”可包含其他條件項(xiàng)取值,具有相同動(dòng)作的規(guī)則可合并。3)化簡(jiǎn)后的讀書(shū)指南(zhnn)判定表1234問(wèn)題你覺(jué)得疲倦嗎?-YN你對(duì)內(nèi)容感興

34、趣嗎?YYNN書(shū)中內(nèi)容使你胡涂嗎?YN-建議請(qǐng)回到本章開(kāi)頭重讀x繼續(xù)讀下去X跳到下一章去讀x停止閱讀,請(qǐng)休息x7.判定表的建立(jinl)步驟:(根據(jù)軟件規(guī)格說(shuō)明)1)確定(qudng)規(guī)則的個(gè)數(shù).假如有n個(gè)條件。每個(gè)條件有兩個(gè)取值(0,1),故有2n種規(guī)則。2)列出所有的條件樁和動(dòng)作樁。3)填入條件項(xiàng)。4)填入動(dòng)作(dngzu)項(xiàng)。等到初始判定表。5)簡(jiǎn)化(jinhu).合并相似規(guī)則(相同(xin tn)動(dòng)作)。二.實(shí)戰(zhàn)演習(xí)1.問(wèn)題要求:”對(duì)功率大于50馬力的機(jī)器、維修記錄不全或已運(yùn)行10年以上的機(jī)器,應(yīng)給予優(yōu)先的維修處理” 。這里假定,“維修記錄不全”和“優(yōu)先維修處理”均已在別處有更嚴(yán)格的

35、定義 。請(qǐng)建立判定表。解答:確定規(guī)則的個(gè)數(shù):這里有3個(gè)條件,每個(gè)條件有兩個(gè)取值,故應(yīng)有2*2*2=8種規(guī)則。列出所有的條件茬和動(dòng)作樁:填入條件項(xiàng)。可從最后1行條件項(xiàng)開(kāi)始,逐行向上填滿(mǎn)。如第三行是: 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)行超過(guò)10年嗎?YNYNYNYN動(dòng)作進(jìn)行優(yōu)先處理xxXXX作其他處理Xxx初始判定表化簡(jiǎn)。合并相似規(guī)則后得到圖。12345條件功率大于50馬力嗎?YYYNN維修記錄不全嗎?YNN-

36、運(yùn)行超過(guò)10年嗎?-YNYN動(dòng)作進(jìn)行優(yōu)先處理xxX作其他處理xx2.NextData函數(shù)(hnsh)的精簡(jiǎn)決策表M1月份(yufn), 每月有30天M2月份(yufn), 每月有31天M3月份, 2月 有29512條規(guī)則D1日期,128 12月末31日和其它31D2日期,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=日期=27D2日期:28D3日期:29D4日期:30D5日期:31Y1 年:年是

37、閏年Y2 年:年不是閏年輸入變量間存在大量邏輯關(guān)系的NextData決策表3.用決策表測(cè)試法測(cè)試以下程序:該程序有三個(gè)輸入(shr)變量month、day、year(month、day和year均為整數(shù)值,并且(bngqi)滿(mǎn)足:1month12和1day31),分別作為(zuwi)輸入日期的月份、日、年份,通過(guò)程序可以輸出該輸入日期在日歷上隔一天的日期。 例如,輸入為2004年11月29日,則該程序的輸出為2000年12月1日。1)分析各種輸入情況,列出為輸入變量month、day、year劃分的有效等價(jià)類(lèi)。2)分析程序規(guī)格說(shuō)明,結(jié)合以上等價(jià)類(lèi)劃分的情況給出問(wèn)題規(guī)定的可能采取的操作(即列出所

38、有的動(dòng)作樁)。3)根據(jù)(1)和(2),畫(huà)出簡(jiǎn)化后的決策表。案例分析如下:month變量的有效等價(jià)類(lèi): M1: month=4,6,9,11 M2: month=1,3,5,7,8,10M3: month=12 M4: month=22)day變量(binling)的有效等價(jià)類(lèi): D1:1day26 D2: day=27 D3: day=28 D4: day=29 D5: day=30 D6: day=313)year變量(binling)的有效等價(jià)類(lèi):Y1: year是閏年(rnnin) Y2: year不是閏年4)考慮各種有效的輸入情況,程序中可能采取的操作有以下六種:a1: day+2 a

39、2: 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ī)格說(shuō)明指出:I.當(dāng)條件1和條件2滿(mǎn)足,并且條件3和條件4不滿(mǎn)足,或者當(dāng)條件1、3和條件4滿(mǎn)足時(shí),要執(zhí)行操作1。II.在任一個(gè)條件都不滿(mǎn)足時(shí),要執(zhí)行操作2。III.在條件1不滿(mǎn)足,而條件4被滿(mǎn)足時(shí),要執(zhí)行操作3。 根據(jù)規(guī)格說(shuō)明得到如下判定表:這里,判定表只給出了16種規(guī)則中的8種。事實(shí)上,除這8條以外的一些規(guī)則是指當(dāng)不能滿(mǎn)足指定的條件,執(zhí)行3種操作時(shí),

40、要執(zhí)行1個(gè)默許的操作。在沒(méi)必要時(shí),判定表通??陕匀ミ@些規(guī)則。但如果用判定表來(lái)設(shè)計(jì)測(cè)試用例,就必須列出這些默許規(guī)則(如下表)。規(guī)則5規(guī)則6規(guī)則7規(guī)則8條件1-NYY條件2-YYN條件3YNNN條件4NNY-默許操作xxxx默許(mx)的規(guī)則2)判定(pndng)表的優(yōu)點(diǎn)和缺點(diǎn)I.優(yōu)點(diǎn):它能把復(fù)雜的問(wèn)題按各種可能的情況一一列舉出來(lái),簡(jiǎn)明(jinmng)而易于理解,也可避免遺漏。II. 缺點(diǎn):不能表達(dá)重復(fù)執(zhí)行的動(dòng)作,例如循環(huán)結(jié)構(gòu)。3)B. Beizer 指出了適合使用判定表設(shè)計(jì)測(cè)試用例的條件:規(guī)格說(shuō)明以判定表形式給出,或很容易轉(zhuǎn)換成判定表。條件的排列順序不會(huì)也不影響執(zhí)行哪些操作。規(guī)則的排列順序不會(huì)也

41、不影響執(zhí)行哪些操作。每當(dāng)某一規(guī)則的條件已經(jīng)滿(mǎn)足,并確定要執(zhí)行的操作后,不必檢驗(yàn)別的規(guī)則。如果某一規(guī)則得到滿(mǎn)足要執(zhí)行多個(gè)操作,這些操作的執(zhí)行順序無(wú)關(guān)緊要。B. Beizer提出這5個(gè)必要條件的目的是為了使操作的執(zhí)行完全依賴(lài)于條件的組合。其實(shí)對(duì)于某些不滿(mǎn)足這幾條的判定表,同樣可以借以設(shè)計(jì)測(cè)試用例,只不過(guò)尚需增加其它的測(cè)試用例罷了。正交實(shí)驗(yàn)設(shè)計(jì)方法一.方法簡(jiǎn)介利用因果圖來(lái)設(shè)計(jì)測(cè)試用例時(shí), 作為輸入條件的原因與輸出結(jié)果之間的因果關(guān)系,有時(shí)很難從軟件需求規(guī)格說(shuō)明中得到。往往因果關(guān)系非常龐大,以至于據(jù)此因果圖而得到的測(cè)試用例數(shù)目多的驚人,給軟件測(cè)試帶來(lái)沉重的負(fù)擔(dān),為了有效地,合理地減少測(cè)試的工時(shí)與費(fèi)用,可

42、利用正交實(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ì)方法.類(lèi)似的方法有:聚類(lèi)分析方法,因子方法方法等.利用正交實(shí)驗(yàn)設(shè)計(jì)測(cè)試用例的步驟:1.提取功能說(shuō)明,構(gòu)造因子-狀態(tài)表把影響實(shí)驗(yàn)指標(biāo)的條件稱(chēng)為因子.而影響實(shí)驗(yàn)因子的條件叫因子的狀態(tài).利用正交實(shí)驗(yàn)設(shè)計(jì)方法來(lái)設(shè)計(jì)測(cè)試用例時(shí),首先要根據(jù)被測(cè)試軟件的規(guī)格說(shuō)明書(shū)找出影響其功能實(shí)現(xiàn)的操作對(duì)象和外部因素,把他們當(dāng)作因子,而把各個(gè)因子的取值當(dāng)作狀態(tài).對(duì)軟件需求規(guī)格說(shuō)明中的功能要求進(jìn)行劃分,把整體的概要性的功能要求進(jìn)行層層分解與

43、展開(kāi),分解成具體的有相對(duì)獨(dú)立性的基本的功能要求.這樣就可以把被測(cè)試軟件中所有的因子都確定下來(lái),并為確定個(gè)因子的權(quán)值提供參考的依據(jù).確定因子與狀態(tài)是設(shè)計(jì)測(cè)試用例的關(guān)鍵.因此要求盡可能全面的正確的確定取值,以確保測(cè)試用例的設(shè)計(jì)作到完整與有效。2.加權(quán)篩選,生成(shn chn)因素分析表對(duì)因子與狀態(tài)(zhungti)的選擇可按其重要程度分別加權(quán).可根據(jù)各個(gè)因子及狀態(tài)的作用大小,出現(xiàn)頻率的大小以及測(cè)試的需要,確定權(quán)值的大小。3.利用(lyng)正交表構(gòu)造測(cè)試數(shù)據(jù)集正交表的推導(dǎo)依據(jù)Galois理論(這里省略,需要時(shí)可查數(shù)理統(tǒng)計(jì)方面的教材)。利用正交實(shí)驗(yàn)設(shè)計(jì)方法設(shè)計(jì)測(cè)試用例,比使用等價(jià)類(lèi)劃分,邊界值分析

44、,因果圖等方法有以下優(yōu)點(diǎn):節(jié)省測(cè)試工作工時(shí);可控制生成的測(cè)試用例數(shù)量;測(cè)試用例具有一定的覆蓋率。二.實(shí)戰(zhàn)演習(xí) 暫無(wú)功能圖分析方法一.方法簡(jiǎn)介一個(gè)程序的功能說(shuō)明通常由動(dòng)態(tài)說(shuō)明和靜態(tài)說(shuō)明組成.動(dòng)態(tài)說(shuō)明描述了輸入數(shù)據(jù)的次序或轉(zhuǎn)移的次序.靜態(tài)說(shuō)明描述了輸入條件與輸出條件之間的對(duì)應(yīng)關(guān)系.對(duì)于較復(fù)雜的程序,由于存在大量的組合情況,因此,僅用靜態(tài)說(shuō)明組成的規(guī)格說(shuō)明對(duì)于測(cè)試來(lái)說(shuō)往往是不夠的.必須用動(dòng)態(tài)說(shuō)明來(lái)補(bǔ)充功能說(shuō)明.功能圖方法是用功能圖FD形式化地表示程序的功能說(shuō)明,并機(jī)械地生成功能圖的測(cè)試用例. 功能圖模型由狀態(tài)遷移圖和邏輯功能模型構(gòu)成.狀態(tài)遷移圖用于表示輸入數(shù)據(jù)序列以及相應(yīng)的輸出數(shù)據(jù).在狀態(tài)遷移圖中,

45、由輸入數(shù)據(jù)和當(dāng)前狀態(tài)決定輸出數(shù)據(jù)和后續(xù)狀態(tài).邏輯功能模型用于表示在狀態(tài)中輸入條件和輸出條件之間的對(duì)應(yīng)關(guān)系.邏輯功能模型只適合于描述靜態(tài)說(shuō)明,輸出數(shù)據(jù)僅由輸入數(shù)據(jù)決定.測(cè)試用例則是由測(cè)試中經(jīng)過(guò)的一系列狀態(tài)和在每個(gè)狀態(tài)中必須依靠輸入/輸出數(shù)據(jù)滿(mǎn)足的一對(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ǔ)句覆蓋,判定覆蓋,判定-條件覆蓋,條件組合覆蓋及路徑覆蓋.下面我們

46、指的邏輯覆蓋和路徑是功能或系統(tǒng)水平上的,以區(qū)別與白盒測(cè)試中的程序內(nèi)部的.)1.功能圖功能圖由狀態(tài)遷移圖和布爾函數(shù)組成.狀態(tài)遷移圖用狀態(tài)和遷移來(lái)描述.一個(gè)狀態(tài)指出數(shù)據(jù)輸入的位置(或時(shí)間),而遷移則指明狀態(tài)的改變.同時(shí)要依靠判定表或因果圖表示的邏輯功能.例,一個(gè)簡(jiǎn)化的自動(dòng)出納機(jī)ATM的功能圖。2.測(cè)試用例生成(shn chn)方法從功能圖生成測(cè)試用例,得到的測(cè)試用例數(shù)是可接受的. 問(wèn)題的關(guān)鍵的是如何從狀態(tài)遷移圖中選取測(cè)試用例. 若用節(jié)點(diǎn)代替狀態(tài),用弧線(xiàn)代替遷移,則狀態(tài)遷移圖就可轉(zhuǎn)化成一個(gè)程序的控制流程圖形式(xngsh).問(wèn)題就轉(zhuǎn)化為程序的路徑測(cè)試問(wèn)題(如白盒測(cè)試)問(wèn)題了.3.測(cè)試用例生成(shn

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

48、到最后狀態(tài)的一個(gè)狀態(tài)序列,以及每個(gè)狀態(tài)中輸入數(shù)據(jù)與對(duì)應(yīng)輸出數(shù)據(jù)的組合。5.測(cè)試用例的合成算法:采用條件構(gòu)造樹(shù).二.實(shí)戰(zhàn)演習(xí) 暫無(wú)場(chǎng)景設(shè)計(jì)方發(fā)一.方法簡(jiǎn)介現(xiàn)在的軟件幾乎都是用事件觸發(fā)來(lái)控制流程的,事件觸發(fā)時(shí)的情景便形成了場(chǎng)景,而同一事件不同的觸發(fā)順序和處理結(jié)果就形成事件流。這種在軟件設(shè)計(jì)方面的思想也可以引入到軟件測(cè)試中,可以比較生動(dòng)地描繪出事件觸發(fā)時(shí)的情景,有利于測(cè)試設(shè)計(jì)者設(shè)計(jì)測(cè)試用例,同時(shí)使測(cè)試用例更容易理解和執(zhí)行?;玖骱蛡溥x流:如下圖所示,圖中經(jīng)過(guò)用例的每條路徑都用基本流和備選流來(lái)表示,直黑線(xiàn)表示基本流,是經(jīng)過(guò)用例的最簡(jiǎn)單的路徑。備選流用不同的色彩表示,一個(gè)備選流可能從基本流開(kāi)始,在某個(gè)特

49、定條件下執(zhí)行,然后重新加入基本流中(如備選流1和3);也可能起源于另一個(gè)備選流(如備選流2),或者終止用例而不再重新加入到某個(gè)流(如備選流2和4)。二.實(shí)戰(zhàn)演習(xí)1. 例子(l zi)描述下圖所示是ATM例子(l zi)的流程示意圖。2.場(chǎng)景設(shè)計(jì)(shj):下表所示是生成的場(chǎng)景。表3-8 場(chǎng)景(chng jng)設(shè)計(jì)場(chǎng)景1成功提款基本流場(chǎng)景2ATM內(nèi)沒(méi)有現(xiàn)金基本流備選流2場(chǎng)景3ATM內(nèi)現(xiàn)金不足基本流備選流3場(chǎng)景4PIN有誤(還有輸入機(jī)會(huì))基本流備選流4場(chǎng)景5PIN有誤(不再有輸入機(jī)會(huì))基本流備選流4場(chǎng)景6賬戶(hù)不存在/賬戶(hù)類(lèi)型有誤基本流備選流5場(chǎng)景7賬戶(hù)余額不足基本流備選流6注:為方便(fngbin)起見(jiàn),備選流3和6(場(chǎng)景3和7)內(nèi)的循環(huán)以及循環(huán)組合未納入上表。3.用例設(shè)計(jì)對(duì)于這7個(gè)場(chǎng)景中的每一個(gè)場(chǎng)景都需要確定測(cè)試用例??梢圆捎镁仃嚮驔Q策表來(lái)確定和管理測(cè)試用例。下面顯示了一種通用格式,其中各行代表各個(gè)測(cè)試用例,而各列則代表測(cè)試用例的信息。本示例中,對(duì)于每個(gè)測(cè)試用例,存在一個(gè)測(cè)試用例ID、條件(或說(shuō)明)、測(cè)試用例中涉及的所有數(shù)據(jù)元素(作為輸入或已經(jīng)存在于數(shù)據(jù)

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論