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

下載本文檔

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

文檔簡介

1、軟件測試培訓(xùn)軟件測試培訓(xùn)軟件測試培訓(xùn) 主講:張愷 EMAIL:軟件測試的方法和技術(shù) 軟件測試培訓(xùn)軟件測試培訓(xùn) 第一部分白盒測試 第二部分黑盒測試 第三部分其他測試類型 軟件測試培訓(xùn)軟件測試培訓(xùn)第一部分白盒測試 軟件測試培訓(xùn)軟件測試培訓(xùn) 此方法,它允許測試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息,設(shè)計(jì)或選擇測試用例,對程序所有邏輯路徑進(jìn)行測試。 軟件測試培訓(xùn)軟件測試培訓(xùn) 白盒測試也稱為結(jié)構(gòu)測試或邏輯驅(qū)動(dòng)測試,前提是知道產(chǎn)品內(nèi)部工作過程,可通過測試來檢測產(chǎn)品內(nèi)部動(dòng)作是否按照規(guī)格說明書的規(guī)定正常進(jìn)行,按照程序內(nèi)部的結(jié)構(gòu)測試程序,檢驗(yàn)程序中的每條通路是否都能夠按預(yù)定要求正確工作,而不管產(chǎn)品的功能,主要用于

2、軟件驗(yàn)證。 軟件測試培訓(xùn)軟件測試培訓(xùn) 白盒測試方法又可分為靜態(tài)測試和動(dòng)態(tài)測試。靜態(tài)測試是一種不通過執(zhí)行程序而進(jìn)行測試的技術(shù),其關(guān)鍵功能是檢查軟件的表示和描述是否一致,沒有沖突或者沒有歧義。它瞄準(zhǔn)的是糾正軟件系統(tǒng)在描述、表示和規(guī)格上的錯(cuò)誤,是任何進(jìn)一步測試的前提。而動(dòng)態(tài)測試需要軟件的執(zhí)行,當(dāng)軟件系統(tǒng)在模擬的或真實(shí)的環(huán)境中執(zhí)行之前、之中和之后,對軟件系統(tǒng)行為的分析是動(dòng)態(tài)測試的主要特點(diǎn)。它顯示了一個(gè)系統(tǒng)在檢查狀態(tài)下是正確還是不正確。 軟件測試培訓(xùn)軟件測試培訓(xùn) 白盒測試的動(dòng)態(tài)測試要根據(jù)程序的控制結(jié)構(gòu)設(shè)計(jì)測試用例,其原則是: (1)保證一個(gè)模塊中的所有獨(dú)立路徑至少被使用一次; (2)對所有邏輯值均需測試

3、true和false; (3)在上下邊界及可操作范圍內(nèi)運(yùn)行所有循環(huán); (4)檢查內(nèi)部數(shù)據(jù)結(jié)構(gòu)以確保其有效性。 軟件測試培訓(xùn)軟件測試培訓(xùn) 對一個(gè)具有的程序,。給出一個(gè)小程序的流程圖,它包括了一個(gè)執(zhí)行20次的循環(huán)。 包含的不同執(zhí)行路徑數(shù)達(dá)520條,對每一條路徑進(jìn)行測試需要1毫秒,假定一年工作365 24小時(shí),要想把所有路徑測試完,需3170年。 軟件測試培訓(xùn)軟件測試培訓(xùn) 軟件測試培訓(xùn)軟件測試培訓(xùn) 下面將介紹幾種實(shí)用的白盒測試用例設(shè)計(jì)方法,包括程序插樁、邏輯覆蓋、基本路徑測試等。 軟件測試培訓(xùn)軟件測試培訓(xùn)程序插樁 在軟件動(dòng)態(tài)測試中,程序插樁是一種基本的測試手段,有著廣泛的應(yīng)用。 1方法簡介 程序插樁

4、方法是借助往被測程序中插入操作,來實(shí)現(xiàn)測試目的的方法。 軟件測試培訓(xùn)軟件測試培訓(xùn) 如果我們想要了解一個(gè)程序在某次運(yùn)行中所有可執(zhí)行語句被覆蓋的情況,或是每個(gè)語句的實(shí)際執(zhí)行次數(shù),最好的辦法是利用插樁技術(shù)。這里僅以計(jì)算整數(shù)X和整數(shù)Y的最大公約數(shù)程序?yàn)槔f明插樁方法的要點(diǎn)。 軟件測試培訓(xùn)軟件測試培訓(xùn) 入口 C(1)=C(1)+1 Q=X R=Y C(2)=C(2)+1 C(6)=C(6)+1 QR C(4)=C(4)+1 C(3)=C(3)+1 QR 出口 C(5)=C(5)+1 Q=QR R=RQ 圖 插樁后求最大公約數(shù)程序的流程圖 軟件測試培訓(xùn)軟件測試培訓(xùn) 設(shè)計(jì)插樁程序時(shí)需要考慮的問題包括: 探

5、測哪些信息; 在程序的什么部位設(shè)置探測點(diǎn); 需要設(shè)置多少個(gè)探測點(diǎn)。 軟件測試培訓(xùn)軟件測試培訓(xùn) 2斷言語句(Assert) 在程序中特定部位插入某些用以判斷變量特性的語句,使得程序執(zhí)行中這些語句得以證實(shí),從而使程序的運(yùn)行特性得到證實(shí)。我們把插入的這些語句稱為斷言。這一做法是程序正確性證明的基本步驟,盡管算不上嚴(yán)格的證明,但方法本身仍然是很實(shí)用的。 軟件測試培訓(xùn)軟件測試培訓(xùn)思考題 計(jì)算兩個(gè)數(shù)的最小公倍數(shù)。 軟件測試培訓(xùn)軟件測試培訓(xùn)邏輯覆蓋 邏輯覆蓋是以程序內(nèi)部的邏輯結(jié)構(gòu)為基礎(chǔ)的設(shè)計(jì)測試用例的技術(shù),是通過對程序邏輯結(jié)構(gòu)的遍歷實(shí)現(xiàn)程序的覆蓋,它是一系列測試過程的總稱,這組測試過程逐漸進(jìn)行越來越完整的通

6、路測試。這一方法要求測試人員對程序的邏輯結(jié)構(gòu)有清楚的了解,甚至要能掌握源程序的所有細(xì)節(jié)。它屬于動(dòng)態(tài)測試。 軟件測試培訓(xùn)軟件測試培訓(xùn) 從覆蓋源程序語句的詳細(xì)程度分析,邏輯覆蓋標(biāo)準(zhǔn)有語句覆蓋、判定覆蓋、條件覆蓋、條件判定組合覆蓋、多條件覆蓋和修正條件判定覆蓋。 為便于理解,使用如下所示的程序及其流程圖。 軟件測試培訓(xùn)軟件測試培訓(xùn)W H I L E循 環(huán) 結(jié) 構(gòu) 順 序 結(jié) 構(gòu) U N T IL 循 環(huán) 結(jié) 構(gòu) IF 選 擇 結(jié) 構(gòu) C A S E多 分 支 結(jié) 構(gòu)選 擇 結(jié) 構(gòu) 軟件測試培訓(xùn)軟件測試培訓(xùn) int function1(bool a,bool b,bool c) int x; x=0;

