軟件測試的方法和技術(shù)_第1頁
軟件測試的方法和技術(shù)_第2頁
軟件測試的方法和技術(shù)_第3頁
軟件測試的方法和技術(shù)_第4頁
軟件測試的方法和技術(shù)_第5頁
已閱讀5頁,還剩100頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第三

章軟件測試的方法和技術(shù)三.一

軟件測試方法概述3.二

白盒測試3.3黑盒測試3.四

測試用例設(shè)計三.一

軟件測試方法概述

軟件測試的種類大致可分為人工測試和基于計算機的測試,而基于計算機的測試又可分為黑盒測試和白盒測試。一.黑盒測試黑盒測試是根據(jù)軟件產(chǎn)品的功能設(shè)計規(guī)格,在計算機上進行測試,以證實每個已經(jīng)實現(xiàn)的功能是否符合要求。黑盒測試意味著測試要在軟件的接口處進行。二.白盒測試白盒測試是根據(jù)軟件產(chǎn)品的內(nèi)部工作過程,在計算機上進行測試,以證實每種內(nèi)部操作是否符合設(shè)計規(guī)格要求,所有內(nèi)部成分是否已經(jīng)過檢查,白盒測試把測試對象看做一個打開的盒子,允許測試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息,設(shè)計或選擇測試用例,對程序所有邏輯路徑進行測試。通過在不同點檢查程序的狀態(tài),確定實際的狀態(tài)是否與預(yù)期的狀態(tài)一致。三.二

白盒測試

白盒測試也稱為結(jié)構(gòu)測試或邏輯驅(qū)動測試,前提是知道產(chǎn)品內(nèi)部工作過程,可通過測試來檢測產(chǎn)品內(nèi)部動作是否按照規(guī)格說明書的規(guī)定正常進行,按照程序內(nèi)部的結(jié)構(gòu)測試程序,檢驗程序中的每條通路是否都能夠按預(yù)定要求正確工作,而不管產(chǎn)品的功能,主要用于軟件驗證,

白盒測試方法又可分為靜態(tài)測試和動態(tài)測試,靜態(tài)測試是一種不通過執(zhí)行程序而進行測試的技術(shù),其關(guān)鍵功能是檢查軟件的表示和描述是否一致,沒有沖突或者沒有歧義。它瞄準的是糾正軟件系統(tǒng)在描述、表示和規(guī)格上的錯誤,是任何進一步測試的前提。而動態(tài)測試需要軟件的執(zhí)行,當軟件系統(tǒng)在模擬的或真實的環(huán)境中執(zhí)行之前、之中和之后,對軟件系統(tǒng)行為的分析是動態(tài)測試的主要特點。它顯示了一個系統(tǒng)在檢查狀態(tài)下是正確還是不正確。

白盒測試的動態(tài)測試要根據(jù)程序的控制結(jié)構(gòu)設(shè)計測試用例,其原則是:(一]保證一個模塊中的所有獨立路徑至少被使用一次;(二)對所有邏輯值均需測試true和false;(三)在上下邊界及可操作范圍內(nèi)運行所有循環(huán);(四)檢查內(nèi)部數(shù)據(jù)結(jié)構(gòu)以確保其有效性,

下面將介紹幾種實用的白盒測試用例設(shè)計方法,包括程序插樁、邏輯覆蓋、基本路徑測試等,三.二.一

程序插樁在軟件動態(tài)測試中,程序插樁是一種基本的測試手段,有著廣泛的應(yīng)用。1.方法簡介程序插樁方法是借助往被測程序中插入操作,來實現(xiàn)測試目的的方法。

