版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第三
章軟件測(cè)試的方法和技術(shù)三.一
軟件測(cè)試方法概述3.二
白盒測(cè)試3.3黑盒測(cè)試3.四
測(cè)試用例設(shè)計(jì)三.一
軟件測(cè)試方法概述
軟件測(cè)試的種類大致可分為人工測(cè)試和基于計(jì)算機(jī)的測(cè)試,而基于計(jì)算機(jī)的測(cè)試又可分為黑盒測(cè)試和白盒測(cè)試。一.黑盒測(cè)試黑盒測(cè)試是根據(jù)軟件產(chǎn)品的功能設(shè)計(jì)規(guī)格,在計(jì)算機(jī)上進(jìn)行測(cè)試,以證實(shí)每個(gè)已經(jīng)實(shí)現(xiàn)的功能是否符合要求。黑盒測(cè)試意味著測(cè)試要在軟件的接口處進(jìn)行。二.白盒測(cè)試白盒測(cè)試是根據(jù)軟件產(chǎn)品的內(nèi)部工作過(guò)程,在計(jì)算機(jī)上進(jìn)行測(cè)試,以證實(shí)每種內(nèi)部操作是否符合設(shè)計(jì)規(guī)格要求,所有內(nèi)部成分是否已經(jīng)過(guò)檢查,白盒測(cè)試把測(cè)試對(duì)象看做一個(gè)打開(kāi)的盒子,允許測(cè)試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息,設(shè)計(jì)或選擇測(cè)試用例,對(duì)程序所有邏輯路徑進(jìn)行測(cè)試。通過(guò)在不同點(diǎn)檢查程序的狀態(tài),確定實(shí)際的狀態(tài)是否與預(yù)期的狀態(tài)一致。三.二
白盒測(cè)試
白盒測(cè)試也稱為結(jié)構(gòu)測(cè)試或邏輯驅(qū)動(dòng)測(cè)試,前提是知道產(chǎn)品內(nèi)部工作過(guò)程,可通過(guò)測(cè)試來(lái)檢測(cè)產(chǎn)品內(nèi)部動(dòng)作是否按照規(guī)格說(shuō)明書的規(guī)定正常進(jìn)行,按照程序內(nèi)部的結(jié)構(gòu)測(cè)試程序,檢驗(yàn)程序中的每條通路是否都能夠按預(yù)定要求正確工作,而不管產(chǎn)品的功能,主要用于軟件驗(yàn)證,
白盒測(cè)試方法又可分為靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試,靜態(tài)測(cè)試是一種不通過(guò)執(zhí)行程序而進(jìn)行測(cè)試的技術(shù),其關(guān)鍵功能是檢查軟件的表示和描述是否一致,沒(méi)有沖突或者沒(méi)有歧義。它瞄準(zhǔn)的是糾正軟件系統(tǒng)在描述、表示和規(guī)格上的錯(cuò)誤,是任何進(jìn)一步測(cè)試的前提。而動(dòng)態(tài)測(cè)試需要軟件的執(zhí)行,當(dāng)軟件系統(tǒng)在模擬的或真實(shí)的環(huán)境中執(zhí)行之前、之中和之后,對(duì)軟件系統(tǒng)行為的分析是動(dòng)態(tài)測(cè)試的主要特點(diǎn)。它顯示了一個(gè)系統(tǒng)在檢查狀態(tài)下是正確還是不正確。
白盒測(cè)試的動(dòng)態(tài)測(cè)試要根據(jù)程序的控制結(jié)構(gòu)設(shè)計(jì)測(cè)試用例,其原則是:(一]保證一個(gè)模塊中的所有獨(dú)立路徑至少被使用一次;(二)對(duì)所有邏輯值均需測(cè)試true和false;(三)在上下邊界及可操作范圍內(nèi)運(yùn)行所有循環(huán);(四)檢查內(nèi)部數(shù)據(jù)結(jié)構(gòu)以確保其有效性,
下面將介紹幾種實(shí)用的白盒測(cè)試用例設(shè)計(jì)方法,包括程序插樁、邏輯覆蓋、基本路徑測(cè)試等,三.二.一
程序插樁在軟件動(dòng)態(tài)測(cè)試中,程序插樁是一種基本的測(cè)試手段,有著廣泛的應(yīng)用。1.方法簡(jiǎn)介程序插樁方法是借助往被測(cè)程序中插入操作,來(lái)實(shí)現(xiàn)測(cè)試目的的方法。
如果我們想要了解一個(gè)程序在某次運(yùn)行中所有可執(zhí)行語(yǔ)句被覆蓋的情況,或是每個(gè)語(yǔ)句的實(shí)際執(zhí)行次數(shù),最好的辦法是利用插樁技術(shù),這里僅以計(jì)算整數(shù)X和整數(shù)Y的最大公約數(shù)程序?yàn)槔?,說(shuō)明插樁方法的要點(diǎn)。圖三-3給出了這一程序的流程圖。圖三-3插樁后求最大公約數(shù)程序的流程圖設(shè)計(jì)插樁程序時(shí)需要考慮的問(wèn)題包括:①探測(cè)哪些信息;②在程序的什么部位設(shè)置探測(cè)點(diǎn);③需要設(shè)置多少個(gè)探測(cè)點(diǎn),二.?dāng)嘌哉Z(yǔ)句在程序中特定部位插入某些用以判斷變量特性的語(yǔ)句,使得程序執(zhí)行中這些語(yǔ)句得以證實(shí),從而使程序的運(yùn)行特性得到證實(shí),我們把插入的這些語(yǔ)句稱為斷言。這一做法是程序正確性證明的基本步驟,盡管算不上嚴(yán)格的證明,但方法本身仍然是很實(shí)用的。下面以求兩個(gè)非負(fù)數(shù)NUM和DEN之商的Wensley迭代算法為例,對(duì)斷言語(yǔ)句的作用做一簡(jiǎn)要說(shuō)明。圖三-五
計(jì)算非負(fù)數(shù)之商的迭代程序
圖三-六
插入斷言后的迭代程序三.二.2邏輯覆蓋邏輯覆蓋是以程序內(nèi)部的邏輯結(jié)構(gòu)為基礎(chǔ)的設(shè)計(jì)測(cè)試用例的技術(shù),是通過(guò)對(duì)程序邏輯結(jié)構(gòu)的遍歷實(shí)現(xiàn)程序的覆蓋,它是一系列測(cè)試過(guò)程的總稱,這組測(cè)試過(guò)程逐漸進(jìn)行越來(lái)越完整的通路測(cè)試,這一方法要求測(cè)試人員對(duì)程序的邏輯結(jié)構(gòu)有清楚的了解,甚至要能掌握源程序的所有細(xì)節(jié)。它屬于動(dòng)態(tài)測(cè)試。
從覆蓋源程序語(yǔ)句的詳細(xì)程度分析,邏輯覆蓋標(biāo)準(zhǔn)有語(yǔ)句覆蓋、判定覆蓋、條件覆蓋、條件判定組合覆蓋、多條件覆蓋和修正條件判定覆蓋,為便于理解,使用如下所示的程序,圖三-七所示的是其流程圖。圖三-七
參考例子流程圖intfunction一(boola,boolb,boolc]{intx;x=0;if[a&&(b||c))x=1;returnx;}一.語(yǔ)句覆蓋為了暴露程序中的錯(cuò)誤,程序中的每條語(yǔ)句至少應(yīng)該執(zhí)行一次,所以,語(yǔ)句覆蓋的含義是:選擇足夠多的測(cè)試數(shù)據(jù),使被測(cè)程序中每條語(yǔ)句至少執(zhí)行一次。二.判定覆蓋比語(yǔ)句覆蓋稍強(qiáng)的覆蓋標(biāo)準(zhǔn)是判定覆蓋,按判定覆蓋準(zhǔn)則進(jìn)行測(cè)試是指,設(shè)計(jì)若干測(cè)試用例,運(yùn)行被測(cè)程序,使得程序中每個(gè)判斷的取真分支和取假分支至少經(jīng)歷一次,即判斷的真假值均曾被滿足。判定覆蓋又稱為分支覆蓋。三.條件覆蓋在設(shè)計(jì)程序中,一個(gè)判定語(yǔ)句是由多個(gè)條件組合而成的復(fù)合判定,條件覆蓋的含義是:構(gòu)造一組測(cè)試用例,使得每一判定語(yǔ)句中每個(gè)邏輯條件的可能值至少滿足一次。四.條件判定組合覆蓋條件判定組合覆蓋的含義是:設(shè)計(jì)足夠的測(cè)試用例,使得判定中每個(gè)條件的所有可能(真/假]至少出現(xiàn)一次,并且每個(gè)判定本身的判定結(jié)果(真/假)也至少出現(xiàn)一次,五.多條件覆蓋多條件覆蓋也稱為條件組合覆蓋,它的含義是:設(shè)計(jì)足夠的測(cè)試用例,使得每個(gè)判定中條件的各種可能組合都至少出現(xiàn)一次,顯然滿足多條件覆蓋的測(cè)試用例是一定滿足判定覆蓋、條件覆蓋和條件判定組合覆蓋的。六.修正條件判定覆蓋它要求滿足兩個(gè)條件:首先,每一個(gè)程序模塊的入口和出口點(diǎn)都要考慮至少被調(diào)用一次,每個(gè)程序的判定到所有可能的結(jié)果值要至少轉(zhuǎn)換一次;其次,程序的判定被分解為通過(guò)邏輯操作符(and、or]連接的bool條件,每個(gè)條件對(duì)于判定的結(jié)果值是獨(dú)立的,七.測(cè)試覆蓋準(zhǔn)則(一]Foster的ESTCA覆蓋準(zhǔn)則前面所介紹的邏輯覆蓋其出發(fā)點(diǎn)似乎是合理的,所謂“覆蓋”,就是想要做到全面而無(wú)遺漏。但是,事實(shí)表明,它并不能真的做到無(wú)遺漏。
K.A.Foster從測(cè)試工作實(shí)踐的教訓(xùn)出發(fā),吸收了計(jì)算機(jī)硬件的測(cè)試原理,提出了一種經(jīng)驗(yàn)型的測(cè)試覆蓋準(zhǔn)則。(二]Woodward等人的層次LCSAJ覆蓋準(zhǔn)則
Woodward等人曾經(jīng)指出結(jié)構(gòu)覆蓋的一些準(zhǔn)則,如分支覆蓋或路徑覆蓋,都不足以保證測(cè)試數(shù)據(jù)的有效性,為此,他們提出了一種層次LCSAJ覆蓋準(zhǔn)則。三.二.3基本路徑測(cè)試上節(jié)的例子是個(gè)比較簡(jiǎn)單的程序段,只有兩條路徑,但在實(shí)際問(wèn)題中,即使一個(gè)不太復(fù)雜的程序,其路徑的組合都是一個(gè)龐大的數(shù)字。如果把覆蓋的路徑數(shù)壓縮到一定限度內(nèi),例如,程序中的循環(huán)體只執(zhí)行零次和一次,就成為基本路徑測(cè)試。設(shè)計(jì)出的測(cè)試用例要保證在測(cè)試中程序的每一條可執(zhí)行語(yǔ)句至少執(zhí)行一次。一.程序的控制流圖控制流圖是描述程序控制流的一種圖示方式,其中基本的控制結(jié)構(gòu)對(duì)應(yīng)的圖形符號(hào)如圖三-八所示。在圖3-8所示的圖形符號(hào)中,圓圈稱為控制流圖的一個(gè)結(jié)點(diǎn),它表示一個(gè)或多個(gè)無(wú)分支的語(yǔ)句或源程序語(yǔ)句。圖三-八
控制流圖的圖形符號(hào)
圖三-八(a]所示的是一個(gè)程序的流程圖,它可以映射成圖(b)所示的控制流圖,圖三-八
程序流程圖和對(duì)應(yīng)的控制流圖二.計(jì)算程序環(huán)路復(fù)雜性進(jìn)行程序的基本路徑測(cè)試時(shí),程序的環(huán)路復(fù)雜性給出了程序基本路徑集合中的獨(dú)立路徑條數(shù),這是確保程序中每個(gè)可執(zhí)行語(yǔ)句至少執(zhí)行一次所必須的測(cè)試用例數(shù)目的上界,所謂獨(dú)立路徑,是指包括若干未曾處理的語(yǔ)句或條件的一條路徑。
基本路徑集不是惟一的,對(duì)于給定的控制流圖,可以得到不同的基本路徑集,通常環(huán)路復(fù)雜性可用以下三種方法求得。①將環(huán)路復(fù)雜性定義為控制流圖中的區(qū)域數(shù)。②設(shè)E為控制流圖的邊數(shù),N為圖的結(jié)點(diǎn)數(shù),則定義環(huán)路的復(fù)雜性為V[G)=E?N+二。③若設(shè)P為控制流圖中的判定結(jié)點(diǎn)數(shù),則有V(G)=P+一。三.基本路徑測(cè)試法步驟基本路徑測(cè)試法適用于模塊的詳細(xì)設(shè)計(jì)及源程序,其主要步驟如下,①以詳細(xì)設(shè)計(jì)或源代碼作為基礎(chǔ),導(dǎo)出程序的控制流圖。②計(jì)算得到的控制流圖G的環(huán)路復(fù)雜性V(G]。③確定線性無(wú)關(guān)的路徑的基本集。④生成測(cè)試用例,確保基本路徑集中每條路徑的執(zhí)行。三.二.四
程序的靜態(tài)測(cè)試一.源程序靜態(tài)分析在靜態(tài)結(jié)構(gòu)分析中,測(cè)試者通過(guò)使用測(cè)試工具分析程序源代碼的系統(tǒng)結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)接口、內(nèi)部控制邏輯等內(nèi)部結(jié)構(gòu),生成函數(shù)調(diào)用關(guān)系圖、模塊控制流圖、內(nèi)部文件調(diào)用關(guān)系圖、子程序表、宏和函數(shù)參數(shù)表等各類圖形圖表,可以清晰地標(biāo)識(shí)整個(gè)軟件系統(tǒng)的組成結(jié)構(gòu),使其便于閱讀與理解,然后可以通過(guò)分析這些圖表,檢查軟件有沒(méi)有存在缺陷或錯(cuò)誤,
通常采用以下一些方法進(jìn)行源程序的靜態(tài)分析,(一]生成各種引用表①標(biāo)號(hào)交叉引用表②變量交叉引用表③子程序(宏、函數(shù))引用表④等價(jià)表⑤常數(shù)表(二]錯(cuò)誤靜態(tài)分析錯(cuò)誤靜態(tài)分析主要用于確定在源程序中是否有某類錯(cuò)誤或“危險(xiǎn)”結(jié)構(gòu),①類型和單位分析②引用分析③表達(dá)式分析④接口分析二.人工測(cè)試靜態(tài)分析中進(jìn)行人工測(cè)試的主要方法有桌前檢查、代碼審查和走查,經(jīng)驗(yàn)表明,使用這種方法能夠有效地發(fā)現(xiàn)三0%~七0%的邏輯設(shè)計(jì)和編碼錯(cuò)誤。(一]桌前檢查由程序員自己檢查自己編寫的程序,程序員在程序通過(guò)編譯之后,進(jìn)行單元測(cè)試設(shè)計(jì)之前,對(duì)源程序代碼進(jìn)行分析、檢驗(yàn),并補(bǔ)充相關(guān)的文檔,目的是發(fā)現(xiàn)程序中的錯(cuò)誤。(二]代碼審查代碼審查是由若干程序員和測(cè)試員組成一個(gè)審查小組,通過(guò)閱讀、討論和爭(zhēng)議,對(duì)程序進(jìn)行靜態(tài)分析的過(guò)程,代碼審查分兩步。第一步,小組負(fù)責(zé)人提前把設(shè)計(jì)規(guī)格說(shuō)明書、控制流程圖、程序文本及有關(guān)要求、規(guī)范等分發(fā)給小組成員,作為審查的依據(jù)。小組成員在充分閱讀這些材料后,進(jìn)入審查的第二步,召開(kāi)程序?qū)彶闀?huì)。(三]走查走查與代碼審查基本相同,其過(guò)程分為兩步,第一步也把材料先發(fā)給走查小組每個(gè)成員,讓他們認(rèn)真研究程序,然后再開(kāi)會(huì)。開(kāi)會(huì)的程序與代碼審查不同,不是簡(jiǎn)單地讀程序和對(duì)照錯(cuò)誤檢查表進(jìn)行檢查,而是讓與會(huì)者“充當(dāng)”計(jì)算機(jī),即首先由測(cè)試組成員為被測(cè)程序準(zhǔn)備一批有代表性的測(cè)試用例,提交給走查小組。走查小組開(kāi)會(huì),集體扮演計(jì)算機(jī)角色,讓測(cè)試用例沿程序的邏輯運(yùn)行一遍,隨時(shí)記錄程序的蹤跡,供分析和討論用。三.二.五
其他白盒測(cè)試方法簡(jiǎn)介一.域測(cè)試域測(cè)試是一種基于程序結(jié)構(gòu)的測(cè)試方法,
域測(cè)試正是在分析輸入域的基礎(chǔ)上,選擇適當(dāng)?shù)臏y(cè)試點(diǎn)以后進(jìn)行測(cè)試的。二.符號(hào)測(cè)試符號(hào)測(cè)試的基本思想是允許程序的輸入不僅僅是具體的數(shù)值數(shù)據(jù),而且包括符號(hào)值,這一方法也因此而得名,
三.Z路徑覆蓋分析程序中的路徑是指檢驗(yàn)程序從入口開(kāi)始,執(zhí)行過(guò)程中經(jīng)歷的各個(gè)語(yǔ)句,直到出口,
四.程序變異程序變異方法是一種錯(cuò)誤驅(qū)動(dòng)測(cè)試,所謂錯(cuò)誤驅(qū)動(dòng)測(cè)試方法,是指該方法是針對(duì)某類特定程序錯(cuò)誤的。經(jīng)過(guò)多年的測(cè)試?yán)碚撗芯亢蛙浖y(cè)試的實(shí)踐,人們逐漸發(fā)現(xiàn)要想找出程序中所有的錯(cuò)誤幾乎是不可能的。比較現(xiàn)實(shí)的解決辦法是將錯(cuò)誤的搜索范圍盡可能地縮小,以利于專門測(cè)試某類錯(cuò)誤是否存在。錯(cuò)誤驅(qū)動(dòng)測(cè)試主要有兩種,即程序強(qiáng)變異和程序弱變異。
最后,歸納一下白盒測(cè)試中各種測(cè)試方法的應(yīng)用策略,在白盒測(cè)試中,可以使用各種測(cè)試方法的綜合策略如下。(一]在測(cè)試中,應(yīng)盡量先使用工具進(jìn)行靜態(tài)結(jié)構(gòu)分析。(二)測(cè)試中可采取先靜態(tài)后動(dòng)態(tài)的組合方式:先進(jìn)行靜態(tài)結(jié)構(gòu)分析、代碼檢查,再進(jìn)行覆蓋率測(cè)試。
(三]利用靜態(tài)分析的結(jié)果作為導(dǎo)引,通過(guò)代碼檢查和動(dòng)態(tài)測(cè)試的方式對(duì)靜態(tài)發(fā)現(xiàn)結(jié)果進(jìn)行進(jìn)一步的確認(rèn),使測(cè)試工作更為有效,(四)覆蓋率測(cè)試是白盒測(cè)試的重點(diǎn),一般可使用基本路徑測(cè)試法達(dá)到語(yǔ)句覆蓋標(biāo)準(zhǔn);對(duì)于軟件的重點(diǎn)模塊,應(yīng)使用多種覆蓋率標(biāo)準(zhǔn)衡量代碼的覆蓋率。
(五]在不同的測(cè)試節(jié)點(diǎn),測(cè)試的側(cè)重點(diǎn)不同:在單元測(cè)試階段,以代碼檢查、邏輯覆蓋為主;在集成測(cè)試階段,需要增加靜態(tài)結(jié)構(gòu)分析等;在系統(tǒng)測(cè)試階段,應(yīng)根據(jù)黑盒測(cè)試的結(jié)果,采取相應(yīng)的白盒測(cè)試,三.3黑盒測(cè)試
黑盒測(cè)試也稱功能測(cè)試或數(shù)據(jù)驅(qū)動(dòng)測(cè)試,前提是已知產(chǎn)品所具有的功能,通過(guò)測(cè)試來(lái)檢測(cè)每個(gè)功能是否都正常使用,
黑盒測(cè)試方法主要有等價(jià)類劃分、邊界值分析、因果圖、錯(cuò)誤推測(cè)、功能圖法等,主要用于軟件確認(rèn)測(cè)試。三.3.一
等價(jià)類劃分法等價(jià)類劃分是一種典型的黑盒測(cè)試方法,使用這一方法時(shí),完全不考慮程序的內(nèi)部結(jié)構(gòu),只依據(jù)程序的規(guī)格說(shuō)明來(lái)設(shè)計(jì)測(cè)試用例。由于不可能用所有可以輸入的數(shù)據(jù)來(lái)測(cè)試程序,而只能從全部可供輸入的數(shù)據(jù)中選擇一個(gè)自己進(jìn)行測(cè)試。如何選擇適當(dāng)?shù)淖蛹蛊浔M可能多地發(fā)現(xiàn)錯(cuò)誤,解決的辦法之一就是等價(jià)類劃分。
首先,把數(shù)目極多的輸入數(shù)據(jù),包括有效的和無(wú)效的,劃分為若干等價(jià)類,而所謂等價(jià)類,是指某個(gè)輸入域的子集合,在該子集合中,各個(gè)輸入數(shù)據(jù)對(duì)于揭露程序中的錯(cuò)誤都是等效的。并合理地假定:測(cè)試某等價(jià)類的代表值就等價(jià)于對(duì)這一類其他值的測(cè)試。因此,可以把全部輸入數(shù)據(jù)合理劃分為若干等價(jià)類,在每一個(gè)等價(jià)類中取一個(gè)數(shù)據(jù)作為測(cè)試的輸入條件,就可用少量代表性測(cè)試數(shù)據(jù),取得較好的測(cè)試結(jié)果。等價(jià)類的劃分有以下兩種不同的情況,①有效等價(jià)類②無(wú)效等價(jià)類劃分等價(jià)類的原則如下,①按區(qū)間劃分②按數(shù)值劃分③按數(shù)值集合劃分④按限制條件或規(guī)則劃分
在確立了等價(jià)類之后,建立等價(jià)類表,列出所有劃分出的等價(jià)類,如表三-六所示,
再?gòu)膭澐殖龅牡葍r(jià)類中按以下原則選擇測(cè)試用例,①為每一個(gè)等價(jià)類規(guī)定一個(gè)惟一的編號(hào)。②設(shè)計(jì)一個(gè)新的測(cè)試用例,使其盡可能多地覆蓋尚未覆蓋的有效等價(jià)類;重復(fù)這一步驟,直到所有的有效等價(jià)類都被覆蓋為止。③設(shè)計(jì)一個(gè)新的測(cè)試用例,使其僅覆蓋一個(gè)無(wú)效等價(jià)類,重復(fù)這一步驟,直到所有的無(wú)效等價(jià)類都被覆蓋為止。三.3.二
邊界值分析法人們從長(zhǎng)期的測(cè)試工作經(jīng)驗(yàn)得知,大量的錯(cuò)誤是發(fā)生在輸入或輸出范圍的邊界上,而不是在輸入范圍的內(nèi)部,因此針對(duì)各種邊界情況設(shè)計(jì)測(cè)試用例,可以查出更多的錯(cuò)誤。使用邊界值分析方法設(shè)計(jì)測(cè)試用例,首先應(yīng)確定邊界情況。
選擇測(cè)試用例的原則如下,①如果輸入條件規(guī)定了值的范圍,則應(yīng)該取剛達(dá)到這個(gè)范圍的邊界值,以及剛剛超過(guò)這個(gè)范圍邊界的值作為測(cè)試輸入數(shù)據(jù)。②如果輸入條件規(guī)定了值的個(gè)數(shù),則用最大個(gè)數(shù)、最小個(gè)數(shù)、比最大個(gè)數(shù)多一個(gè)、比最小個(gè)數(shù)少1個(gè)的數(shù)作為測(cè)試數(shù)據(jù)。③根據(jù)規(guī)格說(shuō)明的每一個(gè)輸出條件,使用規(guī)則一,④根據(jù)規(guī)格說(shuō)明的每一個(gè)輸出條件,使用規(guī)則二。⑤如果程序的規(guī)格說(shuō)明給出的輸入域或輸出域是有序集合(如有序表、順序文件等],則應(yīng)選取集合的第一個(gè)和最后一個(gè)元素作為測(cè)試用例。⑥如果程序用了一個(gè)內(nèi)部結(jié)構(gòu),應(yīng)該選取這個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu)的邊界值作為測(cè)試用例,⑦分析規(guī)格說(shuō)明,找出其他可能的邊界條件。三.3.3錯(cuò)誤推測(cè)法人們也可以靠經(jīng)驗(yàn)和直覺(jué)推測(cè)程序中可能存在的各種錯(cuò)誤,從而有針對(duì)性地編寫檢查這些錯(cuò)誤的例子,這就是錯(cuò)誤推測(cè)法。錯(cuò)誤推測(cè)法的基本想法是:列舉出程序中所有可能有的錯(cuò)誤和容易發(fā)生錯(cuò)誤的特殊情況,根據(jù)它們選擇測(cè)試用例。三.3.四
因果圖法因果圖方法最終生成的就是判定表,它適合于檢查程序輸入條件的各種組合情況。利用因果圖生成測(cè)試用例的基本步驟如下。①分析軟件規(guī)格說(shuō)明的描述中哪些是原因,哪些是結(jié)果。原因是輸入條件或輸入條件的等價(jià)類,結(jié)果是輸出條件。②分析軟件規(guī)格說(shuō)明描述中的語(yǔ)義,找出原因與結(jié)果之間、原因與原因之間對(duì)應(yīng)的關(guān)系,根據(jù)這些關(guān)系,畫出因果圖,③標(biāo)明約束條件。由于語(yǔ)法或環(huán)境的限制,有些原因和結(jié)果的組合情況是不可能出現(xiàn)的。為表明這些特定的情況,在因果圖上使用若干標(biāo)準(zhǔn)的符號(hào)標(biāo)明約束條件。④把因果圖轉(zhuǎn)換成判定表,⑤為判定表中的每一列設(shè)計(jì)測(cè)試用例。通常在因果圖中,用Ci表示原因,Ei表示結(jié)果,其基本符號(hào)如圖三-一二所示。圖三-一二
因果圖的基本符號(hào)
對(duì)于黑盒測(cè)試方法來(lái)說(shuō),以上四種方法是基本的測(cè)試方法,除此之外還有判定表驅(qū)動(dòng)法、正交試驗(yàn)法、功能圖法和場(chǎng)景法等,在實(shí)際測(cè)試中,往往是綜合使用各種方法才能有效地提高測(cè)試效率和測(cè)試覆蓋率,這就需要認(rèn)真掌握這些方法的原理,積累更多的測(cè)試經(jīng)驗(yàn),以有效地提高測(cè)試水平。
以下是各種測(cè)試方法選擇的綜合策略,可供讀者在實(shí)際應(yīng)用過(guò)程中參考,①首先進(jìn)行等價(jià)類劃分,包括輸入條件和輸出條件的等價(jià)劃分,將無(wú)限測(cè)試變成有限測(cè)試,這是減少工作量和提高測(cè)試效率最有效的方法。②在任何情況下都必須使用邊界值分析方法。經(jīng)驗(yàn)表明,用這種方法設(shè)計(jì)出的測(cè)試用例發(fā)現(xiàn)程序錯(cuò)誤的能力最強(qiáng)。③可以用錯(cuò)誤推測(cè)法追加一些測(cè)試用例,這需要依靠測(cè)試工程師的智慧和經(jīng)驗(yàn),④對(duì)照程序邏輯,檢查已設(shè)計(jì)出的測(cè)試用例的邏輯覆蓋程度。如果沒(méi)有達(dá)到要求的覆蓋標(biāo)準(zhǔn),應(yīng)當(dāng)再補(bǔ)充足夠的測(cè)試用例。⑤如果程序的功能說(shuō)明中含有輸入條件的組合情況,則一開(kāi)始就可選用因果圖法和判定表驅(qū)動(dòng)法。⑥對(duì)于參數(shù)配置類的軟件,要用正交試驗(yàn)法選擇較少的組合方式達(dá)到最佳效果,⑦功能圖法也是很好的測(cè)試用例設(shè)計(jì)方法,我們可以通過(guò)不同時(shí)期條件的有效性設(shè)計(jì)不同的測(cè)試數(shù)據(jù)。⑧對(duì)于業(yè)務(wù)流清晰的系統(tǒng),可以利用場(chǎng)景法貫穿整個(gè)測(cè)試案例過(guò)程,在案例中綜合使用各種測(cè)試方法。三.3.五
場(chǎng)景法現(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í)行。
用例場(chǎng)景用來(lái)描述流經(jīng)用例的路徑,從用例開(kāi)始到結(jié)束遍歷這條路徑上所有基本流和備選流,一.基本流和備選流
如圖三-1四所示,圖中經(jīng)過(guò)用例的每條路徑都用基本流和備選流來(lái)表示,直黑線表示基本流,是經(jīng)過(guò)用例的最簡(jiǎn)單的路徑。備選流用不同的色彩表示,一個(gè)備選流可能從基本流開(kāi)始,在某個(gè)特定條件下執(zhí)行,然后重新加入基本流中(如備選流1和3];也可能起源于另一個(gè)備選流(如備選流二),或者終止用例而不再重新加入到某個(gè)流(如備選流2和4)。圖三-一四
基本流和備選流二.ATM例子(一]例子描述圖三-1五所示是ATM例子的流程示意圖,圖三-一五ATM流程示意圖(二]場(chǎng)景設(shè)計(jì)表三-八所示是生成的場(chǎng)景,(三]用例設(shè)計(jì)對(duì)于這七個(gè)場(chǎng)景中的每一個(gè)場(chǎng)景都需要確定測(cè)試用例,可以采用矩陣或決策表來(lái)確定和管理測(cè)試用例。下面顯示了一種通用格式,其中各行代表各個(gè)測(cè)試用例,而各列則代表測(cè)試用例的信息。本示例中,對(duì)于每個(gè)測(cè)試用例,存在一個(gè)測(cè)試用例ID、條件(或說(shuō)明)、測(cè)試用例中涉及的所有數(shù)據(jù)元素(作為輸入或已經(jīng)存在于數(shù)據(jù)庫(kù)中)以及預(yù)期結(jié)果。(四]數(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ù),如表三-一0所示。三.四
測(cè)試用例設(shè)計(jì)
三.四.一
測(cè)試用例的基本概念簡(jiǎn)單地說(shuō),測(cè)試用例就是設(shè)計(jì)一個(gè)情況,軟件程序在這種情況下,必須能夠正常運(yùn)行并且達(dá)到程序所設(shè)計(jì)的執(zhí)行結(jié)果,
如果程序在這種情況下不能正常運(yùn)行,而且這種問(wèn)題會(huì)重復(fù)發(fā)生,那就表示已經(jīng)測(cè)出軟件有缺陷,這時(shí)候就必須將這個(gè)問(wèn)題標(biāo)示出來(lái),并且輸入到問(wèn)題跟蹤系統(tǒng)內(nèi),通知軟件開(kāi)發(fā)人員,軟件開(kāi)發(fā)人員接到通知后,將問(wèn)題修改完成于下一個(gè)測(cè)試版本內(nèi),測(cè)試工程師取得新的測(cè)試版本后,必須利用同一個(gè)測(cè)試用例來(lái)測(cè)試這個(gè)問(wèn)題,確保該問(wèn)題已修改完成。
在測(cè)試時(shí),不可能進(jìn)行窮舉測(cè)試,為了節(jié)省時(shí)間和資源,提高測(cè)試效率,必須要從數(shù)量極大的可用測(cè)試數(shù)據(jù)中精心挑選出具有代表性或特殊性的測(cè)試數(shù)據(jù)來(lái)進(jìn)行測(cè)試,
使用測(cè)試用例的好處主要體現(xiàn)在以下幾個(gè)方面,①在開(kāi)始實(shí)施測(cè)試之前設(shè)計(jì)好測(cè)試用例,可以避免盲目測(cè)試并提高測(cè)試效率。②測(cè)試用例的使用令軟件測(cè)試的實(shí)施重點(diǎn)突出、目的明確。③在軟件版本更新后只需修正少部分的測(cè)試用例便可開(kāi)展測(cè)試工作,降低工作強(qiáng)度,縮短項(xiàng)目周期,④功能模塊的通用化和復(fù)用化使軟件易于開(kāi)發(fā),而測(cè)試用例的通用化和復(fù)用化則會(huì)使軟件測(cè)試易于開(kāi)展,并隨著測(cè)試用例的不斷精化其效率也不斷提高。
測(cè)試用例主要有如下幾種,①功能測(cè)試用例。包含功能測(cè)試、健壯性測(cè)試、可靠性測(cè)試。②性能測(cè)試用例。包含性能測(cè)試、壓力測(cè)試、強(qiáng)度測(cè)試。③集成測(cè)試用例。包含接口測(cè)試、健壯性測(cè)試、可靠性測(cè)試。④安全測(cè)試用例,安全測(cè)試用例。⑤用戶界面測(cè)試用例。用戶界面測(cè)試用例、少量功能測(cè)試用例。⑥安裝/反安裝測(cè)試用例。安裝/反安裝測(cè)試用例。測(cè)試種類、階段和用例的關(guān)系如表三-一1所示。
測(cè)試工作和開(kāi)發(fā)通常一同進(jìn)行,所以在完成測(cè)試計(jì)劃編寫后,就可以進(jìn)行用例的編寫工作了,測(cè)試和開(kāi)發(fā)的對(duì)應(yīng)關(guān)系如表三-一二所示。三.四.二
測(cè)試用例的設(shè)計(jì)步驟測(cè)試按照階段分為單元測(cè)試、集成測(cè)試以及系統(tǒng)測(cè)試,而各階段都有相應(yīng)的測(cè)試用例。這里,以單元測(cè)試的用例設(shè)計(jì)為依據(jù)來(lái)說(shuō)明測(cè)試用例的設(shè)計(jì)步驟。
單元測(cè)試說(shuō)明實(shí)際上由一系列單元測(cè)試用例組成,每個(gè)測(cè)試用例應(yīng)該包含以下四個(gè)關(guān)鍵元素,①被測(cè)單元模塊初始狀態(tài)聲明,即測(cè)試用例的開(kāi)始狀態(tài)(僅適用于被測(cè)單元維持了調(diào)用間狀態(tài)的情況]。②被測(cè)單元的輸入,包含由被測(cè)單元讀入的任何外部數(shù)據(jù)值。③該測(cè)試用例實(shí)際測(cè)試的代碼,用被測(cè)單元的功能和測(cè)試用例設(shè)計(jì)中使用的分析來(lái)說(shuō)明,如單元中哪一個(gè)決策條件被測(cè)試,④測(cè)試用例的期望輸出結(jié)果。測(cè)試用例的期望輸出結(jié)果總是應(yīng)該在測(cè)試進(jìn)行之前在測(cè)試說(shuō)明中定義。下面說(shuō)明測(cè)試用例的設(shè)計(jì)步驟,(一]步驟1:使被測(cè)單元運(yùn)行這個(gè)階段適合的技術(shù)有:①模塊設(shè)計(jì)導(dǎo)出的測(cè)試;②對(duì)等區(qū)間劃分。(二]步驟2:正面測(cè)試(PositiveTesting)這個(gè)階段適合的技術(shù)有:①設(shè)計(jì)說(shuō)明導(dǎo)出的測(cè)試;②等價(jià)類分析;③狀態(tài)轉(zhuǎn)換測(cè)試,(三]步驟3:負(fù)面測(cè)試(NegativeTesting)這個(gè)階段適合的技術(shù)有:①錯(cuò)誤猜測(cè);②邊界值分析;
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國(guó)POE產(chǎn)業(yè)發(fā)展現(xiàn)狀及前景趨勢(shì)分析報(bào)告
- 2024年銷售代理合同:區(qū)域獨(dú)家代理權(quán)授予條件
- 2025年外研銜接版第一冊(cè)生物上冊(cè)月考試卷含答案
- 專項(xiàng)工程合同范本(2024年版)2篇
- 2025年人教五四新版第一冊(cè)歷史上冊(cè)月考試卷含答案
- 2025年上外版選修5化學(xué)下冊(cè)月考試卷含答案
- 2025年度交通協(xié)管員應(yīng)急指揮培訓(xùn)及聘用協(xié)議3篇
- 人教版八年級(jí)數(shù)學(xué)下冊(cè)《18.1平行四邊形的性質(zhì)》同步測(cè)試題含答案
- 2024年版旅游代理居間合同協(xié)議書3篇
- 2024年遼河石油職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測(cè)驗(yàn)歷年參考題庫(kù)(頻考版)含答案解析
- JJG 1149-2022電動(dòng)汽車非車載充電機(jī)(試行)
- 工程款支付報(bào)審表
- 《項(xiàng)目施工組織設(shè)計(jì)開(kāi)題報(bào)告(含提綱)3000字》
- ICU常見(jiàn)藥物課件
- CNAS實(shí)驗(yàn)室評(píng)審不符合項(xiàng)整改報(bào)告
- 農(nóng)民工考勤表(模板)
- 承臺(tái)混凝土施工技術(shù)交底
- 臥床患者更換床單-軸線翻身
- 計(jì)量基礎(chǔ)知識(shí)培訓(xùn)教材201309
- 阿特拉斯基本擰緊技術(shù)ppt課件
- 新課程理念下的班主任工作藝術(shù)
評(píng)論
0/150
提交評(píng)論