7、 if(a&(b|c) x=1; return x; 軟件測試培訓(xùn)軟件測試培訓(xùn) 1語句覆蓋 為了暴露程序中的錯(cuò)誤,程序中的每條語句至少應(yīng)該執(zhí)行一次。所以,語句覆蓋的含義是:選擇足夠多的測試數(shù)據(jù),使被測程序中每條語句至少執(zhí)行一次。 軟件測試培訓(xùn)軟件測試培訓(xùn) 2判定覆蓋 比語句覆蓋稍強(qiáng)的覆蓋標(biāo)準(zhǔn)是判定覆蓋。按判定覆蓋準(zhǔn)則進(jìn)行測試是指,設(shè)計(jì)若干測試用例,運(yùn)行被測程序,使得程序中每個(gè)判斷的取真分支和取假分支至少經(jīng)歷一次,即判斷的真假值均曾被滿足。判定覆蓋又稱為分支覆蓋。 軟件測試培訓(xùn)軟件測試培訓(xùn) 3條件覆蓋 在設(shè)計(jì)程序中,一個(gè)判定語句是由多個(gè)條件組合而成的復(fù)合判定。 條件覆蓋的含義是:構(gòu)造一組

8、測試用例,使得每一判定語句中每個(gè)邏輯條件的可能值至少滿足一次。 軟件測試培訓(xùn)軟件測試培訓(xùn) 4條件判定組合覆蓋 條件判定組合覆蓋的含義是:設(shè)計(jì)足夠的測試用例,使得判定中每個(gè)條件的所有可能(真/假)至少出現(xiàn)一次,并且每個(gè)判定本身的判定結(jié)果(真/假)也至少出現(xiàn)一次。 軟件測試培訓(xùn)軟件測試培訓(xùn) 5多條件覆蓋 多條件覆蓋也稱為條件組合覆蓋,它的含義是:設(shè)計(jì)足夠的測試用例,使得每個(gè)判定中條件的各種可能組合都至少出現(xiàn)一次。顯然滿足多條件覆蓋的測試用例是一定滿足判定覆蓋、條件覆蓋和條件判定組合覆蓋的。 軟件測試培訓(xùn)軟件測試培訓(xùn) 6修正條件判定覆蓋 它要求滿足兩個(gè)條件:首先,每一個(gè)程序模塊的入口和出口點(diǎn)都要考慮

9、至少被調(diào)用一次,每個(gè)程序的判定到所有可能的結(jié)果值要至少轉(zhuǎn)換一次;其次,程序的判定被分解為通過邏輯操作符(and、or)連接的bool條件,每個(gè)條件對于判定的結(jié)果值是獨(dú)立的。 軟件測試培訓(xùn)軟件測試培訓(xùn) 7測試覆蓋準(zhǔn)則 (1)Foster的ESTCA覆蓋準(zhǔn)則 前面所介紹的邏輯覆蓋其出發(fā)點(diǎn)似乎是合理的。所謂“覆蓋”,就是想要做到全面而無遺漏。但是,事實(shí)表明,它并不能真的做到無遺漏。 K.A.Foster從測試工作實(shí)踐的教訓(xùn)出發(fā),吸收了計(jì)算機(jī)硬件的測試原理,提出了一種經(jīng)驗(yàn)型的測試覆蓋準(zhǔn)則。 軟件測試培訓(xùn)軟件測試培訓(xùn) (2)Woodward等人的層次LCSAJ覆蓋準(zhǔn)則 Woodward等人曾經(jīng)指出結(jié)構(gòu)覆

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

11、一個(gè)結(jié)點(diǎn),它表示一個(gè)或多個(gè)無分支的語句或源程序語句。 軟件測試培訓(xùn)軟件測試培訓(xùn) R 3 R 2 R 1 區(qū)域 (a )程序流程圖 ) 7 1 2 3 4 5 6 8 1(b )控制流圖 1 2 6 4 7 8 9 1 0 1 1 邊 結(jié)點(diǎn) R 4 圖 控制流圖的圖形符號(hào) 軟件測試培訓(xùn)軟件測試培訓(xùn)圖 程序流程圖和對應(yīng)的控制流圖 圖(a)所示的是一個(gè)程序的流程圖,它可以映射成圖(b)所示的控制流圖。 軟件測試培訓(xùn)軟件測試培訓(xùn) 2計(jì)算程序環(huán)路復(fù)雜性 進(jìn)行程序的基本路徑測試時(shí),程序的環(huán)路復(fù)雜性給出了程序基本路徑集合中的獨(dú)立路徑條數(shù),這是確保程序中每個(gè)可執(zhí)行語句至少執(zhí)行一次所必須的測試用例數(shù)目的上界。

12、所謂獨(dú)立路徑,是指包括若干未曾處理的語句或條件的一條路徑 軟件測試培訓(xùn)軟件測試培訓(xùn) 基本路徑集不是惟一的,對于給定的控制流圖,可以得到不同的基本路徑集。 通常環(huán)路復(fù)雜性可用以下3種方法求得。 將環(huán)路復(fù)雜性定義為控制流圖中的區(qū)域數(shù)。 設(shè)E為控制流圖的邊數(shù),N為圖的結(jié)點(diǎn)數(shù),則定義環(huán)路的復(fù)雜性為V(G)=EN+2。 若設(shè)P為控制流圖中的判定結(jié)點(diǎn)數(shù),則有V(G)=P+1。 軟件測試培訓(xùn)軟件測試培訓(xùn) 3基本路徑測試法步驟 基本路徑測試法適用于模塊的詳細(xì)設(shè)計(jì)及源程序,其主要步驟如下。 以詳細(xì)設(shè)計(jì)或源代碼作為基礎(chǔ),導(dǎo)出程序的控制流圖。 計(jì)算得到的控制流圖G的環(huán)路復(fù)雜性V(G)。 確定線性無關(guān)的路徑的基本集。

13、 生成測試用例,確保基本路徑集中每條路徑的執(zhí)行。 軟件測試培訓(xùn)軟件測試培訓(xùn)思考題計(jì)算兩個(gè)數(shù)的最小公倍數(shù)的程序的基礎(chǔ)上,畫出流程圖,并計(jì)算V(G)。#include int main()int a,b;scanf(%d %d,&a,&b);int temp;if(ab)temp=a;a=b;b=temp;/保證a是較小的那個(gè)數(shù)for(int i=a;i=0;i-)if(a%i=0&b%i=0)/求最大公約數(shù)temp=i;break;printf(%dn,a*b/temp);/輸出最小公倍數(shù) 軟件測試培訓(xùn)軟件測試培訓(xùn)程序的靜態(tài)測試 1源程序靜態(tài)分析 在靜態(tài)結(jié)構(gòu)分析中,測試者