如果我們想要了解一個程序在某次運行中所有可執(zhí)行語句被覆蓋的情況,或是每個語句的實際執(zhí)行次數(shù),最好的辦法是利用插樁技術(shù),這里僅以計算整數(shù)X和整數(shù)Y的最大公約數(shù)程序為例,說明插樁方法的要點。圖三-3給出了這一程序的流程圖。圖三-3插樁后求最大公約數(shù)程序的流程圖設(shè)計插樁程序時需要考慮的問題包括:①探測哪些信息;②在程序的什么部位設(shè)置探測點;③需要設(shè)置多少個探測點,二.斷言語句在程序中特定部位插入某些用以判斷變量特性的語句,使得程序執(zhí)行中這些語句得以證實,從而使程序的運行特性得到證實,我們把插入的這些語句稱為斷言。這一做法是程序正確性證明的基本步驟,盡管算不上嚴格的證明,但方法本身仍然是很實用的。下面以求兩個非負數(shù)NUM和DEN之商的Wensley迭代算法為例,對斷言語句的作用做一簡要說明。圖三-五

計算非負數(shù)之商的迭代程序

圖三-六

插入斷言后的迭代程序三.二.2邏輯覆蓋邏輯覆蓋是以程序內(nèi)部的邏輯結(jié)構(gòu)為基礎(chǔ)的設(shè)計測試用例的技術(shù),是通過對程序邏輯結(jié)構(gòu)的遍歷實現(xiàn)程序的覆蓋,它是一系列測試過程的總稱,這組測試過程逐漸進行越來越完整的通路測試,這一方法要求測試人員對程序的邏輯結(jié)構(gòu)有清楚的了解,甚至要能掌握源程序的所有細節(jié)。它屬于動態(tài)測試。

從覆蓋源程序語句的詳細程度分析,邏輯覆蓋標準有語句覆蓋、判定覆蓋、條件覆蓋、條件判定組合覆蓋、多條件覆蓋和修正條件判定覆蓋,為便于理解,使用如下所示的程序,圖三-七所示的是其流程圖。圖三-七

參考例子流程圖intfunction一(boola,boolb,boolc]{intx;x=0;if[a&&(b||c))x=1;returnx;}一.語句覆蓋為了暴露程序中的錯誤,程序中的每條語句至少應(yīng)該執(zhí)行一次,所以,語句覆蓋的含義是:選擇足夠多的測試數(shù)據(jù),使被測程序中每條語句至少執(zhí)行一次。二.判定覆蓋比語句覆蓋稍強的覆蓋標準是判定覆蓋,按判定覆蓋準則進行測試是指,設(shè)計若干測試用例,運行被測程序,使得程序中每個判斷的取真分支和取假分支至少經(jīng)歷一次,即判斷的真假值均曾被滿足。判定覆蓋又稱為分支覆蓋。三.條件覆蓋在設(shè)計程序中,一個判定語句是由多個條件組合而成的復(fù)合判定,條件覆蓋的含義是:構(gòu)造一組測試用例,使得每一判定語句中每個邏輯條件的可能值至少滿足一次。四.條件判定組合覆蓋條件判定組合覆蓋的含義是:設(shè)計足夠的測試用例,使得判定中每個條件的所有可能(真/假]至少出現(xiàn)一次,并且每個判定本身的判定結(jié)果(真/假)也至少出現(xiàn)一次,五.多條件覆蓋多條件覆蓋也稱為條件組合覆蓋,它的含義是:設(shè)計足夠的測試用例,使得每個判定中條件的各種可能組合都至少出現(xiàn)一次,顯然滿足多條件覆蓋的測試用例是一定滿足判定覆蓋、條件覆蓋和條件判定組合覆蓋的。六.修正條件判定覆蓋它要求滿足兩個條件:首先,每一個程序模塊的入口和出口點都要考慮至少被調(diào)用一次,每個程序的判定到所有可能的結(jié)果值要至少轉(zhuǎn)換一次;其次,程序的判定被分解為通過邏輯操作符(and、or]連接的bool條件,每個條件對于判定的結(jié)果值是獨立的,七.測試覆蓋準則(一]Foster的ESTCA覆蓋準則前面所介紹的邏輯覆蓋其出發(fā)點似乎是合理的,所謂“覆蓋”,就是想要做到全面而無遺漏。但是,事實表明,它并不能真的做到無遺漏。

