




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第三章軟件測試的基本技術軟件測試山西大學經濟與管理學院
導讀軟件測試的方法有多種多樣,可以對其從不同角度加以分類。比如說:
可以從是否需要執(zhí)行被測試的軟件的角度
從是否對系統(tǒng)的外部功能還是系統(tǒng)的內容結構的角度
從軟件測試的策略和過程的角度
從不同的角度劃分,有不同的分類方式。這一章作為軟件測試的技術,主要介紹了上述分類中的靜態(tài)測試、動態(tài)測試、黑盒測試和白盒測試的技術。3.1軟件測試技術的分類3.1.1從是否需要執(zhí)行被測軟件的角度分類
從是否需要執(zhí)行被測試軟件的角度劃分,軟件測試可以分成動態(tài)測試(DynamicTesting)和靜態(tài)測試(StaticTesting)兩類。
(1)靜態(tài)測試:就是通過對被測程序的靜態(tài)審查,發(fā)現(xiàn)代碼中潛在的錯誤的測試。也成人工測試或者代碼評審。
(2)動態(tài)測試:動態(tài)測試是通常意義上的測試,即通過使用和運行被測軟件,發(fā)現(xiàn)潛在錯誤。動態(tài)測試的對象必須是能夠由計算機真正運行的被測試的程序。它又包括:黑盒測試和白盒測試。3.1軟件測試技術的分類3.1.2從軟件測試用例設計方法的角度分類
從軟件測試用例設計方法的角度進行分類,軟件測試的技術分為黑盒測試(Black-boxTesting)和白盒測試(White-boxTesting)。
(1)黑盒測試:是一種從用戶角度出發(fā)的測試,又稱為功能測試或者數(shù)據(jù)驅動測試、基于規(guī)格說明的測試等。簡單地說,若測試用例的設計時基于產品的功能,目的是檢查程序各個功能是否實現(xiàn),并檢查其中的功能錯誤,則這種測試方法稱為黑盒測試。
(2)白盒測試:基于產品的內部結構來進行測試,檢查內容操作是否按規(guī)定執(zhí)行,軟件各個功能部分是否得到充分應用。白盒測試又稱為結構測試或者邏輯驅動測試或基于程序的測試。3.1軟件測試技術的分類3.1.3從軟件測試的策略和過程的角度分類
從軟件測試的策略和過程的角度進行分類,軟件測試可分為單元測試(UnitTesting)、集成測試(IntegrationTesting)、確認測試(ValidationTesting)、系統(tǒng)測試(SystemTesting)和驗收測試(VerificationTesting)。
(1)單元測試:是針對每個單元的測試,是軟件測試的最小單位。
(2)集成測試:是對已測試過的模塊進行組裝,對組裝以后的集成塊進行測試。
(3)確認測試:是檢驗所開發(fā)的軟件能否滿足所有功能和性能需求的最后手段。3.1軟件測試技術的分類3.1.3從軟件測試的策略和過程的角度分類
從軟件測試的策略和過程的角度進行分類,軟件測試可分為單元測試(UnitTesting)、集成測試(IntegrationTesting)、確認測試(ValidationTesting)、系統(tǒng)測試(SystemTesting)和驗收測試(VerificationTesting)。
(4)系統(tǒng)測試:主要任務是檢測被測軟件與系統(tǒng)其他部分的協(xié)調性,通常采用黑盒測試的方法。
(5)驗收測試:是軟件產品質量額最后一關,在這一環(huán)節(jié),測試主要從用戶的角度著手,參與者主要是用戶及少量的程序開發(fā)人員,通常采用的測試方法為黑盒測試。3.2靜態(tài)測試和動態(tài)測試3.2.1靜態(tài)測試靜態(tài)測試就是通過對被測程序的靜態(tài)審查,發(fā)現(xiàn)代碼中潛在的錯誤的測試,它和動態(tài)測試的區(qū)別就是是否需要程序被運行。
也就是說,在進行測試的過程中,只要是不需要執(zhí)行代碼,就可以對軟件進行測試的方法,可以看成是靜態(tài)測試方法。反之,需要對軟件執(zhí)行對應代碼的測試方法則為動態(tài)測試。靜態(tài)測試(汽車停止中)踩油門看車漆打開前蓋檢查動態(tài)測試(發(fā)動機運行中)發(fā)動汽車聽發(fā)動機的聲音上路行駛圖3-1靜態(tài)測試與動態(tài)測試比喻圖3.2靜態(tài)測試和動態(tài)測試3.2.1靜態(tài)測試靜態(tài)測試方法的主要特征是在測試源程序時,計算機并不真正運行被測試的程序,只對被測程序進行特性分析,因此,靜態(tài)方法常稱為“分析”,靜態(tài)分析是對被測程序進行特性分析的一些方法的總稱。
所謂靜態(tài)分析,就是不需要執(zhí)行所測試的程序,而只是通過掃描程序正文,對程序的數(shù)據(jù)流和控制流等信息進行分析,找出系統(tǒng)的缺陷,得出測試報告的過程。
靜態(tài)測試包括代碼檢查、靜態(tài)結構分析、代碼質量度量等。它可以由人工進行,充分發(fā)揮人的邏輯思維又是,也可以借助軟件工具自動進行。3.2靜態(tài)測試和動態(tài)測試3.2.1靜態(tài)測試通常在靜態(tài)測試階段進行以下一些測試活動:
(1)檢查算法的邏輯正確性
(2)檢查模塊接口的正確性
(3)檢查輸入參數(shù)是否有合法性檢查
(4)檢查調用其他模塊的接口是否正確,檢查實參類型、實參個數(shù)是否正確,返回值是否正確
(5)檢查是否設置了適當?shù)爻鲥e處理
(6)檢查表達式、語句是否正確,是否含有二義性3.2靜態(tài)測試和動態(tài)測試3.2.1靜態(tài)測試通常在靜態(tài)測試階段進行以下一些測試活動:
(7)檢查常量或全局變量使用是否正確
(8)檢查標識符的使用是否規(guī)范、一致,變量命名是否能做到忘名知意、簡潔、規(guī)范和易記
(9)檢查程序風格的一致性、規(guī)范性,代碼是否符合行業(yè)規(guī)范,是否所有模塊的代碼風格一致、規(guī)范
(10)檢查代碼是否可以優(yōu)化,算法效率是否最高
(11)檢查代碼注釋是否完整,是否正確反映了代碼的功能,并查找錯誤的注釋。3.2靜態(tài)測試和動態(tài)測試3.2.2動態(tài)測試動態(tài)測試是通常意義上的測試,即通過使用和運行被測軟件,發(fā)現(xiàn)潛在錯誤。動態(tài)測試的對象必須是能夠由計算機真正運行的被測試的程序。它是通過源程序運行時所體現(xiàn)出來的特征,來進行執(zhí)行跟蹤、時間分析以及測試覆蓋等方面的測試。
動態(tài)測試方法的基本步驟如下:
(1)選取定義域的有效值,或選取定義域外的無效值。
(2)對已選取值決定預期的結果。
(3)用選取值執(zhí)行程序。
(4)將執(zhí)行結果與預期的結果進行對比,不吻合則說明程序有誤。3.3黑盒測試方法3.3.1黑盒測試方法概述
黑盒測試是一種從用戶角度出發(fā)的測試,又稱為功能測試或者數(shù)據(jù)驅動測試、基于規(guī)格說明的測試。黑盒測試的基本觀點是:任何程序都可以看做是從輸入定義域映射到輸出值域的函數(shù)過程。它將被測程序視為一個打不開的黑盒子,盒子中的內容完全不知道,只知道盒子是要做成什么樣子的。
黑盒測試方法著重測試軟件的功能需求,是在程序接口上進行測試主要是為了發(fā)現(xiàn)以下的錯誤:
(1)是否有不正確的功能或者是遺漏的功能;
(2)接口能否正確地接收輸入數(shù)據(jù)并產生正確的輸出結果;3.3黑盒測試方法3.3.1黑盒測試方法概述黑盒測試方法著重測試軟件的功能需求,是在程序接口上進行測試主要是為了發(fā)現(xiàn)以下的錯誤:
(3)是否有數(shù)據(jù)結構錯誤或外部信息訪問錯誤;
(4)性能是否能夠滿足要求;
(5)是否有程序初始化和終止方面的錯誤。3.3黑盒測試方法3.3.1黑盒測試方法概述黑盒測試有兩個顯著的特點:
(1)黑盒測試不考慮軟件的具體實現(xiàn)過程,當在軟件實現(xiàn)的過程發(fā)生變化時,測試用例仍然可以使用;
(2)黑盒測試用例的設計可以喝軟件實現(xiàn)同時進行,這樣能夠壓縮總的開發(fā)時間。
黑盒測試有兩種基本方法,即通過測試和失敗測試。3.3黑盒測試方法3.3.2等價類劃分法(1)等價類劃分法概述
等價類劃分法是黑盒測試用例設計中一種常用的設計方法,它將不能窮舉的測試過程進行合理分類,從而保證設計出來的測試用例具有完整性和代表性。
等價類劃分法把所有可能的輸入數(shù)據(jù),即程序的輸入域劃分成若干部分,然后每一個子集中選取少數(shù)具有代表性的數(shù)據(jù)作為測試用例。
所謂等價類是指輸入域的某個子集合。所有等價類的并集就是整個輸入域。對揭露程序中的故障來說,等價類中的每個元素是等效的。
3.3黑盒測試方法3.3.2等價類劃分法(1)等價類劃分法概述軟件不能只接收合理有效的數(shù)據(jù),也要具有處理異常數(shù)據(jù)的功能,這樣的測試才能確保軟件具有更高的可靠性。因此,在劃分等價類的過程中,不但要考慮有效等價類劃分,同時也要考慮無效等價類的劃分。
有效等價類是指對軟件規(guī)格說明來說,合理、有意義的輸入數(shù)據(jù)所構成的集合。
無效等價類則和有效等價類相反,即不滿足程序輸入要求,或者無效輸入的數(shù)據(jù)所構成的集合。abcdefg3.3黑盒測試方法3.3.2等價類劃分法(1)等價類劃分法概述使用等價類劃分法,首先必須在分析需求規(guī)格說明的基礎上劃分等價類。
其次,建立等價類表,列出所有的等價類。
再次根據(jù)已列出的等價類表,按下述步驟確定測試用例:
(1)為每一個等價類規(guī)定一個唯一的編號
(2)設計一個新的測試用例,使其能盡肯能多的覆蓋有效等價類
(3)設計一個新的測試用例,使其僅覆蓋一個無效等價類3.3黑盒測試方法3.3.2等價類劃分法等價類劃分測試舉例在三角形問題中,輸入條件要求:
整數(shù);三個數(shù);取值在1到100之間3.3黑盒測試方法3.3.2等價類劃分法等價類劃分測試舉例
輸入三個整數(shù)有效等價類號碼無效等價類號碼整數(shù)1一邊為非整數(shù)二邊為非整數(shù)三邊均為非整數(shù)456三個數(shù)2只有一條邊只有二條邊多余三條邊7893一邊為零二邊為零三邊為零101112一邊<零二邊<零三邊<零131415一邊>100二邊>100三邊>1001617183.3黑盒測試方法3.3.2等價類劃分法三角形問題的無效等價類測試用例abc覆蓋的等價類abc覆蓋的等價類1.5,4,540,0,0123.5,2.5,55-3,4,6132.5,4.5,5.562,-7,-51437-3,-5,-7154,58101,4,8162,3,4,593,101,101173,0,810101,101,101180,6,0113.3黑盒測試方法3.3.2等價類劃分法(2)常見等價劃分形式針對是否對無效數(shù)據(jù)進行測試,可以將等價類測試分為以下幾種具體的形式:
標準等價類測試
健壯等價類測試
對等區(qū)間劃分3.3黑盒測試方法3.3.2等價類劃分法標準等價類和健壯等價類測試三角形問題有四種可能輸出:非三角形,一般三角形,等腰三角形和等邊三角形。利用這些信息來確定輸出(值域)等價類R1={<a,b,c>:邊為a,b,c的等邊三角形}R2={<a,b,c>:邊為a,b,c的等腰三角形}R3={<a,b,c>:邊為a,b,c的一般三角形}R4={<a,b,c>:邊a,b,c不能形成三角形}3.3黑盒測試方法3.3.2等價類劃分法四個標準等價類測試用例是:測試用例abc預期輸出Test1Test2Test3Test4523452415352等邊三角形等腰三角形一般三角形非三角形3.3黑盒測試方法3.3.2等價類劃分法考慮a,b,c的無效值產生了下面7個健壯等價類測試用例是:測試用例abc預期輸出Test1Test2Test3Test4Test5Test6Test73-1551015545-1551015555-155101一般三角形a值不在允許的范圍內b值不在允許的范圍內c值不在允許的范圍內a值不在允許的范圍內b值不在允許的范圍內c
值不在允許的范圍內3.3黑盒測試方法3.3.3等價類的指導方針如果執(zhí)行語言是強類型的,則沒有必要使用健壯等價類測試。如果錯誤輸入檢查非常重要,則應進行健壯等價類測試。如果輸入數(shù)據(jù)以離散值區(qū)間或集合的形式定義,則等價類測試是合適的。在發(fā)現(xiàn)“合適”的等價關系之前,可能需要進行多次嘗試。3.3黑盒測試方法3.3.3邊界值分析法(1)邊界值分析法
邊界值分析法是一種補充等價類劃分法的測試用例設計技術,不同于等價類劃分法選擇等價類的任意元素,它選擇等價類的邊界來設計測試用例。使用邊界值分析方法設計測試用例時,首先應確定邊界情況。比如,在作三角形計算時,要輸入三角形的三個邊長:a、b和a。當滿足a+b>c、a+c>b及b+c>a才能構成三角形。但如果把三個不等式的任何一個大于號“>”錯寫成大于等于號“≥”,那就無法構成三角形了。3.3黑盒測試方法3.3.3邊界值分析法
/*Createa10elementintegerarray*//*Initiatizeeachelementto–1*/main(){intdata[10];inti;For(i=1;10;i++)data(i)=-1;}
這段代碼的意圖是創(chuàng)建包含10個元素的數(shù)組,并為數(shù)組中的每一個元素賦初值-1,即數(shù)組中從第1個元素到第10個元素被賦予數(shù)值-1。3.3黑盒測試方法3.3.3邊界值分析法data(0)=0;data(1)=-1;data(2)=-1;data(3)=-1;data(4)=-1;data(5)=-1;data(6)=-1;data(7)=-1;data(8)=-1;data(9)=-1;data(10)=-1
data(0)的值是0,而不是-1。3.3黑盒測試方法3.3.3邊界值分析法(1)邊界值分析法在應用邊界值分析法設計測試用例時,應遵循以下幾條原則:
1)如果輸入條件規(guī)定了值得范圍,則應取剛達到這個范圍的邊界值以及剛剛超過這個范圍的邊界值。
2)如果輸入條件規(guī)定了值的個數(shù),則用最大個數(shù)、最小個數(shù)、比最小少1,比最大多1的數(shù)作為測試數(shù)據(jù)。3)如果程序的規(guī)格說明給出了輸入域或者輸出域是有序集合,則應選取集合的第一個元素和最后一個元素。4)如果程序中使用了一個內部數(shù)據(jù)結構,則應當選擇這個內部數(shù)據(jù)結構的邊界值作為測試用例。3.3黑盒測試方法3.3.3邊界值分析法(2)邊界條件與次邊界條件邊界條件是基于應用程序的功能設計需要考慮的因素,可以從軟件的規(guī)格說明或常識中得到,也是最終用戶通常最容易發(fā)現(xiàn)問題的部分。
次邊界條件是指在測試用例設計過程中,某些邊界條件是不需要呈現(xiàn)給用戶的,或者說用戶很難注意到這些問題,但這些邊界條件確實同時屬于檢驗范疇內的邊界條件,成為內邊界條件或者次邊界條件。其主要有以下幾種:
1)數(shù)值的邊界檢驗
2)字符的邊界檢驗3.3黑盒測試方法3.3.3邊界值分析法(3)三角形問題的邊界值分析測試用例邊長下界為1,邊長上界可取為100。
測試用例abc預期輸出Test150501等腰三角形Test250502等腰三角形Test3505050等邊三角形Test4505099等腰三角形Test55050100非腰三角形Test650150等腰三角形Test750250等腰三角形Test8509950等腰三角形Test95010050非三角形Test1015050等腰三角形Test1125050等腰三角形Test12995050等腰三角形Test131005050非三角形邊界值分析測試用例測試用例abc預期輸出Test150501等腰三角形Test250502等腰三角形Test3505050等邊三角形Test4505099等腰三角形Test55050100非腰三角形Test650150等腰三角形Test750250等腰三角形Test8509950等腰三角形Test95010050非三角形Test1015050等腰三角形Test1125050等腰三角形Test12995050等腰三角形Test131005050非三角形邊界值分析測試用例測試用例abc預期輸出Test150501等腰三角形Test250502等腰三角形Test3505050等邊三角形Test4505099等腰三角形Test55050100非腰三角形Test650150等腰三角形Test750250等腰三角形Test8509950等腰三角形Test95010050非三角形Test1015050等腰三角形Test1125050等腰三角形Test12995050等腰三角形Test131005050非三角形測試用例abc預期輸出Test150501等腰三角形Test250502等腰三角形Test3505050等邊三角形Test4505099等腰三角形Test55050100非腰三角形Test650150等腰三角形Test750250等腰三角形Test8509950等腰三角形Test95010050非三角形Test1015050等腰三角形Test1125050等腰三角形Test12995050等腰三角形Test131005050非三角形3.3黑盒測試方法3.3.4決策表法(1)決策表法簡介
在所有的黑盒測試方法中,基于決策表的測試最為嚴格,最具有邏輯性。其主要有四個部分組成:
條件樁:列出了問題的所有條件
動作樁:列出了問題規(guī)定的可能采取的操作
條件項:針對條件樁給出的條件列出所有可能的取值。
動作項:與條件項金木相關,列出了在條件項的各組取值情況下應采取的動作。
任何一個條件組合的特定取值以及其要執(zhí)行的操作稱為一條規(guī)則。3.3黑盒測試方法3.3.4決策表法(1)決策表法簡介
根據(jù)軟件規(guī)格說明,建立決策表的步驟如下:
1)確定規(guī)則的個數(shù)。
2)列出所有的條件樁和動作樁。
3)填入條件項。
4)填入動作像,得到初始決策表。
5)簡化,合并相似的規(guī)則。3.3黑盒測試方法3.3.4決策表法在實際使用判定表時,常常先將它簡化。簡化是以合并相似規(guī)則為目標的。若表中有兩條或多條規(guī)則具有相同的動作,并且在條件項之間存在著極為相似的關系,便可以設法將其合并?!安魂P心”條目(don’tcare)條件無關或條件不適用。3.3黑盒測試方法3.3.4決策表法(2)決策表法的應用c3:a,b,c構成一個三角形?c2:a=b?c3:a=c?c4:b=c?a1:非三角形a2:一般三角形a3:等腰三角形a4:等邊三角形a5:不可能N---YYYY
三角問題的決策表YYYNYYNYYYNNYNYYYNYNYNNYYNNN合并相似規(guī)則后三角形問題的決策表如下:
3.3黑盒測試方法3.3.4決策表法(2)決策表法的應用擴展的三角問題的決策表c1:a<b+c?c2:b<a+c?c3:c<a+b?c4:a=b?c5:a=c?c6:b=c?a1:非三角形a2:一般三角形a3:等腰三角形a4:等邊三角形a5:不可能F-----TF----TTF---TTTTTTTTTTTFTTTTFTTTTTFFTTTFTTTTTFTFTTTFFTTTTFFF3.3黑盒測試方法3.3.4決策表法(2)決策表法的應用用例abc預期輸出test1412非三角形test2142非三角形test3124非三角形test4555等邊三角形test5???不可能test6???不可能test7223等腰三角形test8???不可能test9232等腰三角形test10322等腰三角形test11345一般三角形
三角形問題的決策表測試用例3.3黑盒測試方法3.3.4決策表法(3)決策表方法適用于以下應用程序
if-then-else邏輯突出。輸入變量之間存在邏輯關系。涉及輸人變量子集的計算。輸入與輸出之間存在因果關系。3.3黑盒測試方法3.3.4決策表法(2)適合于使用決策表設計測試用例的情況有:
規(guī)格說明以決策表形式給出,或是容易轉換成決策表。
條件的排列順序不會也不應影響執(zhí)行的操作。
規(guī)則的排列順序不會也不應影響執(zhí)行的操作。
每當某一規(guī)則的條件已經滿足,并確定要執(zhí)行的操作后,不必檢驗別的規(guī)則。
如果某一規(guī)則得到滿足要執(zhí)行多個操作,這些操作的執(zhí)行順序無關緊要。。3.3黑盒測試方法3.3.5因果圖法因果圖法是一種利用圖解法分析輸入的各種組合情況,從而設計測試用例的一種方法。它適合檢查程序輸入條件的各種組合情況。因果圖的基本符號3.3黑盒測試方法3.3.5因果圖法因果圖法是一種利用圖解法分析輸入的各種組合情況,從而設計測試用例的一種方法。它適合檢查程序輸入條件的各種組合情況。約束符號3.3黑盒測試方法3.3.5因果圖法
因果圖法的主要步驟如下:
(1)分析軟件規(guī)格說明書中的輸入條件和輸出條件,并且分析出等價類。
(2)將對應的輸入與輸入之間、輸入與輸出之間的關系連接起來,并且將其中不可能的組合情況標注成約束或者限制條件,形成因果圖。
(3)將因果圖轉換為決策表。
(4)將決策表的每一列作為依據(jù),設計測試用例。3.3黑盒測試方法3.3.5因果圖法分析關聯(lián)轉換輸出根據(jù)組合間的關聯(lián)與約束,形成因果圖由因果圖轉換為判定表由判定表導出測試用例分析輸入、輸出數(shù)據(jù)之間的關系3.3黑盒測試方法3.3.5因果圖法軟件需求規(guī)格說明如下:第一列字符必須是A或B,第二列字符必須是一個數(shù)字,在此情況下進行文件的修改,但如果第一列字符不正確,則給出信息L;如果第二列字符不是數(shù)字,則給出信息M。步驟一:分析程序規(guī)格說明書,識別哪些是原因,哪些是結果,原因往往是輸入條件或者輸入條件的等價類,而結果常常是輸出條件。如下所示:
3.3黑盒測試方法3.3.5因果圖法原因:
1--第一列字符是A;
2--第一列字符是B;
3--第二列字符是一數(shù)字。結果:
21--修改文件;
22--給出信息L;
23--給出信息M。3.3黑盒測試方法3.3.5因果圖法
步驟三:狀態(tài)1和狀態(tài)2不能同時為1,輸入3個狀態(tài)只有6種取值123456原因111000020011003101010結果210000112210100023010101測試用例A3A5AMA7B5B4BNB!C2X6DYP;3.3黑盒測試方法3.3.6黑盒測試方法的選擇(1)黑盒測試方法的優(yōu)缺點
黑盒測試方法的優(yōu)點:
適用于各個測試階段;
從產品功能角度進行測試;
容易入手生成測試數(shù)據(jù)。
黑盒測試的缺點:
某些代碼得不到測試;
如果規(guī)則說明有誤,無法發(fā)現(xiàn);
不易充分進行測試。3.3黑盒測試方法3.3.6黑盒測試方法的選擇(2)各種黑盒測試方法的選擇
在確定黑盒測試時,應該遵循如下的原則:
1)根據(jù)程序的重要性和一旦發(fā)生故障將造成的損失程度來確定測試等級和測試重點。
2)認真選擇測試策略,以便能盡可能少地使用測試用例
3)進行等價劃分
4)在任何情況下都必須使用邊界值法
5)檢查測試用例的覆蓋程度,如果缺少要及時補充
6)如果程序中含有輸入條件組合情況,則應一開始就選用因果圖法3.4白盒測試方法白盒測試指測試軟件產品的內部結構和處理過程,而不測試軟件產品的功能,用于糾正軟件系統(tǒng)在描述、表示和規(guī)格上的錯誤,是進一步測試的前提,也稱作結構測試或者邏輯驅動測試。
白盒子測試分靜態(tài)和動態(tài)兩種:靜態(tài)白盒測試是在不執(zhí)行的條件下有條理地仔細審查軟件設計、體系結構和代碼,從而找出軟件缺陷的過程,有時也稱為結構分析。動態(tài)白盒測試也稱結構化測試,通過查看并使用代碼的內部結構,設計和執(zhí)行測試。
白盒測試的主要方法有邏輯覆蓋、基本路徑測試等,它主要用于對軟件的驗證測試。3.4白盒測試方法3.4.1邏輯覆蓋測試邏輯覆蓋是一種使用最廣泛的結構測試方法。邏輯覆蓋以程序內部的邏輯結構為基礎設計測試用例,要求對被測程序的邏輯結構有清楚的了解,甚至要能掌握源程序的所有細節(jié)。由于覆蓋測試的目標不同,邏輯覆蓋又可分為:語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋及路徑覆蓋。3.4白盒測試方法下面的一小段程序來討論。
if((age>25)AND(sex=M))thencommission=commission+150;endifif(age>=50OR(commission>2000.0))thencommission=commission-200;
endif3個變量為:年齡age、性別sex、傭金commission3.4白盒測試方法3.4.1邏輯覆蓋測試(1)語句覆蓋語句覆蓋要求設計若干個測試用例,運行被測程序,使程序中的每個可執(zhí)行語句至少被執(zhí)行一次。這里所謂“若干”,自然是越少越好。Test1:age=50,sex=M,comm=2500作為測試用例,則程序按路徑ace執(zhí)行。這樣該程序段的4個語句都得到執(zhí)行,從而作到了語句覆蓋。a、b、c、d和e為控制流上程序點。3.4白盒測試方法3.4.1邏輯覆蓋測試(1)語句覆蓋
Test2:age=50,sex=F,comm=2500程序則按abe執(zhí)行,沒有達到語句覆蓋。a、b、c、d和e為控制流上程序點。3.4白盒測試方法3.4.1邏輯覆蓋測試(1)語句覆蓋
Test2:age=50,sex=F,comm=2500程序則按abe執(zhí)行,沒有達到語句覆蓋。從程序中每個語句都得到執(zhí)行這一點來看,語句覆蓋的方法似乎能夠比較全面地檢驗被測程序的每一個語句。但語句覆蓋是很弱的邏輯覆蓋準則。a、b、c、d和e為控制流上程序點。3.4白盒測試方法3.4.1邏輯覆蓋測試(2)判斷覆蓋判斷覆蓋是指涉及若干測試用例,執(zhí)行被測試程序時,使程序中每個判斷條件的真值分支和假值分支至少執(zhí)行以便。在保證完成要求的情況下,測試用例的數(shù)目同樣越少越好,判斷覆蓋又稱為分支覆蓋。若選用兩組測試用例:Test1:age=50,sex=M,comm.=2500Test3:age=20,sex=M,comm.=1500則分別執(zhí)行路徑ace和abd,從而使兩個判斷的4個分支c,e和b,d分別得到檢測。a、b、c、d和e為控制流上程序點。3.4白盒測試方法3.4.1邏輯覆蓋測試(2)判斷覆蓋若選用另外兩組測試用例:Test4age=40,sex=M,comm.=1500Test5age=50,sex=F,comm.=1900
則分別路徑acd及abe,同樣也可覆蓋4個分支。a、b、c、d和e為控制流上程序點。3.4白盒測試方法3.4.1邏輯覆蓋測試(2)判斷覆蓋若選用另外兩組測試用例:Test4age=40,sex=M,comm.=1500Test5age=50,sex=F,comm.=1900
則分別路徑acd及abe,同樣也可覆蓋4個分支。上述兩組測試用例不僅滿足判定覆蓋,同時還滿足語句覆蓋。判定覆蓋比語句覆蓋更強一些。a、b、c、d和e為控制流上程序點。3.4白盒測試方法3.4.1邏輯覆蓋測試(2)判斷覆蓋但需要注意的是判斷覆蓋只作到判定覆蓋仍無法確定判斷內部條件的錯誤。如果在此程序段中第2個判斷條件comm>2000錯寫成comm<2000,使用上述測試用例Test5,age=50,sex=F,comm=1900照樣能按原路徑執(zhí)行(abe),不影響結果。但無法判定內部條件。a、b、c、d和e為控制流上程序點。3.4白盒測試方法3.4.1邏輯覆蓋測試(2)判斷覆蓋但需要注意的是判斷覆蓋只作到判定覆蓋仍無法確定判斷內部條件的錯誤。如果在此程序段中第2個判斷條件comm>2000錯寫成comm<2000,使用上述測試用例Test5,age=50,sex=F,comm=1900照樣能按原路徑執(zhí)行(abe),不影響結果。但無法判定內部條件。a、b、c、d和e為控制流上程序點。3.4白盒測試方法3.4.1邏輯覆蓋測試(3)條件覆蓋條件覆蓋要求設計若干測試用例,執(zhí)行被測程序,使得程序中每個判斷的每個條件的可能取值至少被執(zhí)行一次。a、b、c、d和e為控制流上程序點。第一個判斷應考慮到:age>25取真值,記為T1age>25取假值,即age≤25,記為sex=M取真值,記為T2:sex=M取假值,即sex=F,記為第2個判斷應考慮到;Age>=50取真值,記為T3Age>=50取假值,即age<50,記為comm.>2000取真值,記為T4comm.>2000取假值,記為
3.4白盒測試方法3.4.1邏輯覆蓋測試(3)條件覆蓋
3個測試用例覆蓋了4個條件的8種情況。覆蓋了兩個判斷的4個分支b、c、d和c。覆蓋了條件的測試用例不一定覆蓋了分支。例如下面的測試用例它只覆蓋了4個分支中的兩個。
測試用例
agesexcomm
所走路徑
覆蓋條件
Test1
Test3
Test550
M2500.0
20M1500.0
50F1900.0
ace
abd
abe
T1T2T3T4
1T
T23T
4T
T12T
T34T
測試用例
agesexcomm
所走路徑
覆蓋分支
覆蓋條件
Test6Test7
20M2100.0
50F1500.0
abe
abe
be
be
1T
T23T
T4
T12T
T34T
3.4白盒測試方法3.4.1邏輯覆蓋測試(4)判定/條件覆蓋判定/條件覆蓋要求設計足夠的測試用例,執(zhí)行被測程序,使得判斷中每個條件的所有可能取值至少被執(zhí)行一次,同時每個判斷的所有可能判斷結果也至少被執(zhí)行一次。a、b、c、d和e為控制流上程序點。兩個判斷各包含兩個條件,這4個條件在兩個判斷中可能有8種組合,它們是:1)age>25,sex=M,記為T1,T22)age>25,sex=F,記為T1,3)age≤25,sex=M,記為,T24)age≤25,sex=F,記為,5)age50,comm>2000.0,記為T3,T46)age50,comm≤2000.0記為T3,7)age<50,comm>2000.0,記為,T48)age<50,comm≤2000.0,記為3.4白盒測試方法3.4.1邏輯覆蓋測試(4)判定/條件覆蓋
4個測試用例覆蓋了所有的條件組合,同時也覆蓋了4個分支,但只覆蓋了3條路徑,漏掉了路徑acd。
測試用例
agesexcomm
所走路徑
覆蓋組合
覆蓋條件
Test1
Test6
Test7
Test8
50M2500
20M2000.0
50F1500.0
20M1500
ace
abe
abe
abd
4)8)
T1,T2,T3,T4
1T
T23T
T4
T12T
T34T
1T
2T
3T
4T
3)7)1)5)2)6)3.4白盒測試方法3.4.1邏輯覆蓋測試(4)判定/條件覆蓋
4個測試用例覆蓋了所有的條件組合,同時也覆蓋了4個分支,但只覆蓋了3條路徑,漏掉了路徑acd。
測試用例
agesexcomm
所走路徑
覆蓋組合
覆蓋條件
Test1
Test6
Test7
Test8
50M2500
20M2000.0
50F1500
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 與貓有關的課件邊框素材
- 新疆喀什市深喀第一高級中學2025年高三下學期1月第一次聯(lián)合考試物理試題含解析
- 不同職業(yè)課件
- 江蘇省徐州市新城實驗校2024-2025學年第二學期初三年級一模考試英語試題試卷含答案
- 上海現(xiàn)代化工職業(yè)學院《路橋檢測》2023-2024學年第二學期期末試卷
- 南昌大學共青學院《中西文化比較研究》2023-2024學年第二學期期末試卷
- 云南昆明市黃岡實驗學校2025屆高三高考模擬考試生物試題含解析
- 拉薩師范高等??茖W校《營銷國際英語》2023-2024學年第一學期期末試卷
- 柳州職業(yè)技術學院《汽車電子控制技術》2023-2024學年第二學期期末試卷
- 上海市靜安區(qū)風華中學2025屆高三下學期期末教學質量檢測試題試卷化學試題含解析
- 廣西壯族自治區(qū)貴港市覃塘區(qū)2023-2024學年七年級下學期7月期末歷史試題(無答案)
- 食堂生物防治制度
- 2024年時事政治必考試題庫及參考答案一套
- 《陸上風電場工程施工安裝技術規(guī)程》(NB/T 10087-2018 )
- 2024詳解《中華人民共和國愛國主義教育法》主題課件
- JTS105-1-2011 港口建設項目環(huán)境影響評價規(guī)范
- 輸電線路(電纜)工程施工作業(yè)票典型模板(2024版)
- 護理非計劃拔管應急預案
- 保險的起源和發(fā)展講述課件
- 機械臂路徑規(guī)劃與運動控制
- 傳染病報告管理工作技術指南
評論
0/150
提交評論