14、通過使用測試工具分析程序源代碼的系統(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),使其便于閱讀與理解,然后可以通過分析這些圖表,檢查軟件有沒有存在缺陷或錯(cuò)誤。 軟件測試培訓(xùn)軟件測試培訓(xùn) 通常采用以下一些方法進(jìn)行源程序的靜態(tài)分析。 (1)生成各種引用表 標(biāo)號(hào)交叉引用表 變量交叉引用表 子程序(宏、函數(shù))引用表 等價(jià)表 常數(shù)表 軟件測試培訓(xùn)軟件測試培訓(xùn) (2)錯(cuò)誤靜態(tài)分析 錯(cuò)誤靜態(tài)分析主要用于確定在源程序中是否有某類錯(cuò)誤或“危險(xiǎn)”結(jié)構(gòu)。 類型和單位分析 引用分析

15、表達(dá)式分析 接口分析 軟件測試培訓(xùn)軟件測試培訓(xùn) 2人工測試 靜態(tài)分析中進(jìn)行人工測試的主要方法有桌前檢查、代碼審查和走查。經(jīng)驗(yàn)表明,使用這種方法能夠有效地發(fā)現(xiàn)30%70%的邏輯設(shè)計(jì)和編碼錯(cuò)誤。 軟件測試培訓(xùn)軟件測試培訓(xùn) (1)桌前檢查 由程序員自己檢查自己編寫的程序。程序員在程序通過編譯之后,進(jìn)行單元測試設(shè)計(jì)之前,對源程序代碼進(jìn)行分析、檢驗(yàn),并補(bǔ)充相關(guān)的文檔,目的是發(fā)現(xiàn)程序中的錯(cuò)誤。 軟件測試培訓(xùn)軟件測試培訓(xùn) (2)代碼審查 代碼審查是由若干程序員和測試員組成一個(gè)審查小組,通過閱讀、討論和爭議,對程序進(jìn)行靜態(tài)分析的過程。 代碼審查分兩步。第一步,小組負(fù)責(zé)人提前把設(shè)計(jì)規(guī)格說明書、控制流程圖、程序文

16、本及有關(guān)要求、規(guī)范等分發(fā)給小組成員,作為審查的依據(jù)。小組成員在充分閱讀這些材料后,進(jìn)入審查的第二步,召開程序?qū)彶闀?huì)。 軟件測試培訓(xùn)軟件測試培訓(xùn) (3)走查 走查與代碼審查基本相同,其過程分為兩步。第一步也把材料先發(fā)給走查小組每個(gè)成員,讓他們認(rèn)真研究程序,然后再開會(huì)。開會(huì)的程序與代碼審查不同,不是簡單地讀程序和對照錯(cuò)誤檢查表進(jìn)行檢查,而是讓與會(huì)者“充當(dāng)”計(jì)算機(jī),即首先由測試組成員為被測程序準(zhǔn)備一批有代表性的測試用例,提交給走查小組。走查小組開會(huì),集體扮演計(jì)算機(jī)角色,讓測試用例沿程序的邏輯運(yùn)行一遍,隨時(shí)記錄程序的蹤跡,供分析和討論用。 軟件測試培訓(xùn)軟件測試培訓(xùn)其他白盒測試方法簡介 1域測試 域測試

17、是一種基于程序結(jié)構(gòu)的測試方法。 域測試正是在分析輸入域的基礎(chǔ)上,選擇適當(dāng)?shù)臏y試點(diǎn)以后進(jìn)行測試的。 軟件測試培訓(xùn)軟件測試培訓(xùn) 2符號(hào)測試 符號(hào)測試的基本思想是允許程序的輸入不僅僅是具體的數(shù)值數(shù)據(jù),而且包括符號(hào)值,這一方法也因此而得名。 軟件測試培訓(xùn)軟件測試培訓(xùn) 3Z路徑覆蓋 分析程序中的路徑是指檢驗(yàn)程序從入口開始,執(zhí)行過程中經(jīng)歷的各個(gè)語句,直到出口。 軟件測試培訓(xùn)軟件測試培訓(xùn) 4程序變異 程序變異方法是一種錯(cuò)誤驅(qū)動(dòng)測試。所謂錯(cuò)誤驅(qū)動(dòng)測試方法,是指該方法是針對某類特定程序錯(cuò)誤的。經(jīng)過多年的測試?yán)碚撗芯亢蛙浖y試的實(shí)踐,人們逐漸發(fā)現(xiàn)要想找出程序中所有的錯(cuò)誤幾乎是不可能的。比較現(xiàn)實(shí)的解決辦法是將錯(cuò)誤的

18、搜索范圍盡可能地縮小,以利于專門測試某類錯(cuò)誤是否存在。 錯(cuò)誤驅(qū)動(dòng)測試主要有兩種,即程序強(qiáng)變異和程序弱變異。 軟件測試培訓(xùn)軟件測試培訓(xùn) 最后,歸納一下白盒測試中各種測試方法的應(yīng)用策略。 在白盒測試中,可以使用各種測試方法的綜合策略如下。 (1)在測試中,應(yīng)盡量先使用工具進(jìn)行靜態(tài)結(jié)構(gòu)分析。 (2)測試中可采取先靜態(tài)后動(dòng)態(tài)的組合方式:先進(jìn)行靜態(tài)結(jié)構(gòu)分析、代碼檢查,再進(jìn)行覆蓋率測試。 軟件測試培訓(xùn)軟件測試培訓(xùn) (3)利用靜態(tài)分析的結(jié)果作為導(dǎo)引,通過代碼檢查和動(dòng)態(tài)測試的方式對靜態(tài)發(fā)現(xiàn)結(jié)果進(jìn)行進(jìn)一步的確認(rèn),使測試工作更為有效。 (4)覆蓋率測試是白盒測試的重點(diǎn),一般可使用基本路徑測試法達(dá)到語句覆蓋標(biāo)準(zhǔn);對