K.A.Foster從測試工作實踐的教訓出發(fā),吸收了計算機硬件的測試原理,提出了一種經(jīng)驗型的測試覆蓋準則。(二]Woodward等人的層次LCSAJ覆蓋準則

Woodward等人曾經(jīng)指出結(jié)構(gòu)覆蓋的一些準則,如分支覆蓋或路徑覆蓋,都不足以保證測試數(shù)據(jù)的有效性,為此,他們提出了一種層次LCSAJ覆蓋準則。三.二.3基本路徑測試上節(jié)的例子是個比較簡單的程序段,只有兩條路徑,但在實際問題中,即使一個不太復(fù)雜的程序,其路徑的組合都是一個龐大的數(shù)字。如果把覆蓋的路徑數(shù)壓縮到一定限度內(nèi),例如,程序中的循環(huán)體只執(zhí)行零次和一次,就成為基本路徑測試。設(shè)計出的測試用例要保證在測試中程序的每一條可執(zhí)行語句至少執(zhí)行一次。一.程序的控制流圖控制流圖是描述程序控制流的一種圖示方式,其中基本的控制結(jié)構(gòu)對應(yīng)的圖形符號如圖三-八所示。在圖3-8所示的圖形符號中,圓圈稱為控制流圖的一個結(jié)點,它表示一個或多個無分支的語句或源程序語句。圖三-八

控制流圖的圖形符號

圖三-八(a]所示的是一個程序的流程圖,它可以映射成圖(b)所示的控制流圖,圖三-八

程序流程圖和對應(yīng)的控制流圖二.計算程序環(huán)路復(fù)雜性進行程序的基本路徑測試時,程序的環(huán)路復(fù)雜性給出了程序基本路徑集合中的獨立路徑條數(shù),這是確保程序中每個可執(zhí)行語句至少執(zhí)行一次所必須的測試用例數(shù)目的上界,所謂獨立路徑,是指包括若干未曾處理的語句或條件的一條路徑。

基本路徑集不是惟一的,對于給定的控制流圖,可以得到不同的基本路徑集,通常環(huán)路復(fù)雜性可用以下三種方法求得。①將環(huán)路復(fù)雜性定義為控制流圖中的區(qū)域數(shù)。②設(shè)E為控制流圖的邊數(shù),N為圖的結(jié)點數(shù),則定義環(huán)路的復(fù)雜性為V[G)=E?N+二。③若設(shè)P為控制流圖中的判定結(jié)點數(shù),則有V(G)=P+一。三.基本路徑測試法步驟基本路徑測試法適用于模塊的詳細設(shè)計及源程序,其主要步驟如下,①以詳細設(shè)計或源代碼作為基礎(chǔ),導出程序的控制流圖。②計算得到的控制流圖G的環(huán)路復(fù)雜性V(G]。③確定線性無關(guān)的路徑的基本集。④生成測試用例,確保基本路徑集中每條路徑的執(zhí)行。三.二.四

程序的靜態(tài)測試一.源程序靜態(tài)分析在靜態(tài)結(jié)構(gòu)分析中,測試者通過使用測試工具分析程序源代碼的系統(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ù)表等各類圖形圖表,可以清晰地標識整個軟件系統(tǒng)的組成結(jié)構(gòu),使其便于閱讀與理解,然后可以通過分析這些圖表,檢查軟件有沒有存在缺陷或錯誤,

