版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、軟件測試培訓軟件測試培訓軟件測試培訓 主講:張愷 EMAIL:軟件測試的方法和技術 軟件測試培訓軟件測試培訓 第一部分白盒測試 第二部分黑盒測試 第三部分其他測試類型 軟件測試培訓軟件測試培訓第一部分白盒測試 軟件測試培訓軟件測試培訓 此方法,它允許測試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關信息,設計或選擇測試用例,對程序所有邏輯路徑進行測試。 軟件測試培訓軟件測試培訓 白盒測試也稱為結(jié)構(gòu)測試或邏輯驅(qū)動測試,前提是知道產(chǎn)品內(nèi)部工作過程,可通過測試來檢測產(chǎn)品內(nèi)部動作是否按照規(guī)格說明書的規(guī)定正常進行,按照程序內(nèi)部的結(jié)構(gòu)測試程序,檢驗程序中的每條通路是否都能夠按預定要求正確工作,而不管產(chǎn)品的功能,主要用于
2、軟件驗證。 軟件測試培訓軟件測試培訓 白盒測試方法又可分為靜態(tài)測試和動態(tài)測試。靜態(tài)測試是一種不通過執(zhí)行程序而進行測試的技術,其關鍵功能是檢查軟件的表示和描述是否一致,沒有沖突或者沒有歧義。它瞄準的是糾正軟件系統(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)設計測試用例,其原則是: (1)保證一個模塊中的所有獨立路徑至少被使用一次; (2)對所有邏輯值均需測試
3、true和false; (3)在上下邊界及可操作范圍內(nèi)運行所有循環(huán); (4)檢查內(nèi)部數(shù)據(jù)結(jié)構(gòu)以確保其有效性。 軟件測試培訓軟件測試培訓 對一個具有的程序,。給出一個小程序的流程圖,它包括了一個執(zhí)行20次的循環(huán)。 包含的不同執(zhí)行路徑數(shù)達520條,對每一條路徑進行測試需要1毫秒,假定一年工作365 24小時,要想把所有路徑測試完,需3170年。 軟件測試培訓軟件測試培訓 軟件測試培訓軟件測試培訓 下面將介紹幾種實用的白盒測試用例設計方法,包括程序插樁、邏輯覆蓋、基本路徑測試等。 軟件測試培訓軟件測試培訓程序插樁 在軟件動態(tài)測試中,程序插樁是一種基本的測試手段,有著廣泛的應用。 1方法簡介 程序插樁
4、方法是借助往被測程序中插入操作,來實現(xiàn)測試目的的方法。 軟件測試培訓軟件測試培訓 如果我們想要了解一個程序在某次運行中所有可執(zhí)行語句被覆蓋的情況,或是每個語句的實際執(zhí)行次數(shù),最好的辦法是利用插樁技術。這里僅以計算整數(shù)X和整數(shù)Y的最大公約數(shù)程序為例,說明插樁方法的要點。 軟件測試培訓軟件測試培訓 入口 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ù)程序的流程圖 軟件測試培訓軟件測試培訓 設計插樁程序時需要考慮的問題包括: 探
5、測哪些信息; 在程序的什么部位設置探測點; 需要設置多少個探測點。 軟件測試培訓軟件測試培訓 2斷言語句(Assert) 在程序中特定部位插入某些用以判斷變量特性的語句,使得程序執(zhí)行中這些語句得以證實,從而使程序的運行特性得到證實。我們把插入的這些語句稱為斷言。這一做法是程序正確性證明的基本步驟,盡管算不上嚴格的證明,但方法本身仍然是很實用的。 軟件測試培訓軟件測試培訓思考題 計算兩個數(shù)的最小公倍數(shù)。 軟件測試培訓軟件測試培訓邏輯覆蓋 邏輯覆蓋是以程序內(nèi)部的邏輯結(jié)構(gòu)為基礎的設計測試用例的技術,是通過對程序邏輯結(jié)構(gòu)的遍歷實現(xiàn)程序的覆蓋,它是一系列測試過程的總稱,這組測試過程逐漸進行越來越完整的通
6、路測試。這一方法要求測試人員對程序的邏輯結(jié)構(gòu)有清楚的了解,甚至要能掌握源程序的所有細節(jié)。它屬于動態(tài)測試。 軟件測試培訓軟件測試培訓 從覆蓋源程序語句的詳細程度分析,邏輯覆蓋標準有語句覆蓋、判定覆蓋、條件覆蓋、條件判定組合覆蓋、多條件覆蓋和修正條件判定覆蓋。 為便于理解,使用如下所示的程序及其流程圖。 軟件測試培訓軟件測試培訓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) 軟件測試培訓軟件測試培訓 int function1(bool a,bool b,bool c) int x; x=0;
7、 if(a&(b|c) x=1; return x; 軟件測試培訓軟件測試培訓 1語句覆蓋 為了暴露程序中的錯誤,程序中的每條語句至少應該執(zhí)行一次。所以,語句覆蓋的含義是:選擇足夠多的測試數(shù)據(jù),使被測程序中每條語句至少執(zhí)行一次。 軟件測試培訓軟件測試培訓 2判定覆蓋 比語句覆蓋稍強的覆蓋標準是判定覆蓋。按判定覆蓋準則進行測試是指,設計若干測試用例,運行被測程序,使得程序中每個判斷的取真分支和取假分支至少經(jīng)歷一次,即判斷的真假值均曾被滿足。判定覆蓋又稱為分支覆蓋。 軟件測試培訓軟件測試培訓 3條件覆蓋 在設計程序中,一個判定語句是由多個條件組合而成的復合判定。 條件覆蓋的含義是:構(gòu)造一組
8、測試用例,使得每一判定語句中每個邏輯條件的可能值至少滿足一次。 軟件測試培訓軟件測試培訓 4條件判定組合覆蓋 條件判定組合覆蓋的含義是:設計足夠的測試用例,使得判定中每個條件的所有可能(真/假)至少出現(xiàn)一次,并且每個判定本身的判定結(jié)果(真/假)也至少出現(xiàn)一次。 軟件測試培訓軟件測試培訓 5多條件覆蓋 多條件覆蓋也稱為條件組合覆蓋,它的含義是:設計足夠的測試用例,使得每個判定中條件的各種可能組合都至少出現(xiàn)一次。顯然滿足多條件覆蓋的測試用例是一定滿足判定覆蓋、條件覆蓋和條件判定組合覆蓋的。 軟件測試培訓軟件測試培訓 6修正條件判定覆蓋 它要求滿足兩個條件:首先,每一個程序模塊的入口和出口點都要考慮
9、至少被調(diào)用一次,每個程序的判定到所有可能的結(jié)果值要至少轉(zhuǎn)換一次;其次,程序的判定被分解為通過邏輯操作符(and、or)連接的bool條件,每個條件對于判定的結(jié)果值是獨立的。 軟件測試培訓軟件測試培訓 7測試覆蓋準則 (1)Foster的ESTCA覆蓋準則 前面所介紹的邏輯覆蓋其出發(fā)點似乎是合理的。所謂“覆蓋”,就是想要做到全面而無遺漏。但是,事實表明,它并不能真的做到無遺漏。 K.A.Foster從測試工作實踐的教訓出發(fā),吸收了計算機硬件的測試原理,提出了一種經(jīng)驗型的測試覆蓋準則。 軟件測試培訓軟件測試培訓 (2)Woodward等人的層次LCSAJ覆蓋準則 Woodward等人曾經(jīng)指出結(jié)構(gòu)覆
10、蓋的一些準則,如分支覆蓋或路徑覆蓋,都不足以保證測試數(shù)據(jù)的有效性。為此,他們提出了一種層次LCSAJ覆蓋準則。 軟件測試培訓軟件測試培訓基本路徑測試 上節(jié)的例子是個比較簡單的程序段,只有兩條路徑。但在實際問題中,即使一個不太復雜的程序,其路徑的組合都是一個龐大的數(shù)字。 如果把覆蓋的路徑數(shù)壓縮到一定限度內(nèi),例如,程序中的循環(huán)體只執(zhí)行零次和一次,就成為基本路徑測試。 設計出的測試用例要保證在測試中程序的每一條可執(zhí)行語句至少執(zhí)行一次。 軟件測試培訓軟件測試培訓 1程序的控制流圖 控制流圖是描述程序控制流的一種圖示方式。其中基本的控制結(jié)構(gòu)對應的圖形符號如圖所示。在圖所示的圖形符號中,圓圈稱為控制流圖的
11、一個結(jié)點,它表示一個或多個無分支的語句或源程序語句。 軟件測試培訓軟件測試培訓 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é)點 R 4 圖 控制流圖的圖形符號 軟件測試培訓軟件測試培訓圖 程序流程圖和對應的控制流圖 圖(a)所示的是一個程序的流程圖,它可以映射成圖(b)所示的控制流圖。 軟件測試培訓軟件測試培訓 2計算程序環(huán)路復雜性 進行程序的基本路徑測試時,程序的環(huán)路復雜性給出了程序基本路徑集合中的獨立路徑條數(shù),這是確保程序中每個可執(zhí)行語句至少執(zhí)行一次所必須的測試用例數(shù)目的上界。
12、所謂獨立路徑,是指包括若干未曾處理的語句或條件的一條路徑 軟件測試培訓軟件測試培訓 基本路徑集不是惟一的,對于給定的控制流圖,可以得到不同的基本路徑集。 通常環(huán)路復雜性可用以下3種方法求得。 將環(huán)路復雜性定義為控制流圖中的區(qū)域數(shù)。 設E為控制流圖的邊數(shù),N為圖的結(jié)點數(shù),則定義環(huán)路的復雜性為V(G)=EN+2。 若設P為控制流圖中的判定結(jié)點數(shù),則有V(G)=P+1。 軟件測試培訓軟件測試培訓 3基本路徑測試法步驟 基本路徑測試法適用于模塊的詳細設計及源程序,其主要步驟如下。 以詳細設計或源代碼作為基礎,導出程序的控制流圖。 計算得到的控制流圖G的環(huán)路復雜性V(G)。 確定線性無關的路徑的基本集。
13、 生成測試用例,確?;韭窂郊忻織l路徑的執(zhí)行。 軟件測試培訓軟件測試培訓思考題計算兩個數(shù)的最小公倍數(shù)的程序的基礎上,畫出流程圖,并計算V(G)。#include int main()int a,b;scanf(%d %d,&a,&b);int temp;if(ab)temp=a;a=b;b=temp;/保證a是較小的那個數(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ù) 軟件測試培訓軟件測試培訓程序的靜態(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)用關系圖、模塊控制流圖、內(nèi)部文件調(diào)用關系圖、子程序表、宏和函數(shù)參數(shù)表等各類圖形圖表,可以清晰地標識整個軟件系統(tǒng)的組成結(jié)構(gòu),使其便于閱讀與理解,然后可以通過分析這些圖表,檢查軟件有沒有存在缺陷或錯誤。 軟件測試培訓軟件測試培訓 通常采用以下一些方法進行源程序的靜態(tài)分析。 (1)生成各種引用表 標號交叉引用表 變量交叉引用表 子程序(宏、函數(shù))引用表 等價表 常數(shù)表 軟件測試培訓軟件測試培訓 (2)錯誤靜態(tài)分析 錯誤靜態(tài)分析主要用于確定在源程序中是否有某類錯誤或“危險”結(jié)構(gòu)。 類型和單位分析 引用分析
15、表達式分析 接口分析 軟件測試培訓軟件測試培訓 2人工測試 靜態(tài)分析中進行人工測試的主要方法有桌前檢查、代碼審查和走查。經(jīng)驗表明,使用這種方法能夠有效地發(fā)現(xiàn)30%70%的邏輯設計和編碼錯誤。 軟件測試培訓軟件測試培訓 (1)桌前檢查 由程序員自己檢查自己編寫的程序。程序員在程序通過編譯之后,進行單元測試設計之前,對源程序代碼進行分析、檢驗,并補充相關的文檔,目的是發(fā)現(xiàn)程序中的錯誤。 軟件測試培訓軟件測試培訓 (2)代碼審查 代碼審查是由若干程序員和測試員組成一個審查小組,通過閱讀、討論和爭議,對程序進行靜態(tài)分析的過程。 代碼審查分兩步。第一步,小組負責人提前把設計規(guī)格說明書、控制流程圖、程序文
16、本及有關要求、規(guī)范等分發(fā)給小組成員,作為審查的依據(jù)。小組成員在充分閱讀這些材料后,進入審查的第二步,召開程序?qū)彶闀?軟件測試培訓軟件測試培訓 (3)走查 走查與代碼審查基本相同,其過程分為兩步。第一步也把材料先發(fā)給走查小組每個成員,讓他們認真研究程序,然后再開會。開會的程序與代碼審查不同,不是簡單地讀程序和對照錯誤檢查表進行檢查,而是讓與會者“充當”計算機,即首先由測試組成員為被測程序準備一批有代表性的測試用例,提交給走查小組。走查小組開會,集體扮演計算機角色,讓測試用例沿程序的邏輯運行一遍,隨時記錄程序的蹤跡,供分析和討論用。 軟件測試培訓軟件測試培訓其他白盒測試方法簡介 1域測試 域測試
17、是一種基于程序結(jié)構(gòu)的測試方法。 域測試正是在分析輸入域的基礎上,選擇適當?shù)臏y試點以后進行測試的。 軟件測試培訓軟件測試培訓 2符號測試 符號測試的基本思想是允許程序的輸入不僅僅是具體的數(shù)值數(shù)據(jù),而且包括符號值,這一方法也因此而得名。 軟件測試培訓軟件測試培訓 3Z路徑覆蓋 分析程序中的路徑是指檢驗程序從入口開始,執(zhí)行過程中經(jīng)歷的各個語句,直到出口。 軟件測試培訓軟件測試培訓 4程序變異 程序變異方法是一種錯誤驅(qū)動測試。所謂錯誤驅(qū)動測試方法,是指該方法是針對某類特定程序錯誤的。經(jīng)過多年的測試理論研究和軟件測試的實踐,人們逐漸發(fā)現(xiàn)要想找出程序中所有的錯誤幾乎是不可能的。比較現(xiàn)實的解決辦法是將錯誤的
18、搜索范圍盡可能地縮小,以利于專門測試某類錯誤是否存在。 錯誤驅(qū)動測試主要有兩種,即程序強變異和程序弱變異。 軟件測試培訓軟件測試培訓 最后,歸納一下白盒測試中各種測試方法的應用策略。 在白盒測試中,可以使用各種測試方法的綜合策略如下。 (1)在測試中,應盡量先使用工具進行靜態(tài)結(jié)構(gòu)分析。 (2)測試中可采取先靜態(tài)后動態(tài)的組合方式:先進行靜態(tài)結(jié)構(gòu)分析、代碼檢查,再進行覆蓋率測試。 軟件測試培訓軟件測試培訓 (3)利用靜態(tài)分析的結(jié)果作為導引,通過代碼檢查和動態(tài)測試的方式對靜態(tài)發(fā)現(xiàn)結(jié)果進行進一步的確認,使測試工作更為有效。 (4)覆蓋率測試是白盒測試的重點,一般可使用基本路徑測試法達到語句覆蓋標準;對
19、于軟件的重點模塊,應使用多種覆蓋率標準衡量代碼的覆蓋率。 軟件測試培訓軟件測試培訓 (5)在不同的測試節(jié)點,測試的側(cè)重點不同:在單元測試階段,以代碼檢查、邏輯覆蓋為主;在集成測試階段,需要增加靜態(tài)結(jié)構(gòu)分析等;在系統(tǒng)測試階段,應根據(jù)黑盒測試的結(jié)果,采取相應的白盒測試。 軟件測試培訓軟件測試培訓第二部分黑盒測試 軟件測試培訓軟件測試培訓 這種方法是把看做,測試人員完全不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特性,只依據(jù)程序的需求規(guī)格說明書,檢查程序的功能是否符合它的功能說明。 黑盒測試又叫做或。 軟件測試培訓軟件測試培訓 黑盒測試方法是在程序接口上進行測試,主要是為了發(fā)現(xiàn)以下錯誤: ? 在接口上,? ? (
20、例如數(shù)據(jù)文件)? ? ? 軟件測試培訓軟件測試培訓 用黑盒測試發(fā)現(xiàn)程序中的錯誤,必須在中確定測試數(shù)據(jù),來檢查程序是否都能產(chǎn)生正確的輸出。 但這是的。 軟件測試培訓軟件測試培訓2039歲6點4059歲4點年年齡齡60歲以上20歲以下2點MALE5點性性別別FEMALE3點已婚3點婚婚姻姻未婚5點扶扶養(yǎng)養(yǎng)人人數(shù)數(shù)一 人 扣 0.5 點 最 多 扣 3 點 ( 四 舍 五 入 取 整 數(shù) ) 假設一個程序P有輸入量X和Y及輸出量Z。在字長為32位的計算機上運行。若X、Y取整數(shù),按黑盒方法進行窮舉測試: 可能采用的 測試數(shù)據(jù)組: 232232 264 如果測試一 組數(shù)據(jù)需要1毫秒,一年工作365 24
21、小時,完成所有測試需5億年。 軟件測試培訓軟件測試培訓 黑盒測試方法主要有等價類劃分、邊界值分析、因果圖、錯誤推測、功能圖法等,主要用于軟件確認測試。 軟件測試培訓軟件測試培訓等價類劃分法 等價類劃分是一種典型的黑盒測試方法。使用這一方法時,完全不考慮程序的內(nèi)部結(jié)構(gòu),只依據(jù)程序的規(guī)格說明來設計測試用例。由于不可能用所有可以輸入的數(shù)據(jù)來測試程序,而只能從全部可供輸入的數(shù)據(jù)中選擇一個自己進行測試。如何選擇適當?shù)淖蛹?,使其盡可能多地發(fā)現(xiàn)錯誤,解決的辦法之一就是等價類劃分。 軟件測試培訓軟件測試培訓 軟件測試培訓軟件測試培訓 軟件測試培訓軟件測試培訓劃分等價類的原則.1 軟件測試培訓軟件測試培訓劃分等
22、價類的原則.2 軟件測試培訓軟件測試培訓劃分等價類的原則.3 軟件測試培訓軟件測試培訓劃分等價類的原則.4 軟件測試培訓軟件測試培訓劃分等價類的原則.5 (5) (5) 在規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則情況下,在規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則情況下,可確立一個有效等價類可確立一個有效等價類( (符合規(guī)則符合規(guī)則) )和若干個無效和若干個無效等價類等價類( (從不同角度違反規(guī)則從不同角度違反規(guī)則) )。 軟件測試培訓軟件測試培訓根據(jù)等價類劃分選取用例/數(shù)據(jù) 軟件測試培訓軟件測試培訓劃分等價類的實例.1 軟件測試培訓軟件測試培訓劃分等價類的實例.2 某工廠公開招工,在報名系統(tǒng)年齡輸入框某工廠公開招工,
23、在報名系統(tǒng)年齡輸入框中規(guī)定報名者年齡應在中規(guī)定報名者年齡應在1967年年02月月1986年年03月之間。月之間。即出生年月不在上述范圍內(nèi),即出生年月不在上述范圍內(nèi),將拒絕接受,并顯示將拒絕接受,并顯示“年齡不合格年齡不合格”等出等出錯信息。錯信息。 軟件測試培訓軟件測試培訓輸入輸入數(shù)據(jù)數(shù)據(jù)有效等價類有效等價類無效等價類無效等價類出生年月出生年月6 6位數(shù)字字符位數(shù)字字符 有非數(shù)字字符有非數(shù)字字符 少于少于6 6個數(shù)字符個數(shù)字符 多于多于6 6個數(shù)字符個數(shù)字符對應數(shù)值對應數(shù)值 在196702198603之間198603月份對應月份對應數(shù)值數(shù)值在112之間等于“0” 12劃分等價類的實例.3 軟件
24、測試培訓軟件測試培訓 根據(jù)下面給出的規(guī)格說明,利用等價類劃根據(jù)下面給出的規(guī)格說明,利用等價類劃分的方法,給出足夠的測試用例。分的方法,給出足夠的測試用例。 “一個程序讀入一個程序讀入3個整數(shù),把這三個數(shù)值看個整數(shù),把這三個數(shù)值看作一個三角形的作一個三角形的3條邊的長度值。這個程序條邊的長度值。這個程序要打印出信息,說明這個三角形是不等邊要打印出信息,說明這個三角形是不等邊的、是等腰的、還是等邊的。的、是等腰的、還是等邊的?!?一個很重要的例子.1 軟件測試培訓軟件測試培訓 我們可以設三角形的我們可以設三角形的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。一個很重要的例子.2 軟件測試培訓軟件測試培訓輸入條件輸入條件有效等價類有效等價類無效等價類無效等價類 是否是否三邊都大三邊都大于于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)一個很重要的例子.3 軟件測試培訓軟件測試培訓序號序號【A,B,C】覆蓋等價類覆蓋等價類輸出輸出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)一個很重要的例子.4 軟件測試培訓軟件測試培訓思考題-設計出測試用例 保險費率計算 人 人 保 險 公 司 承 擔 人 壽 保 險 已 有 多 年 歷 史 , 該 公 司 保 費 計 算 方 式 為 投 保 額 保 險 率 , 保 險 率 又 依 點 數(shù) 不 同 而 有 別 , 10 點 以 上 費 率 為 0.6 % , 10 點 以 下 費 率 為 0.1 % : 軟件測試培訓軟件測試培訓思考題N
30、oImage輸入數(shù)據(jù)說明。 軟件測試培訓軟件測試培訓邊界值分析法 人們從長期的測試工作經(jīng)驗得知,大量的錯誤是發(fā)生在輸入或輸出范圍的邊界上,而不是在輸入范圍的內(nèi)部。因此針對各種邊界情況設計測試用例,可以查出更多的錯誤。 使用邊界值分析方法設計測試用例,首先應確定邊界情況。 軟件測試培訓軟件測試培訓 軟件測試培訓軟件測試培訓 選擇測試用例的原則如下。 1、 如果輸入條件規(guī)定了值的范圍,則應該取剛達到這個范圍的邊界值,以及剛剛超過這個范圍邊界的值作為測試輸入數(shù)據(jù)。 2、 如果輸入條件規(guī)定了值的個數(shù),則用最大個數(shù)、最小個數(shù)、比最大個數(shù)多1個、比最小個數(shù)少1 個的數(shù)作為測試數(shù)據(jù)。 軟件測試培訓軟件測試培
31、訓 3、 如果程序的規(guī)格說明給出的輸入域或輸出域是有序集合(如有序表、順序文件等),則應選取集合的第一個和最后一個元素作為測試用例。 軟件測試培訓軟件測試培訓 4、如果程序用了一個內(nèi)部結(jié)構(gòu),應該選取這個內(nèi)部數(shù)據(jù)結(jié)構(gòu)的邊界值作為測試用例。 5、分析規(guī)格說明,找出其他可能的邊界條件。 軟件測試培訓軟件測試培訓 使用邊界值分析方法設計測試用例,首先應確定邊界情況。,而不是選取等價類中的典型值或任意值做為測試數(shù)據(jù) 依據(jù)邊界值分析法確定測試用例依據(jù)邊界值分析法確定測試用例 Id 110個字母 地址 010個漢字 郵編 6個數(shù)字 軟件測試培訓軟件測試培訓 軟件測試培訓軟件測試培訓 軟件測試培訓軟件測試培訓
32、思考題-設計出測試用例 找零錢最佳組合 假 設 商 店 貨 品 價 格 (R) 皆 不 大 於 100 元 ( 且 為 整 數(shù) ) , 若 顧 客 付 款 在 100 元 內(nèi) (P) , 求 找 給 顧 客 之 最 少 貨幣 個(張) 數(shù) ? ( 貨 幣 面 值 50 元 (N50) , 10 元 (N10) , 5 元 (N5) , 1 元 (N1) 四 種 ) 軟件測試培訓軟件測試培訓因果圖法 軟件測試培訓軟件測試培訓因果圖生成基本步驟.1 軟件測試培訓軟件測試培訓因果圖生成基本步驟.2 軟件測試培訓軟件測試培訓 在因果圖中出現(xiàn)的基本符號通常在因果圖中用Ci表示原因,用Ei表示結(jié)果,各結(jié)點
33、表示狀態(tài),可取值“0”或“1”?!?”表示某狀態(tài)不出現(xiàn),“1”表示某狀態(tài)出現(xiàn)。 軟件測試培訓軟件測試培訓若若a1則則b1若若a1則則b0因果圖 - 基本符號.1 軟件測試培訓軟件測試培訓若若a或或b或或c1則則d1 若若ab1則則c1因果圖 - 基本符號.2 軟件測試培訓軟件測試培訓因果圖 - 約束條件.1 軟件測試培訓軟件測試培訓因果圖 - 約束條件.2 軟件測試培訓軟件測試培訓因果圖 - 約束條件.3 軟件測試培訓軟件測試培訓因果圖 - 約束條件.4 軟件測試培訓軟件測試培訓因果圖 - 約束條件.5 軟件測試培訓軟件測試培訓因果圖示例.1 軟件測試培訓軟件測試培訓因果圖示例.2 軟件測試培
34、訓軟件測試培訓因果圖示例.3 軟件測試培訓軟件測試培訓因果圖示例.4已投幣已按鈕 軟件測試培訓軟件測試培訓因果圖示例.5 軟件測試培訓軟件測試培訓判定表驅(qū)動分析方法.1 判定表又稱為決策表。判定表又稱為決策表。 當模塊中包含當模塊中包含復雜的條件組合復雜的條件組合,并要根據(jù),并要根據(jù)這些條件這些條件選擇動作選擇動作時,使用判定表能清晰時,使用判定表能清晰地表示出復雜的條件組合與各種動作之間地表示出復雜的條件組合與各種動作之間的對應關系。的對應關系。 軟件測試培訓軟件測試培訓 條件樁 條件項 (條件的組合) 動作樁 動作項判定表驅(qū)動分析方法.2 一張判定表的田字型結(jié)構(gòu):條件樁、條件項、一張判定表
35、的田字型結(jié)構(gòu):條件樁、條件項、動作項、動作樁規(guī)則。動作項、動作樁規(guī)則。 決策表的讀表方法:順時針方向。決策表的讀表方法:順時針方向。 軟件測試培訓軟件測試培訓判定表驅(qū)動分析方法.3 條件樁:列出了問題的所有條件。通常認為列出的條件的次序無關緊要。 動作樁:列出了問題規(guī)定可能采取的操作。這些操作的排列順序沒有約束。 條件項:列出針對它所列條件的取值,在所有可能情況下的真假值。 動作項:列出在條件項的各種取值情況下應該采取的動作。 軟件測試培訓軟件測試培訓判定表驅(qū)動分析方法.4 判定表的繪制步驟:判定表的繪制步驟:判定表中列出多少組條件取值,也就有多少條判定表中列出多少組條件取值,也就有多少條規(guī)則
36、,條件項和動作項就有多少列。規(guī)則,條件項和動作項就有多少列。確定規(guī)則的個數(shù)。假如有確定規(guī)則的個數(shù)。假如有n n個條件,每個條個條件,每個條件有兩面?zhèn)€取值件有兩面?zhèn)€取值(0,1)(0,1),故有,故有2n2n種規(guī)則。種規(guī)則。列出所有的條件樁和動作樁列出所有的條件樁和動作樁填入條件項填入條件項填入動作項。制定判定表填入動作項。制定判定表簡化。合并相似規(guī)則或者相同動作。簡化。合并相似規(guī)則或者相同動作。 軟件測試培訓軟件測試培訓 舉例舉例 問題說明:問題說明:“某貨運站收費標準如下:如某貨運站收費標準如下:如果收件地點在本省,則快件每公斤果收件地點在本省,則快件每公斤5 5元,慢元,慢件每公斤件每公斤
37、3 3元;如果收件地點在外省,則在元;如果收件地點在外省,則在2020公斤以內(nèi)(含公斤以內(nèi)(含2020公斤)快件每公斤公斤)快件每公斤7 7元,元,慢件每公斤慢件每公斤5 5元,而超過元,而超過2020公斤時,快件每公斤時,快件每公斤公斤9 9元,慢件每公斤元,慢件每公斤7 7元。元?!?判定表驅(qū)動分析方法.5 軟件測試培訓軟件測試培訓條件取值含義收件地址在本省?Y是N否郵件重量20公斤?Y是N否快慢件?Y快件N慢件判定表驅(qū)動分析方法.6 條件取值分析表條件取值分析表 軟件測試培訓軟件測試培訓12345678條件樁收件地址在本?。縔YYYNNNN條件項郵件重量20公斤?YYNNYYNN快慢件?
38、YNYNYNYN動作樁3元/公斤XX動作項5元/公斤XXX7元/公斤XX9元/公斤X判定表驅(qū)動分析方法.7 判定表判定表 軟件測試培訓軟件測試培訓Y YN NY N*YN-*p 簡化判定表簡化判定表判定表驅(qū)動分析方法.8 軟件測試培訓軟件測試培訓123456條件樁收件地址在本省?YYNNNN條件項郵件重量20公斤?_YYNN快慢件?YNYNYN動作樁3元/公斤X動作項5元/公斤XX7元/公斤XX9元/公斤X判定表驅(qū)動分析方法.9 化簡后的判定表化簡后的判定表 軟件測試培訓軟件測試培訓錯誤推測法 人們也可以靠經(jīng)驗和直覺推測程序中可能存在的各種錯誤,從而有針對性地編寫檢查這些錯誤的例子。這就是錯誤
39、推測法。 錯誤推測法的基本想法是:列舉出程序中所有可能有的錯誤和容易發(fā)生錯誤的特殊情況,根據(jù)它們選擇測試用例。 軟件測試培訓軟件測試培訓 軟件測試培訓軟件測試培訓 Sql注入式攻擊注入式攻擊是指利用設計上的漏洞,在服務器上運行Sql 命令以達到的攻擊目的 Select * from 用戶表 where 姓名=name and 密碼=password Select * from 用戶表 where 姓名=111and 密碼=aaaa or 1=1 軟件測試培訓軟件測試培訓 我們都知道select語句在判斷查詢條件時,遇到或(or)操作就會忽略下面的與(and)操作,而在上面的語句中1=1的值永遠
40、為true,這意味著無論在密碼中輸入什么值,均能通過上述的密碼驗證!這個問題的解決很簡單,對用戶輸入的用戶和密碼進行合法性判斷,不允許輸入單引號、等號等特殊字符。 上述問題雖然看起來簡單,但確實是存在的。例如在互聯(lián)網(wǎng)上很有名氣的網(wǎng)絡游戲“笑傲江湖”的早期版本就存在著這樣的問題,這也暴露出很多程序員在編程經(jīng)驗和安全意識上的不足。同時也提醒我們充分考慮程序的安全性,不可有半點馬虎,一個看似很小的疏漏可能就會造成很嚴重的后果。 軟件測試培訓軟件測試培訓場景 法 現(xiàn)在的軟件幾乎都是用事件觸發(fā)來控制流程的,事件觸發(fā)時的情景便形成了場景,而同一事件不同的觸發(fā)順序和處理結(jié)果就形成事件流。這種在軟件設計方面的
41、思想也可以引入到軟件測試中,可以比較生動地描繪出事件觸發(fā)時的情景,有利于測試設計者設計測試用例,同時使測試用例更容易理解和執(zhí)行。 提出這種測試思想的是Rational 公司,并在RUP2000 中文版當中有其詳盡的解釋和應用。 用例場景用來描述流經(jīng)用例的路徑,從用例開始到結(jié)束遍歷這條路徑上所有基本流和備選流。 軟件測試培訓軟件測試培訓 用例場景用來描述流經(jīng)用例的路徑,從用例開始到結(jié)束遍歷這條路徑上所有基本流和備選流。 1基本流和備選流 如圖所示,圖中經(jīng)過用例的每條路徑都用基本流和備選流來表示,直黑線表示基本流,是經(jīng)過用例的最簡單的路徑。備選流用不同的色彩表示,一個備選流可能從基本流開始,在某個
42、特定條件下執(zhí)行,然后重新加入基本流中(如備選流1和3);也可能起源于另一個備選流(如備選流2),或者終止用例而不再重新加入到某個流(如備選流2和4) 軟件測試培訓軟件測試培訓 軟件測試培訓軟件測試培訓 2ATM例子 (1)例子描述 圖所示是ATM例子的流程示意圖。 軟件測試培訓軟件測試培訓 客戶 銀行系統(tǒng) ATM操作員 提款 轉(zhuǎn)賬 存款 系統(tǒng)啟動 圖 ATM流程示意圖 軟件測試培訓軟件測試培訓 軟件測試培訓軟件測試培訓 (3)用例設計 對于這7個場景中的每一個場景都需要確定測試用例。可以采用矩陣或決策表來確定和管理測試用例。下面顯示了一種通用格式,其中各行代表各個測試用例,而各列則代表測試用例
43、的信息。本示例中,對于每個測試用例,存在一個測試用例ID、條件(或說明)、測試用例中涉及的所有數(shù)據(jù)元素(作為輸入或已經(jīng)存在于數(shù)據(jù)庫中)以及預期結(jié)果。 軟件測試培訓軟件測試培訓 軟件測試培訓軟件測試培訓 (4)數(shù)據(jù)設計 一旦確定了所有的測試用例,則應對這些用例進行復審和驗證以確保其準確且適度,并取消多余或等效的測試用例。 測試用例一經(jīng)認可,就可以確定實際數(shù)據(jù)值(在測試用例實施矩陣中)并且設定測試數(shù)據(jù),如表所示 軟件測試培訓軟件測試培訓 軟件測試培訓軟件測試培訓數(shù)據(jù) 驅(qū) 動 測試(Data Driven) 概要概要 是一種成熟的自動化測試技術是一種成熟的自動化測試技術 強調(diào)測試邏輯與測試數(shù)據(jù)分離強
44、調(diào)測試邏輯與測試數(shù)據(jù)分離 對于手工測試也是很好的方法對于手工測試也是很好的方法 適用于需要用不同數(shù)據(jù)進行重復測試的適用于需要用不同數(shù)據(jù)進行重復測試的情形情形 通過測試數(shù)據(jù)調(diào)整測試覆蓋率通過測試數(shù)據(jù)調(diào)整測試覆蓋率 軟件測試培訓軟件測試培訓原理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ù)據(jù)按參數(shù)代入測試步驟執(zhí)執(zhí)行時將測試數(shù)據(jù)按參數(shù)代入測試步驟執(zhí)行行 軟件測試培訓軟件測試培訓普通測試 在用戶名輸入框輸入“張三” 在口令輸入框輸入“12
45、3456” 點擊“登錄”按鈕 結(jié)果:進入論壇 數(shù)據(jù)驅(qū)動測試 在用戶名輸入框輸入 在口令輸入框輸入 點擊“登錄”按鈕 結(jié)果:用戶名口令結(jié)果張三123456進入論壇張三234561提示密碼錯誤,不能進入論壇舉例 軟件測試培訓軟件測試培訓優(yōu)點 大大簡化了測試步驟大大簡化了測試步驟 通過分離測試邏輯和測試數(shù)據(jù),使設計測通過分離測試邏輯和測試數(shù)據(jù),使設計測試邏輯和數(shù)據(jù)時分別關注于使用各自的設試邏輯和數(shù)據(jù)時分別關注于使用各自的設計方法計方法 有利于測試分工的細化有利于測試分工的細化 測試邏輯更加簡潔易懂測試邏輯更加簡潔易懂 很容易轉(zhuǎn)化成自動測試腳本很容易轉(zhuǎn)化成自動測試腳本 軟件測試培訓軟件測試培訓樣例 一
46、個簡單的轉(zhuǎn)賬業(yè)務:一個簡單的轉(zhuǎn)賬業(yè)務:n用戶輸入信息:用戶輸入信息:轉(zhuǎn)出賬戶的賬號和密碼、轉(zhuǎn)入賬號、金轉(zhuǎn)出賬戶的賬號和密碼、轉(zhuǎn)入賬號、金額以及備注信息額以及備注信息n點擊轉(zhuǎn)賬按鈕進行轉(zhuǎn)賬點擊轉(zhuǎn)賬按鈕進行轉(zhuǎn)賬1.檢查提示信息是否正確檢查提示信息是否正確 軟件測試培訓軟件測試培訓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樣例:普通測試用例 軟件測試培訓軟件測試培訓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ū) 動 測試用例.1 軟件測試培訓軟件測試培訓 DataNo.Source AccountPasswordTarget AccountAmountReturn Message1100
49、000000112345610000000021000Transfer Success2100011234561000000002100Invalid Source Account31000000001123456100002100Invalid Target Account4100000000110000000021000Password is blank5數(shù)據(jù) 驅(qū) 動 測試用例.2 軟件測試培訓軟件測試培訓思考題 QQ登錄功能的數(shù)據(jù)驅(qū)動測試用例設計,規(guī)劃其參數(shù)。 軟件測試培訓軟件測試培訓第三部分其他測試類型 軟件測試培訓軟件測試培訓功能測試 (functional testing) 對一個
50、應用軟件的功能模塊進行黑盒測試。這種測試應當由測試人員進行。但這并不意味著程序員在推出軟件之前不進行代碼檢查。(這一原則適用于所有的測試階段。) 包括邏輯功能測試、界面測試、易用性測試、安裝測試、兼容性測試。 軟件測試培訓軟件測試培訓可用性測試 (usability testing) 是專為“對用戶友好”的特性進行測試。這是一種主觀的感覺,取決于最終用戶或顧客??梢赃M行用戶會見、檢查、對用戶會議錄像、或者使用其他技術。程序員和測試人員通常不參加可用性測試。 軟件測試培訓軟件測試培訓安裝/卸載測試 (install/uninstall testing) 對安裝/卸載進行測試 (包括全部、部分、升
51、級操作)。 軟件測試培訓軟件測試培訓恢復測試 (recovery testing) 在系統(tǒng)崩潰、硬件故障、或者其他災難發(fā)生之后,重新恢復系統(tǒng)的情況。 軟件測試培訓軟件測試培訓兼容性測試 (compatability testing) 測試在特殊的硬件/軟件/操作系統(tǒng)/網(wǎng)絡環(huán)境下的軟件表現(xiàn)。 軟件測試培訓軟件測試培訓安全測試 (security testing) 測試系統(tǒng)在應付非授權(quán)的內(nèi)部/外部訪問、故意的損壞時的防護情況。這需要精密復雜的測試技術。 軟件測試培訓軟件測試培訓性能測試 (performance testing) 經(jīng)常可以與“壓力測試”或“負荷測試”相互代替。理想的“性能測試”(也包括其他任何類型的測試) 都應在質(zhì)量保障和測試計劃的文檔終予以規(guī)定。 包括時間性能與空間性能 軟件測試培訓軟件測試培訓可靠性測試 (reliability testing) 也稱為穩(wěn)定性測試,是指連續(xù)運行被測系統(tǒng),檢查系統(tǒng)運行時的穩(wěn)定程度。通常用MTBF(錯誤發(fā)生的平均時間間隔)來衡量系統(tǒng)的穩(wěn)定性,MTBF越大,系統(tǒng)的穩(wěn)定性越強。 穩(wěn)定性測試的方法也很簡單,采用24小時*7天的方式讓系統(tǒng)不間斷運行。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 吉林師范大學《書法技法解析》2021-2022學年第一學期期末試卷
- 書法愛好者交流會活動方案
- 吉林師范大學《行政法與行政訴訟法》2021-2022學年第一學期期末試卷
- 市政工程深基坑開挖安全方案
- 企業(yè)內(nèi)部安保與秩序維護方案
- 吉林大學《作物栽培學Ⅱ》2021-2022學年第一學期期末試卷
- 吉林大學《新聞攝影》2021-2022學年第一學期期末試卷
- 2024水穩(wěn)碎石混合料采購合同
- 生態(tài)修復沉淀池施工方案
- 吉林大學《水科學導論》2021-2022學年第一學期期末試卷
- 空運提單格式
- 課件零件手冊vespa gts250ie2011-2013cina
- 咽喉解剖生理醫(yī)學課件
- 幼兒園課件《撓撓小怪物》
- 骨質(zhì)疏松癥-PPT課件
- 調(diào)查問卷-“職工之家”建設調(diào)查問卷
- 2019年11月系統(tǒng)集成項目管理工程師真題
- 小小建筑師公開課-PPT課件
- 完整版老舊住宅小區(qū)綜合整治工程施工組織設計方案
- 小學三年級(12)班家長會課件
- 裝配式模殼剪力墻體系的標準解讀及工程應用
評論
0/150
提交評論