19、于軟件的重點(diǎn)模塊,應(yīng)使用多種覆蓋率標(biāo)準(zhǔn)衡量代碼的覆蓋率。 軟件測試培訓(xùn)軟件測試培訓(xùn) (5)在不同的測試節(jié)點(diǎn),測試的側(cè)重點(diǎn)不同:在單元測試階段,以代碼檢查、邏輯覆蓋為主;在集成測試階段,需要增加靜態(tài)結(jié)構(gòu)分析等;在系統(tǒng)測試階段,應(yīng)根據(jù)黑盒測試的結(jié)果,采取相應(yīng)的白盒測試。 軟件測試培訓(xùn)軟件測試培訓(xùn)第二部分黑盒測試 軟件測試培訓(xùn)軟件測試培訓(xùn) 這種方法是把看做,測試人員完全不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特性,只依據(jù)程序的需求規(guī)格說明書,檢查程序的功能是否符合它的功能說明。 黑盒測試又叫做或。 軟件測試培訓(xùn)軟件測試培訓(xùn) 黑盒測試方法是在程序接口上進(jìn)行測試,主要是為了發(fā)現(xiàn)以下錯(cuò)誤: ? 在接口上,? ? (

20、例如數(shù)據(jù)文件)? ? ? 軟件測試培訓(xùn)軟件測試培訓(xùn) 用黑盒測試發(fā)現(xiàn)程序中的錯(cuò)誤,必須在中確定測試數(shù)據(jù),來檢查程序是否都能產(chǎn)生正確的輸出。 但這是的。 軟件測試培訓(xùn)軟件測試培訓(xùn)2039歲6點(diǎn)4059歲4點(diǎn)年年齡齡60歲以上20歲以下2點(diǎn)MALE5點(diǎn)性性別別FEMALE3點(diǎn)已婚3點(diǎn)婚婚姻姻未婚5點(diǎn)扶扶養(yǎng)養(yǎng)人人數(shù)數(shù)一 人 扣 0.5 點(diǎn) 最 多 扣 3 點(diǎn) ( 四 舍 五 入 取 整 數(shù) ) 假設(shè)一個(gè)程序P有輸入量X和Y及輸出量Z。在字長為32位的計(jì)算機(jī)上運(yùn)行。若X、Y取整數(shù),按黑盒方法進(jìn)行窮舉測試: 可能采用的 測試數(shù)據(jù)組: 232232 264 如果測試一 組數(shù)據(jù)需要1毫秒,一年工作365 24

21、小時(shí),完成所有測試需5億年。 軟件測試培訓(xùn)軟件測試培訓(xùn) 黑盒測試方法主要有等價(jià)類劃分、邊界值分析、因果圖、錯(cuò)誤推測、功能圖法等,主要用于軟件確認(rèn)測試。 軟件測試培訓(xùn)軟件測試培訓(xùn)等價(jià)類劃分法 等價(jià)類劃分是一種典型的黑盒測試方法。使用這一方法時(shí),完全不考慮程序的內(nèi)部結(jié)構(gòu),只依據(jù)程序的規(guī)格說明來設(shè)計(jì)測試用例。由于不可能用所有可以輸入的數(shù)據(jù)來測試程序,而只能從全部可供輸入的數(shù)據(jù)中選擇一個(gè)自己進(jìn)行測試。如何選擇適當(dāng)?shù)淖蛹蛊浔M可能多地發(fā)現(xiàn)錯(cuò)誤,解決的辦法之一就是等價(jià)類劃分。 軟件測試培訓(xùn)軟件測試培訓(xùn) 軟件測試培訓(xùn)軟件測試培訓(xùn) 軟件測試培訓(xùn)軟件測試培訓(xùn)劃分等價(jià)類的原則.1 軟件測試培訓(xùn)軟件測試培訓(xùn)劃分等

22、價(jià)類的原則.2 軟件測試培訓(xùn)軟件測試培訓(xùn)劃分等價(jià)類的原則.3 軟件測試培訓(xùn)軟件測試培訓(xùn)劃分等價(jià)類的原則.4 軟件測試培訓(xùn)軟件測試培訓(xùn)劃分等價(jià)類的原則.5 (5) (5) 在規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則情況下,在規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則情況下,可確立一個(gè)有效等價(jià)類可確立一個(gè)有效等價(jià)類( (符合規(guī)則符合規(guī)則) )和若干個(gè)無效和若干個(gè)無效等價(jià)類等價(jià)類( (從不同角度違反規(guī)則從不同角度違反規(guī)則) )。 軟件測試培訓(xùn)軟件測試培訓(xùn)根據(jù)等價(jià)類劃分選取用例/數(shù)據(jù) 軟件測試培訓(xùn)軟件測試培訓(xùn)劃分等價(jià)類的實(shí)例.1 軟件測試培訓(xùn)軟件測試培訓(xùn)劃分等價(jià)類的實(shí)例.2 某工廠公開招工,在報(bào)名系統(tǒng)年齡輸入框某工廠公開招工,

23、在報(bào)名系統(tǒng)年齡輸入框中規(guī)定報(bào)名者年齡應(yīng)在中規(guī)定報(bào)名者年齡應(yīng)在1967年年02月月1986年年03月之間。月之間。即出生年月不在上述范圍內(nèi),即出生年月不在上述范圍內(nèi),將拒絕接受,并顯示將拒絕接受,并顯示“年齡不合格年齡不合格”等出等出錯(cuò)信息。錯(cuò)信息。 軟件測試培訓(xùn)軟件測試培訓(xùn)輸入輸入數(shù)據(jù)數(shù)據(jù)有效等價(jià)類有效等價(jià)類無效等價(jià)類無效等價(jià)類出生年月出生年月6 6位數(shù)字字符位數(shù)字字符 有非數(shù)字字符有非數(shù)字字符 少于少于6 6個(gè)數(shù)字符個(gè)數(shù)字符 多于多于6 6個(gè)數(shù)字符個(gè)數(shù)字符對應(yīng)數(shù)值對應(yīng)數(shù)值 在196702198603之間198603月份對應(yīng)月份對應(yīng)數(shù)值數(shù)值在112之間等于“0” 12劃分等價(jià)類的實(shí)例.3 軟件

24、測試培訓(xùn)軟件測試培訓(xùn) 根據(jù)下面給出的規(guī)格說明,利用等價(jià)類劃根據(jù)下面給出的規(guī)格說明,利用等價(jià)類劃分的方法,給出足夠的測試用例。分的方法,給出足夠的測試用例。 “一個(gè)程序讀入一個(gè)程序讀入3個(gè)整數(shù),把這三個(gè)數(shù)值看個(gè)整數(shù),把這三個(gè)數(shù)值看作一個(gè)三角形的作一個(gè)三角形的3條邊的長度值。這個(gè)程序條邊的長度值。這個(gè)程序要打印出信息,說明這個(gè)三角形是不等邊要打印出信息,說明這個(gè)三角形是不等邊的、是等腰的、還是等邊的。的、是等腰的、還是等邊的。” 一個(gè)很重要的例子.1 軟件測試培訓(xùn)軟件測試培訓(xùn) 我們可以設(shè)三角形的我們可以設(shè)三角形的3條邊分別為條邊分別為A,B,C。如果它們能夠構(gòu)成三角形的如果它們能夠構(gòu)成三角形的3條

25、邊,必須滿條邊,必須滿足:足: A0,B0,C0 且且A+BC,B+CA,A+CB。 如果是等腰的,還要判斷如果是等腰的,還要判斷A=B,或,或B=C,或,或A=C。 如果是等邊的,則需判斷是否如果是等邊的,則需判斷是否A=B,且,且B=C,且且A=C。一個(gè)很重要的例子.2 軟件測試培訓(xùn)軟件測試培訓(xùn)輸入條件輸入條件有效等價(jià)類有效等價(jià)類無效等價(jià)類無效等價(jià)類 是否是否三邊都大三邊都大于于0 0(A0) and (B0)and (C0) (A0) and (B0)and (C0) (1)(1)(A0)(A0), (2)(2)(B0)(B0), (3)(3)(C0)(C0), (4)(4) 是否是否兩