通常采用以下一些方法進行源程序的靜態(tài)分析,(一]生成各種引用表①標號交叉引用表②變量交叉引用表③子程序(宏、函數(shù))引用表④等價表⑤常數(shù)表(二]錯誤靜態(tài)分析錯誤靜態(tài)分析主要用于確定在源程序中是否有某類錯誤或“危險”結(jié)構(gòu),①類型和單位分析②引用分析③表達式分析④接口分析二.人工測試靜態(tài)分析中進行人工測試的主要方法有桌前檢查、代碼審查和走查,經(jīng)驗表明,使用這種方法能夠有效地發(fā)現(xiàn)三0%~七0%的邏輯設(shè)計和編碼錯誤。(一]桌前檢查由程序員自己檢查自己編寫的程序,程序員在程序通過編譯之后,進行單元測試設(shè)計之前,對源程序代碼進行分析、檢驗,并補充相關(guān)的文檔,目的是發(fā)現(xiàn)程序中的錯誤。(二]代碼審查代碼審查是由若干程序員和測試員組成一個審查小組,通過閱讀、討論和爭議,對程序進行靜態(tài)分析的過程,代碼審查分兩步。第一步,小組負責人提前把設(shè)計規(guī)格說明書、控制流程圖、程序文本及有關(guān)要求、規(guī)范等分發(fā)給小組成員,作為審查的依據(jù)。小組成員在充分閱讀這些材料后,進入審查的第二步,召開程序?qū)彶闀#ㄈ齗走查走查與代碼審查基本相同,其過程分為兩步,第一步也把材料先發(fā)給走查小組每個成員,讓他們認真研究程序,然后再開會。開會的程序與代碼審查不同,不是簡單地讀程序和對照錯誤檢查表進行檢查,而是讓與會者“充當”計算機,即首先由測試組成員為被測程序準備一批有代表性的測試用例,提交給走查小組。走查小組開會,集體扮演計算機角色,讓測試用例沿程序的邏輯運行一遍,隨時記錄程序的蹤跡,供分析和討論用。三.二.五

其他白盒測試方法簡介一.域測試域測試是一種基于程序結(jié)構(gòu)的測試方法,

域測試正是在分析輸入域的基礎(chǔ)上,選擇適當?shù)臏y試點以后進行測試的。二.符號測試符號測試的基本思想是允許程序的輸入不僅僅是具體的數(shù)值數(shù)據(jù),而且包括符號值,這一方法也因此而得名,

三.Z路徑覆蓋分析程序中的路徑是指檢驗程序從入口開始,執(zhí)行過程中經(jīng)歷的各個語句,直到出口,

四.程序變異程序變異方法是一種錯誤驅(qū)動測試,所謂錯誤驅(qū)動測試方法,是指該方法是針對某類特定程序錯誤的。經(jīng)過多年的測試理論研究和軟件測試的實踐,人們逐漸發(fā)現(xiàn)要想找出程序中所有的錯誤幾乎是不可能的。比較現(xiàn)實的解決辦法是將錯誤的搜索范圍盡可能地縮小,以利于專門測試某類錯誤是否存在。錯誤驅(qū)動測試主要有兩種,即程序強變異和程序弱變異。

最后,歸納一下白盒測試中各種測試方法的應(yīng)用策略,在白盒測試中,可以使用各種測試方法的綜合策略如下。(一]在測試中,應(yīng)盡量先使用工具進行靜態(tài)結(jié)構(gòu)分析。(二)測試中可采取先靜態(tài)后動態(tài)的組合方式:先進行靜態(tài)結(jié)構(gòu)分析、代碼檢查,再進行覆蓋率測試。

(三]利用靜態(tài)分析的結(jié)果作為導引,通過代碼檢查和動態(tài)測試的方式對靜態(tài)發(fā)現(xiàn)結(jié)果進行進一步的確認,使測試工作更為有效,(四)覆蓋率測試是白盒測試的重點,一般可使用基本路徑測試法達到語句覆蓋標準;對于軟件的重點模塊,應(yīng)使用多種覆蓋率標準衡量代碼的覆蓋率。

(五]在不同的測試節(jié)點,測試的側(cè)重點不同:在單元測試階段,以代碼檢查、邏輯覆蓋為主;在集成測試階段,需要增加靜態(tài)結(jié)構(gòu)分析等;在系統(tǒng)測試階段,應(yīng)根據(jù)黑盒測試的結(jié)果,采取相應(yīng)的白盒測試,三.3黑盒測試