26、邊之和兩邊之和大大于第三邊于第三邊(A+BC)and(B+CA)and(A+CB) (A+BC)and(B+CA)and(A+CB) (5)(5)(A+BC)(A+BC), (6)(6)(B+CA)(B+CA), (7)(7)(A+CB)(A+CB), (8)(8) 是否是否等腰三角等腰三角形形(A=B)(A=B), (9)(9)(B=C)(B=C), (10)(10)(C=A)(C=A), (11)(11)(AB)and (12)(AB)and (12)(BC)and(BC)and(CA)(CA) 是否是否等邊三角等邊三角形形(A=B)and(B=C)and(C=A) (A=B)and(B=

27、C)and(C=A) (13)(13)(AB)(AB), (14)(14)(BC)(BC), (15)(15)(CA)(CA), (16)(16)一個(gè)很重要的例子.3 軟件測試培訓(xùn)軟件測試培訓(xùn)序號(hào)序號(hào)【A,B,C】覆蓋等價(jià)類覆蓋等價(jià)類輸出輸出1【3 3,4 4,5 5】(1 1),(),(5 5)一般三角形一般三角形2【0 0,1 1,2 2】(2 2)不能構(gòu)成三角形不能構(gòu)成三角形3【1 1,0 0,2 2】(3 3)4【1 1,2 2,0 0】(4 4)5【1 1,2 2,3 3】(1 1),(),(6 6)6【1 1,3 3,2 2】(1 1),(),(7 7)7【3 3,1 1,2 2】

28、(1 1),(),(8 8)8【3 3,3 3,4 4】(1 1),(),(5 5),(),(9 9)等腰三角形等腰三角形9【3 3,4 4,4 4】(1 1),(),(5 5),(),(1010)10【3 3,4 4,3 3】(1 1),(),(5 5),(),(1111)11【3 3,4 4,5 5】(1 1),(),(5 5),(),(1212)非等腰三角形非等腰三角形12【3 3,3 3,3 3】(1 1),(),(5 5),(),(1313)是等邊三角形是等邊三角形13【3 3,4 4,4 4】(1 1),(),(5 5),(),(1010),(),(1414)非等邊三角形非等邊三角

29、形14【3 3,4 4,3 3】(1 1),(),(5 5),(),(1111),(),(1515)15【3 3,3 3,4 4】(1 1),(),(5 5),(),(9 9),), (1616)一個(gè)很重要的例子.4 軟件測試培訓(xùn)軟件測試培訓(xùn)思考題-設(shè)計(jì)出測試用例 保險(xiǎn)費(fèi)率計(jì)算 人 人 保 險(xiǎn) 公 司 承 擔(dān) 人 壽 保 險(xiǎn) 已 有 多 年 歷 史 , 該 公 司 保 費(fèi) 計(jì) 算 方 式 為 投 保 額 保 險(xiǎn) 率 , 保 險(xiǎn) 率 又 依 點(diǎn) 數(shù) 不 同 而 有 別 , 10 點(diǎn) 以 上 費(fèi) 率 為 0.6 % , 10 點(diǎn) 以 下 費(fèi) 率 為 0.1 % : 軟件測試培訓(xùn)軟件測試培訓(xùn)思考題N

30、oImage輸入數(shù)據(jù)說明。 軟件測試培訓(xùn)軟件測試培訓(xùn)邊界值分析法 人們從長期的測試工作經(jīng)驗(yàn)得知,大量的錯(cuò)誤是發(fā)生在輸入或輸出范圍的邊界上,而不是在輸入范圍的內(nèi)部。因此針對各種邊界情況設(shè)計(jì)測試用例,可以查出更多的錯(cuò)誤。 使用邊界值分析方法設(shè)計(jì)測試用例,首先應(yīng)確定邊界情況。 軟件測試培訓(xùn)軟件測試培訓(xùn) 軟件測試培訓(xùn)軟件測試培訓(xùn) 選擇測試用例的原則如下。 1、 如果輸入條件規(guī)定了值的范圍,則應(yīng)該取剛達(dá)到這個(gè)范圍的邊界值,以及剛剛超過這個(gè)范圍邊界的值作為測試輸入數(shù)據(jù)。 2、 如果輸入條件規(guī)定了值的個(gè)數(shù),則用最大個(gè)數(shù)、最小個(gè)數(shù)、比最大個(gè)數(shù)多1個(gè)、比最小個(gè)數(shù)少1 個(gè)的數(shù)作為測試數(shù)據(jù)。 軟件測試培訓(xùn)軟件測試培

31、訓(xùn) 3、 如果程序的規(guī)格說明給出的輸入域或輸出域是有序集合(如有序表、順序文件等),則應(yīng)選取集合的第一個(gè)和最后一個(gè)元素作為測試用例。 軟件測試培訓(xùn)軟件測試培訓(xùn) 4、如果程序用了一個(gè)內(nèi)部結(jié)構(gòu),應(yīng)該選取這個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu)的邊界值作為測試用例。 5、分析規(guī)格說明,找出其他可能的邊界條件。 軟件測試培訓(xùn)軟件測試培訓(xùn) 使用邊界值分析方法設(shè)計(jì)測試用例,首先應(yīng)確定邊界情況。,而不是選取等價(jià)類中的典型值或任意值做為測試數(shù)據(jù) 依據(jù)邊界值分析法確定測試用例依據(jù)邊界值分析法確定測試用例 Id 110個(gè)字母 地址 010個(gè)漢字 郵編 6個(gè)數(shù)字 軟件測試培訓(xùn)軟件測試培訓(xùn) 軟件測試培訓(xùn)軟件測試培訓(xùn) 軟件測試培訓(xùn)軟件測試培訓(xùn)

32、思考題-設(shè)計(jì)出測試用例 找零錢最佳組合 假 設(shè) 商 店 貨 品 價(jià) 格 (R) 皆 不 大 於 100 元 ( 且 為 整 數(shù) ) , 若 顧 客 付 款 在 100 元 內(nèi) (P) , 求 找 給 顧 客 之 最 少 貨幣 個(gè)(張) 數(shù) ? ( 貨 幣 面 值 50 元 (N50) , 10 元 (N10) , 5 元 (N5) , 1 元 (N1) 四 種 ) 軟件測試培訓(xùn)軟件測試培訓(xùn)因果圖法 軟件測試培訓(xùn)軟件測試培訓(xùn)因果圖生成基本步驟.1 軟件測試培訓(xùn)軟件測試培訓(xùn)因果圖生成基本步驟.2 軟件測試培訓(xùn)軟件測試培訓(xùn) 在因果圖中出現(xiàn)的基本符號(hào)通常在因果圖中用Ci表示原因,用Ei表示結(jié)果,各結(jié)點(diǎn)

33、表示狀態(tài),可取值“0”或“1”。“0”表示某狀態(tài)不出現(xiàn),“1”表示某狀態(tài)出現(xiàn)。 軟件測試培訓(xùn)軟件測試培訓(xùn)若若a1則則b1若若a1則則b0因果圖 - 基本符號(hào).1 軟件測試培訓(xùn)軟件測試培訓(xùn)若若a或或b或或c1則則d1 若若ab1則則c1因果圖 - 基本符號(hào).2 軟件測試培訓(xùn)軟件測試培訓(xùn)因果圖 - 約束條件.1 軟件測試培訓(xùn)軟件測試培訓(xùn)因果圖 - 約束條件.2 軟件測試培訓(xùn)軟件測試培訓(xùn)因果圖 - 約束條件.3 軟件測試培訓(xùn)軟件測試培訓(xùn)因果圖 - 約束條件.4 軟件測試培訓(xùn)軟件測試培訓(xùn)因果圖 - 約束條件.5 軟件測試培訓(xùn)軟件測試培訓(xùn)因果圖示例.1 軟件測試培訓(xùn)軟件測試培訓(xùn)因果圖示例.2 軟件測試培

34、訓(xùn)軟件測試培訓(xùn)因果圖示例.3 軟件測試培訓(xùn)軟件測試培訓(xùn)因果圖示例.4已投幣已按鈕 軟件測試培訓(xùn)軟件測試培訓(xùn)因果圖示例.5 軟件測試培訓(xùn)軟件測試培訓(xùn)判定表驅(qū)動(dòng)分析方法.1 判定表又稱為決策表。判定表又稱為決策表。 當(dāng)模塊中包含當(dāng)模塊中包含復(fù)雜的條件組合復(fù)雜的條件組合,并要根據(jù),并要根據(jù)這些條件這些條件選擇動(dòng)作選擇動(dòng)作時(shí),使用判定表能清晰時(shí),使用判定表能清晰地表示出復(fù)雜的條件組合與各種動(dòng)作之間地表示出復(fù)雜的條件組合與各種動(dòng)作之間的對應(yīng)關(guān)系。的對應(yīng)關(guān)系。 軟件測試培訓(xùn)軟件測試培訓(xùn) 條件樁 條件項(xiàng) (條件的組合) 動(dòng)作樁 動(dòng)作項(xiàng)判定表驅(qū)動(dòng)分析方法.2 一張判定表的田字型結(jié)構(gòu):條件樁、條件項(xiàng)、一張判定表

35、的田字型結(jié)構(gòu):條件樁、條件項(xiàng)、動(dòng)作項(xiàng)、動(dòng)作樁規(guī)則。動(dòng)作項(xiàng)、動(dòng)作樁規(guī)則。 決策表的讀表方法:順時(shí)針方向。決策表的讀表方法:順時(shí)針方向。 軟件測試培訓(xùn)軟件測試培訓(xùn)判定表驅(qū)動(dòng)分析方法.3 條件樁:列出了問題的所有條件。通常認(rèn)為列出的條件的次序無關(guān)緊要。 動(dòng)作樁:列出了問題規(guī)定可能采取的操作。這些操作的排列順序沒有約束。 條件項(xiàng):列出針對它所列條件的取值,在所有可能情況下的真假值。 動(dòng)作項(xiàng):列出在條件項(xiàng)的各種取值情況下應(yīng)該采取的動(dòng)作。 軟件測試培訓(xùn)軟件測試培訓(xùn)判定表驅(qū)動(dòng)分析方法.4 判定表的繪制步驟:判定表的繪制步驟:判定表中列出多少組條件取值,也就有多少條判定表中列出多少組條件取值,也就有多少條規(guī)則

36、,條件項(xiàng)和動(dòng)作項(xiàng)就有多少列。規(guī)則,條件項(xiàng)和動(dòng)作項(xiàng)就有多少列。確定規(guī)則的個(gè)數(shù)。假如有確定規(guī)則的個(gè)數(shù)。假如有n n個(gè)條件,每個(gè)條個(gè)條件,每個(gè)條件有兩面?zhèn)€取值件有兩面?zhèn)€取值(0,1)(0,1),故有,故有2n2n種規(guī)則。種規(guī)則。列出所有的條件樁和動(dòng)作樁列出所有的條件樁和動(dòng)作樁填入條件項(xiàng)填入條件項(xiàng)填入動(dòng)作項(xiàng)。制定判定表填入動(dòng)作項(xiàng)。制定判定表簡化。合并相似規(guī)則或者相同動(dòng)作。簡化。合并相似規(guī)則或者相同動(dòng)作。 軟件測試培訓(xùn)軟件測試培訓(xùn) 舉例舉例 問題說明:問題說明:“某貨運(yùn)站收費(fèi)標(biāo)準(zhǔn)如下:如某貨運(yùn)站收費(fèi)標(biāo)準(zhǔn)如下:如果收件地點(diǎn)在本省,則快件每公斤果收件地點(diǎn)在本省,則快件每公斤5 5元,慢元,慢件每公斤件每公斤

37、3 3元;如果收件地點(diǎn)在外省,則在元;如果收件地點(diǎn)在外省,則在2020公斤以內(nèi)(含公斤以內(nèi)(含2020公斤)快件每公斤公斤)快件每公斤7 7元,元,慢件每公斤慢件每公斤5 5元,而超過元,而超過2020公斤時(shí),快件每公斤時(shí),快件每公斤公斤9 9元,慢件每公斤元,慢件每公斤7 7元。元。” 判定表驅(qū)動(dòng)分析方法.5 軟件測試培訓(xùn)軟件測試培訓(xùn)條件取值含義收件地址在本省?Y是N否郵件重量20公斤?Y是N否快慢件?Y快件N慢件判定表驅(qū)動(dòng)分析方法.6 條件取值分析表?xiàng)l件取值分析表 軟件測試培訓(xùn)軟件測試培訓(xùn)12345678條件樁收件地址在本省?YYYYNNNN條件項(xiàng)郵件重量20公斤?YYNNYYNN快慢件?

38、YNYNYNYN動(dòng)作樁3元/公斤XX動(dòng)作項(xiàng)5元/公斤XXX7元/公斤XX9元/公斤X判定表驅(qū)動(dòng)分析方法.7 判定表判定表 軟件測試培訓(xùn)軟件測試培訓(xùn)Y YN NY N*YN-*p 簡化判定表簡化判定表判定表驅(qū)動(dòng)分析方法.8 軟件測試培訓(xùn)軟件測試培訓(xùn)123456條件樁收件地址在本省?YYNNNN條件項(xiàng)郵件重量20公斤?_YYNN快慢件?YNYNYN動(dòng)作樁3元/公斤X動(dòng)作項(xiàng)5元/公斤XX7元/公斤XX9元/公斤X判定表驅(qū)動(dòng)分析方法.9 化簡后的判定表化簡后的判定表 軟件測試培訓(xùn)軟件測試培訓(xùn)錯(cuò)誤推測法 人們也可以靠經(jīng)驗(yàn)和直覺推測程序中可能存在的各種錯(cuò)誤,從而有針對性地編寫檢查這些錯(cuò)誤的例子。這就是錯(cuò)誤