黑盒測試也稱功能測試或數(shù)據(jù)驅(qū)動測試,前提是已知產(chǎn)品所具有的功能,通過測試來檢測每個功能是否都正常使用,

黑盒測試方法主要有等價類劃分、邊界值分析、因果圖、錯誤推測、功能圖法等,主要用于軟件確認測試。三.3.一

等價類劃分法等價類劃分是一種典型的黑盒測試方法,使用這一方法時,完全不考慮程序的內(nèi)部結(jié)構(gòu),只依據(jù)程序的規(guī)格說明來設(shè)計測試用例。由于不可能用所有可以輸入的數(shù)據(jù)來測試程序,而只能從全部可供輸入的數(shù)據(jù)中選擇一個自己進行測試。如何選擇適當?shù)淖蛹?,使其盡可能多地發(fā)現(xiàn)錯誤,解決的辦法之一就是等價類劃分。

首先,把數(shù)目極多的輸入數(shù)據(jù),包括有效的和無效的,劃分為若干等價類,而所謂等價類,是指某個輸入域的子集合,在該子集合中,各個輸入數(shù)據(jù)對于揭露程序中的錯誤都是等效的。并合理地假定:測試某等價類的代表值就等價于對這一類其他值的測試。因此,可以把全部輸入數(shù)據(jù)合理劃分為若干等價類,在每一個等價類中取一個數(shù)據(jù)作為測試的輸入條件,就可用少量代表性測試數(shù)據(jù),取得較好的測試結(jié)果。等價類的劃分有以下兩種不同的情況,①有效等價類②無效等價類劃分等價類的原則如下,①按區(qū)間劃分②按數(shù)值劃分③按數(shù)值集合劃分④按限制條件或規(guī)則劃分

在確立了等價類之后,建立等價類表,列出所有劃分出的等價類,如表三-六所示,

再從劃分出的等價類中按以下原則選擇測試用例,①為每一個等價類規(guī)定一個惟一的編號。②設(shè)計一個新的測試用例,使其盡可能多地覆蓋尚未覆蓋的有效等價類;重復(fù)這一步驟,直到所有的有效等價類都被覆蓋為止。③設(shè)計一個新的測試用例,使其僅覆蓋一個無效等價類,重復(fù)這一步驟,直到所有的無效等價類都被覆蓋為止。三.3.二

邊界值分析法人們從長期的測試工作經(jīng)驗得知,大量的錯誤是發(fā)生在輸入或輸出范圍的邊界上,而不是在輸入范圍的內(nèi)部,因此針對各種邊界情況設(shè)計測試用例,可以查出更多的錯誤。使用邊界值分析方法設(shè)計測試用例,首先應(yīng)確定邊界情況。

選擇測試用例的原則如下,①如果輸入條件規(guī)定了值的范圍,則應(yīng)該取剛達到這個范圍的邊界值,以及剛剛超過這個范圍邊界的值作為測試輸入數(shù)據(jù)。②如果輸入條件規(guī)定了值的個數(shù),則用最大個數(shù)、最小個數(shù)、比最大個數(shù)多一個、比最小個數(shù)少1個的數(shù)作為測試數(shù)據(jù)。③根據(jù)規(guī)格說明的每一個輸出條件,使用規(guī)則一,④根據(jù)規(guī)格說明的每一個輸出條件,使用規(guī)則二。⑤如果程序的規(guī)格說明給出的輸入域或輸出域是有序集合(如有序表、順序文件等],則應(yīng)選取集合的第一個和最后一個元素作為測試用例。⑥如果程序用了一個內(nèi)部結(jié)構(gòu),應(yīng)該選取這個內(nèi)部數(shù)據(jù)結(jié)構(gòu)的邊界值作為測試用例,⑦分析規(guī)格說明,找出其他可能的邊界條件。三.3.3錯誤推測法人們也可以靠經(jīng)驗和直覺推測程序中可能存在的各種錯誤,從而有針對性地編寫檢查這些錯誤的例子,這就是錯誤推測法。錯誤推測法的基本想法是:列舉出程序中所有可能有的錯誤和容易發(fā)生錯誤的特殊情況,根據(jù)它們選擇測試用例。三.3.四