39、推測法。 錯(cuò)誤推測法的基本想法是:列舉出程序中所有可能有的錯(cuò)誤和容易發(fā)生錯(cuò)誤的特殊情況,根據(jù)它們選擇測試用例。 軟件測試培訓(xùn)軟件測試培訓(xùn) 軟件測試培訓(xùn)軟件測試培訓(xùn) Sql注入式攻擊注入式攻擊是指利用設(shè)計(jì)上的漏洞,在服務(wù)器上運(yùn)行Sql 命令以達(dá)到的攻擊目的 Select * from 用戶表 where 姓名=name and 密碼=password Select * from 用戶表 where 姓名=111and 密碼=aaaa or 1=1 軟件測試培訓(xùn)軟件測試培訓(xùn) 我們都知道select語句在判斷查詢條件時(shí),遇到或(or)操作就會(huì)忽略下面的與(and)操作,而在上面的語句中1=1的值永遠(yuǎn)

40、為true,這意味著無論在密碼中輸入什么值,均能通過上述的密碼驗(yàn)證!這個(gè)問題的解決很簡單,對用戶輸入的用戶和密碼進(jìn)行合法性判斷,不允許輸入單引號(hào)、等號(hào)等特殊字符。 上述問題雖然看起來簡單,但確實(shí)是存在的。例如在互聯(lián)網(wǎng)上很有名氣的網(wǎng)絡(luò)游戲“笑傲江湖”的早期版本就存在著這樣的問題,這也暴露出很多程序員在編程經(jīng)驗(yàn)和安全意識(shí)上的不足。同時(shí)也提醒我們充分考慮程序的安全性,不可有半點(diǎn)馬虎,一個(gè)看似很小的疏漏可能就會(huì)造成很嚴(yán)重的后果。 軟件測試培訓(xùn)軟件測試培訓(xùn)場景 法 現(xiàn)在的軟件幾乎都是用事件觸發(fā)來控制流程的,事件觸發(fā)時(shí)的情景便形成了場景,而同一事件不同的觸發(fā)順序和處理結(jié)果就形成事件流。這種在軟件設(shè)計(jì)方面的

41、思想也可以引入到軟件測試中,可以比較生動(dòng)地描繪出事件觸發(fā)時(shí)的情景,有利于測試設(shè)計(jì)者設(shè)計(jì)測試用例,同時(shí)使測試用例更容易理解和執(zhí)行。 提出這種測試思想的是Rational 公司,并在RUP2000 中文版當(dāng)中有其詳盡的解釋和應(yīng)用。 用例場景用來描述流經(jīng)用例的路徑,從用例開始到結(jié)束遍歷這條路徑上所有基本流和備選流。 軟件測試培訓(xùn)軟件測試培訓(xùn) 用例場景用來描述流經(jīng)用例的路徑,從用例開始到結(jié)束遍歷這條路徑上所有基本流和備選流。 1基本流和備選流 如圖所示,圖中經(jīng)過用例的每條路徑都用基本流和備選流來表示,直黑線表示基本流,是經(jīng)過用例的最簡單的路徑。備選流用不同的色彩表示,一個(gè)備選流可能從基本流開始,在某個(gè)

42、特定條件下執(zhí)行,然后重新加入基本流中(如備選流1和3);也可能起源于另一個(gè)備選流(如備選流2),或者終止用例而不再重新加入到某個(gè)流(如備選流2和4) 軟件測試培訓(xùn)軟件測試培訓(xùn) 軟件測試培訓(xùn)軟件測試培訓(xùn) 2ATM例子 (1)例子描述 圖所示是ATM例子的流程示意圖。 軟件測試培訓(xùn)軟件測試培訓(xùn) 客戶 銀行系統(tǒng) ATM操作員 提款 轉(zhuǎn)賬 存款 系統(tǒng)啟動(dòng) 圖 ATM流程示意圖 軟件測試培訓(xùn)軟件測試培訓(xùn) 軟件測試培訓(xùn)軟件測試培訓(xùn) (3)用例設(shè)計(jì) 對于這7個(gè)場景中的每一個(gè)場景都需要確定測試用例。可以采用矩陣或決策表來確定和管理測試用例。下面顯示了一種通用格式,其中各行代表各個(gè)測試用例,而各列則代表測試用例

43、的信息。本示例中,對于每個(gè)測試用例,存在一個(gè)測試用例ID、條件(或說明)、測試用例中涉及的所有數(shù)據(jù)元素(作為輸入或已經(jīng)存在于數(shù)據(jù)庫中)以及預(yù)期結(jié)果。 軟件測試培訓(xùn)軟件測試培訓(xùn) 軟件測試培訓(xùn)軟件測試培訓(xùn) (4)數(shù)據(jù)設(shè)計(jì) 一旦確定了所有的測試用例,則應(yīng)對這些用例進(jìn)行復(fù)審和驗(yàn)證以確保其準(zhǔn)確且適度,并取消多余或等效的測試用例。 測試用例一經(jīng)認(rèn)可,就可以確定實(shí)際數(shù)據(jù)值(在測試用例實(shí)施矩陣中)并且設(shè)定測試數(shù)據(jù),如表所示 軟件測試培訓(xùn)軟件測試培訓(xùn) 軟件測試培訓(xùn)軟件測試培訓(xùn)數(shù)據(jù) 驅(qū) 動(dòng) 測試(Data Driven) 概要概要 是一種成熟的自動(dòng)化測試技術(shù)是一種成熟的自動(dòng)化測試技術(shù) 強(qiáng)調(diào)測試邏輯與測試數(shù)據(jù)分離強(qiáng)

44、調(diào)測試邏輯與測試數(shù)據(jù)分離 對于手工測試也是很好的方法對于手工測試也是很好的方法 適用于需要用不同數(shù)據(jù)進(jìn)行重復(fù)測試的適用于需要用不同數(shù)據(jù)進(jìn)行重復(fù)測試的情形情形 通過測試數(shù)據(jù)調(diào)整測試覆蓋率通過測試數(shù)據(jù)調(diào)整測試覆蓋率 軟件測試培訓(xùn)軟件測試培訓(xùn)原理p 以參數(shù)代替測試步驟中原始數(shù)據(jù)以參數(shù)代替測試步驟中原始數(shù)據(jù)p 測試數(shù)據(jù)依參數(shù)保存在數(shù)據(jù)文件中測試數(shù)據(jù)依參數(shù)保存在數(shù)據(jù)文件中(Excel)p 測試步驟和測試數(shù)據(jù)相對分離測試步驟和測試數(shù)據(jù)相對分離p 執(zhí)行時(shí)將測試數(shù)據(jù)按參數(shù)代入測試步驟執(zhí)執(zhí)行時(shí)將測試數(shù)據(jù)按參數(shù)代入測試步驟執(zhí)行行 軟件測試培訓(xùn)軟件測試培訓(xùn)普通測試 在用戶名輸入框輸入“張三” 在口令輸入框輸入“12

45、3456” 點(diǎn)擊“登錄”按鈕 結(jié)果:進(jìn)入論壇 數(shù)據(jù)驅(qū)動(dòng)測試 在用戶名輸入框輸入 在口令輸入框輸入 點(diǎn)擊“登錄”按鈕 結(jié)果:用戶名口令結(jié)果張三123456進(jìn)入論壇張三234561提示密碼錯(cuò)誤,不能進(jìn)入論壇舉例 軟件測試培訓(xùn)軟件測試培訓(xùn)優(yōu)點(diǎn) 大大簡化了測試步驟大大簡化了測試步驟 通過分離測試邏輯和測試數(shù)據(jù),使設(shè)計(jì)測通過分離測試邏輯和測試數(shù)據(jù),使設(shè)計(jì)測試邏輯和數(shù)據(jù)時(shí)分別關(guān)注于使用各自的設(shè)試邏輯和數(shù)據(jù)時(shí)分別關(guān)注于使用各自的設(shè)計(jì)方法計(jì)方法 有利于測試分工的細(xì)化有利于測試分工的細(xì)化 測試邏輯更加簡潔易懂測試邏輯更加簡潔易懂 很容易轉(zhuǎn)化成自動(dòng)測試腳本很容易轉(zhuǎn)化成自動(dòng)測試腳本 軟件測試培訓(xùn)軟件測試培訓(xùn)樣例 一

46、個(gè)簡單的轉(zhuǎn)賬業(yè)務(wù):一個(gè)簡單的轉(zhuǎn)賬業(yè)務(wù):n用戶輸入信息:用戶輸入信息:轉(zhuǎn)出賬戶的賬號(hào)和密碼、轉(zhuǎn)入賬號(hào)、金轉(zhuǎn)出賬戶的賬號(hào)和密碼、轉(zhuǎn)入賬號(hào)、金額以及備注信息額以及備注信息n點(diǎn)擊轉(zhuǎn)賬按鈕進(jìn)行轉(zhuǎn)賬點(diǎn)擊轉(zhuǎn)賬按鈕進(jìn)行轉(zhuǎn)賬1.檢查提示信息是否正確檢查提示信息是否正確 軟件測試培訓(xùn)軟件測試培訓(xùn)Action:Simple Transfer DemoAuthor:YANGLINXIDate:2007.6.21Type:Normal TestingNo.Test Step1Enter 1000000001 in Source Acc Edit Box2Enter 123456 in Password Pass Box

47、3Enter 1000000002 in Target ACC Edit Box4Enter 1000 in Amount Edit Box5Enter some comments in Remark Edit Box6Click Transfer button7Transfer Success should be showed in Message MsgBox樣例:普通測試用例 軟件測試培訓(xùn)軟件測試培訓(xùn)Action:Simple Transfer DemoAuthor:yanglinxiDate:2007.6.21Type:Data Driven TestingNo.TestStep1En

48、ter in Source Acc Edit Box2Enter in Password Pass Box3Enter in Target ACC Edit Box4Enter in “Amount” Edit Box5Enter some comments in Remark Edit Box6Click Transfer button7 should be showed in Message Box樣例:數(shù)據(jù) 驅(qū) 動(dòng) 測試用例.1 軟件測試培訓(xùn)軟件測試培訓(xùn) DataNo.Source AccountPasswordTarget AccountAmountReturn Message1100

49、000000112345610000000021000Transfer Success2100011234561000000002100Invalid Source Account31000000001123456100002100Invalid Target Account4100000000110000000021000Password is blank5數(shù)據(jù) 驅(qū) 動(dòng) 測試用例.2 軟件測試培訓(xùn)軟件測試培訓(xùn)思考題 QQ登錄功能的數(shù)據(jù)驅(qū)動(dòng)測試用例設(shè)計(jì),規(guī)劃其參數(shù)。 軟件測試培訓(xùn)軟件測試培訓(xùn)第三部分其他測試類型 軟件測試培訓(xùn)軟件測試培訓(xùn)功能測試 (functional testing) 對一個(gè)

50、應(yīng)用軟件的功能模塊進(jìn)行黑盒測試。這種測試應(yīng)當(dāng)由測試人員進(jìn)行。但這并不意味著程序員在推出軟件之前不進(jìn)行代碼檢查。(這一原則適用于所有的測試階段。) 包括邏輯功能測試、界面測試、易用性測試、安裝測試、兼容性測試。 軟件測試培訓(xùn)軟件測試培訓(xùn)可用性測試 (usability testing) 是專為“對用戶友好”的特性進(jìn)行測試。這是一種主觀的感覺,取決于最終用戶或顧客。可以進(jìn)行用戶會(huì)見、檢查、對用戶會(huì)議錄像、或者使用其他技術(shù)。程序員和測試人員通常不參加可用性測試。 軟件測試培訓(xùn)軟件測試培訓(xùn)安裝/卸載測試 (install/uninstall testing) 對安裝/卸載進(jìn)行測試 (包括全部、部分、升

51、級操作)。 軟件測試培訓(xùn)軟件測試培訓(xùn)恢復(fù)測試 (recovery testing) 在系統(tǒng)崩潰、硬件故障、或者其他災(zāi)難發(fā)生之后,重新恢復(fù)系統(tǒng)的情況。 軟件測試培訓(xùn)軟件測試培訓(xùn)兼容性測試 (compatability testing) 測試在特殊的硬件/軟件/操作系統(tǒng)/網(wǎng)絡(luò)環(huán)境下的軟件表現(xiàn)。 軟件測試培訓(xùn)軟件測試培訓(xùn)安全測試 (security testing) 測試系統(tǒng)在應(yīng)付非授權(quán)的內(nèi)部/外部訪問、故意的損壞時(shí)的防護(hù)情況。這需要精密復(fù)雜的測試技術(shù)。 軟件測試培訓(xùn)軟件測試培訓(xùn)性能測試 (performance testing) 經(jīng)常可以與“壓力測試”或“負(fù)荷測試”相互代替。理想的“性能測試”(也包括其他任何類型的測試) 都應(yīng)在質(zhì)量保障和測試計(jì)劃的文檔終予以規(guī)定。 包括時(shí)間性能與空間性能 軟件測試培訓(xùn)軟件測試培訓(xùn)可靠性測試 (reliability testing) 也稱為穩(wěn)定性測試,是指連續(xù)運(yùn)行被測系統(tǒng),檢查系統(tǒng)運(yùn)行時(shí)的穩(wěn)定程度。通常用MTBF(錯(cuò)誤發(fā)生的平均時(shí)間間隔)來衡量系統(tǒng)的穩(wěn)定性,MTBF越大,系統(tǒng)的穩(wěn)定性越強(qiáng)。 穩(wěn)定性測試的方法也很簡單,采用24小時(shí)*7天的方式讓系統(tǒng)不間斷運(yùn)行。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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

提交評論