因果圖法因果圖方法最終生成的就是判定表,它適合于檢查程序輸入條件的各種組合情況。利用因果圖生成測試用例的基本步驟如下。①分析軟件規(guī)格說明的描述中哪些是原因,哪些是結(jié)果。原因是輸入條件或輸入條件的等價類,結(jié)果是輸出條件。②分析軟件規(guī)格說明描述中的語義,找出原因與結(jié)果之間、原因與原因之間對應(yīng)的關(guān)系,根據(jù)這些關(guān)系,畫出因果圖,③標明約束條件。由于語法或環(huán)境的限制,有些原因和結(jié)果的組合情況是不可能出現(xiàn)的。為表明這些特定的情況,在因果圖上使用若干標準的符號標明約束條件。④把因果圖轉(zhuǎn)換成判定表,⑤為判定表中的每一列設(shè)計測試用例。通常在因果圖中,用Ci表示原因,Ei表示結(jié)果,其基本符號如圖三-一二所示。圖三-一二

因果圖的基本符號

對于黑盒測試方法來說,以上四種方法是基本的測試方法,除此之外還有判定表驅(qū)動法、正交試驗法、功能圖法和場景法等,在實際測試中,往往是綜合使用各種方法才能有效地提高測試效率和測試覆蓋率,這就需要認真掌握這些方法的原理,積累更多的測試經(jīng)驗,以有效地提高測試水平。

以下是各種測試方法選擇的綜合策略,可供讀者在實際應(yīng)用過程中參考,①首先進行等價類劃分,包括輸入條件和輸出條件的等價劃分,將無限測試變成有限測試,這是減少工作量和提高測試效率最有效的方法。②在任何情況下都必須使用邊界值分析方法。經(jīng)驗表明,用這種方法設(shè)計出的測試用例發(fā)現(xiàn)程序錯誤的能力最強。③可以用錯誤推測法追加一些測試用例,這需要依靠測試工程師的智慧和經(jīng)驗,④對照程序邏輯,檢查已設(shè)計出的測試用例的邏輯覆蓋程度。如果沒有達到要求的覆蓋標準,應(yīng)當再補充足夠的測試用例。⑤如果程序的功能說明中含有輸入條件的組合情況,則一開始就可選用因果圖法和判定表驅(qū)動法。⑥對于參數(shù)配置類的軟件,要用正交試驗法選擇較少的組合方式達到最佳效果,⑦功能圖法也是很好的測試用例設(shè)計方法,我們可以通過不同時期條件的有效性設(shè)計不同的測試數(shù)據(jù)。⑧對于業(yè)務(wù)流清晰的系統(tǒng),可以利用場景法貫穿整個測試案例過程,在案例中綜合使用各種測試方法。三.3.五

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

用例場景用來描述流經(jīng)用例的路徑,從用例開始到結(jié)束遍歷這條路徑上所有基本流和備選流,一.基本流和備選流

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

基本流和備選流二.ATM例子(一]例子描述圖三-1五所示是ATM例子的流程示意圖,圖三-一五ATM流程示意圖(二]場景設(shè)計表三-八所示是生成的場景,(三]用例設(shè)計對于這七個場景中的每一個場景都需要確定測試用例,可以采用矩陣或決策表來確定和管理測試用例。下面顯示了一種通用格式,其中各行代表各個測試用例,而各列則代表測試用例的信息。本示例中,對于每個測試用例,存在一個測試用例ID、條件(或說明)、測試用例中涉及的所有數(shù)據(jù)元素(作為輸入或已經(jīng)存在于數(shù)據(jù)庫中)以及預(yù)期結(jié)果。(四]數(shù)據(jù)設(shè)計一旦確定了所有的測試用例,則應(yīng)對這些用例進行復(fù)審和驗證以確保其準確且適度,并取消多余或等效的測試用例,測試用例一經(jīng)認可,就可以確定實際數(shù)據(jù)值(在測試用例實施矩陣中)并且設(shè)定測試數(shù)據(jù),如表三-一0所示。三.四

測試用例設(shè)計

三.四.一

測試用例的基本概念簡單地說,測試用例就是設(shè)計一個情況,軟件程序在這種情況下,必須能夠正常運行并且達到程序所設(shè)計的執(zhí)行結(jié)果,

如果程序在這種情況下不能正常運行,而且這種問題會重復(fù)發(fā)生,那就表示已經(jīng)測出軟件有缺陷,這時候就必須將這個問題標示出來,并且輸入到問題跟蹤系統(tǒng)內(nèi),通知軟件開發(fā)人員,軟件開發(fā)人員接到通知后,將問題修改完成于下一個測試版本內(nèi),測試工程師取得新的測試版本后,必須利用同一個測試用例來測試這個問題,確保該問題已修改完成。

在測試時,不可能進行窮舉測試,為了節(jié)省時間和資源,提高測試效率,必須要從數(shù)量極大的可用測試數(shù)據(jù)中精心挑選出具有代表性或特殊性的測試數(shù)據(jù)來進行測試,

使用測試用例的好處主要體現(xiàn)在以下幾個方面,①在開始實施測試之前設(shè)計好測試用例,可以避免盲目測試并提高測試效率。②測試用例的使用令軟件測試的實施重點突出、目的明確。③在軟件版本更新后只需修正少部分的測試用例便可開展測試工作,降低工作強度,縮短項目周期,④功能模塊的通用化和復(fù)用化使軟件易于開發(fā),而測試用例的通用化和復(fù)用化則會使軟件測試易于開展,并隨著測試用例的不斷精化其效率也不斷提高。

測試用例主要有如下幾種,①功能測試用例。包含功能測試、健壯性測試、可靠性測試。②性能測試用例。包含性能測試、壓力測試、強度測試。③集成測試用例。包含接口測試、健壯性測試、可靠性測試。④安全測試用例,安全測試用例。⑤用戶界面測試用例。用戶界面測試用例、少量功能測試用例。⑥安裝/反安裝測試用例。安裝/反安裝測試用例。測試種類、階段和用例的關(guān)系如表三-一1所示。

測試工作和開發(fā)通常一同進行,所以在完成測試計劃編寫后,就可以進行用例的編寫工作了,測試和開發(fā)的對應(yīng)關(guān)系如表三-一二所示。三.四.二

測試用例的設(shè)計步驟測試按照階段分為單元測試、集成測試以及系統(tǒng)測試,而各階段都有相應(yīng)的測試用例。這里,以單元測試的用例設(shè)計為依據(jù)來說明測試用例的設(shè)計步驟。

單元測試說明實際上由一系列單元測試用例組成,每個測試用例應(yīng)該包含以下四個關(guān)鍵元素,①被測單元模塊初始狀態(tài)聲明,即測試用例的開始狀態(tài)(僅適用于被測單元維持了調(diào)用間狀態(tài)的情況]。②被測單元的輸入,包含由被測單元讀入的任何外部數(shù)據(jù)值。③該測試用例實際測試的代碼,用被測單元的功能和測試用例設(shè)計中使用的分析來說明,如單元中哪一個決策條件被測試,④測試用例的期望輸出結(jié)果。測試用例的期望輸出結(jié)果總是應(yīng)該在測試進行之前在測試說明中定義。下面說明測試用例的設(shè)計步驟,(一]步驟1:使被測單元運行這個階段適合的技術(shù)有:①模塊設(shè)計導出的測試;②對等區(qū)間劃分。(二]步驟2:正面測試(PositiveTesting)這個階段適合的技術(shù)有:①設(shè)計說明導出的測試;②等價類分析;③狀態(tài)轉(zhuǎn)換測試,(三]步驟3:負面測試(NegativeTesting)這個階段適合的技術(shù)有:①錯誤猜測;②邊界值分析;

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論