前言:想要寫出一篇引人入勝的文章?我們特意為您整理了小議軟件測試用例的設(shè)計范文,希望能給你帶來靈感和參考,敬請閱讀。
白盒測試技術(shù)中測試用例的設(shè)計方法研究
白盒測試方法的主要作用有:(1)至少測試一次程序子模塊的所有獨立執(zhí)行路徑;(2)針對所有可能的邏輯判定,至少一次取“真”或“假”兩種情況;(3)在運行界限內(nèi)和循環(huán)邊界處執(zhí)行循環(huán)體;(4)測試程序內(nèi)部的數(shù)據(jù)結(jié)構(gòu)的有效性。在實際的數(shù)據(jù)測試中,如果程序具有多種循環(huán)嵌套的情況,不同的執(zhí)行路徑數(shù)目可能是天文數(shù)字,例如一個有5條路徑的嵌套20次循環(huán)的小程序,包含不同執(zhí)行路徑條數(shù)為520次方,如果每一條路徑測試1ms,全年無休時要測試完所有路徑需要約3170年的時間。因此,我們必須采用一些替代辦法,典型的方法是有選擇的執(zhí)行程序中某些最有代表性的通路。白盒測試的主要技術(shù)有:
1根據(jù)程序內(nèi)部的邏輯結(jié)構(gòu)設(shè)計測試用例的技術(shù)—邏輯覆蓋
(1)語句覆蓋,選擇足夠多的測試數(shù)據(jù)以使被測程序中每條語句都至少執(zhí)行一次。語句覆蓋不考慮對程序的邏輯覆蓋,它主要關(guān)心表達式的結(jié)果,卻對每個條件取不同值的情況不做測試。因此,語句覆蓋是比較弱的邏輯覆蓋標準。在圖論中和語句覆蓋對應(yīng)的是點覆蓋。(2)判定覆蓋,又叫分支覆蓋,它首先滿足語句覆蓋的條件,同時對每個判定的每種可能的結(jié)果都至少執(zhí)行一次,即對每個分支都至少執(zhí)行一次每個判定,判定覆蓋對程序的邏輯覆蓋程度也不高。在圖論中和判定覆蓋相對應(yīng)的是邊覆蓋。(3)條件覆蓋,指的是不僅每個語句至少執(zhí)行一次,而且使判定表達式中的每個條件都取到各種可能的結(jié)果,條件覆蓋中可能不包含判定覆蓋。(4)判定/條件覆蓋,指選取足夠多的測試數(shù)據(jù),使得判定表達式中的每個條件都取到各種可能的值,每個判定表達式也取到各種可能的結(jié)果。(5)條件組合覆蓋,要求選擇足夠多的測試數(shù)據(jù),使得每個判定表達式中條件的各種可能組合都至少出現(xiàn)一次。條件組合覆蓋是邏輯覆蓋標準中最強的。(6)路徑覆蓋,指的是選取足夠多的測試數(shù)據(jù),使程序的每條可能路徑都至少執(zhí)行一次。測試用例設(shè)計舉例1:如下圖1所示程序段流程,實現(xiàn)語句覆蓋需要設(shè)計的測試數(shù)據(jù)有:X=0,Y=3和X=-1,Y=2;實現(xiàn)條件覆蓋至少采用的測試數(shù)據(jù)有:X=0,Y=3和X=3,Y=1;實現(xiàn)判定覆蓋至少應(yīng)用的測試數(shù)據(jù)有X=0,Y=3,X=1,Y=2和X=-1,Y=2。
2測試程序的控制結(jié)構(gòu),主要包括條件測試,循環(huán)測試和基本路徑測試。其中基本路徑測試是由TomMcCabe提出的一種白盒測試技術(shù),這種技術(shù)在設(shè)計測試用例時需要首先計算程序的環(huán)形復(fù)雜度,并用該復(fù)雜度為指南定義執(zhí)行路徑的基本集合。在實際測試中,僅靠基本路徑測試還不能滿足要求,還需要結(jié)合條件測試技術(shù)來檢查程序模塊中包含的邏輯條件,還有循環(huán)測試來專門測試循環(huán)結(jié)構(gòu)的有效性。
黑盒測試技術(shù)中的測試用例設(shè)計方法研究
黑盒測試主要用來測試軟件的功能特點,通過黑盒測試可以發(fā)現(xiàn):(1)是否有遺漏了的功能或者不正確的功能;(2)能否有正確的接收輸入和正確的輸出結(jié)果,這主要針對接口而言;(3)是否有外部信息訪問錯誤或數(shù)據(jù)結(jié)構(gòu)錯誤,同時,軟件運行時能否滿足性能上的要求;(4)軟件在初始化或者退出時有無錯誤等;使用黑盒測試同樣不可能將所有可能的輸入條件和輸出條件用于測試,因為測試用例的組合是天文數(shù)字。例如一個程序有兩個輸入量和一個輸出量,在32位計算機上運行,若X,Y取整數(shù),按窮舉測試時需要232×232=264組,如果一組數(shù)據(jù)需要1ms,全年無休,需要5億年的時間。顯然,我們必須設(shè)計合理的方案來減少測試用例的數(shù)量。目前黑盒測試的主要測試用例設(shè)計技術(shù)有:
1等價類劃分
等價類劃分是把程序的輸入域劃分成若干個數(shù)據(jù)類,據(jù)此導(dǎo)出測試用例,因為對于同一類中的數(shù)據(jù)而言其作用是相同的[3]。等價類劃分可以分為有效等價類和無效等價類。有效等價類是指符合程序功能要求的數(shù)據(jù)類,該類中包含的都是有意義的數(shù)據(jù);而無效等價類指不能滿足程序正確運行或者預(yù)期結(jié)果的數(shù)據(jù)類的集合。我們在設(shè)計測試用例時,要同時考慮有效等價類和無效等價類的設(shè)計方案。等價類的劃分有自己的原則。在具體使用等價類劃分設(shè)計測試用例時有兩個步驟:(1)設(shè)計一個新的測試方案以盡可能多地覆蓋尚未被覆蓋的有效等價類,重復(fù)這一步驟直到所有有效等價類都被覆蓋為止;(2)設(shè)計一個新的測試方案,使它覆蓋一個而且只覆蓋一個尚未被覆蓋的無效等價類,重復(fù)這一步驟直到所有無效等價類都被覆蓋為止。
2邊界值分析
使用邊界值分析方法來設(shè)計測試用例時需要開發(fā)者具有一定的經(jīng)驗和創(chuàng)造性,通常根據(jù)劃分的輸入等價類和輸出等價類的邊界來確定邊界值的結(jié)果,即選取剛剛等于、剛剛小于和剛剛大于邊界值的測試數(shù)據(jù),而不是選擇等價類內(nèi)部的數(shù)據(jù)作為測試用例。
3錯誤推測法
錯誤推測法主要依靠直覺和經(jīng)驗,需要有一定開發(fā)大型軟件工程的經(jīng)驗,其基本思想是通過列舉出程序中可能有的錯誤和容易發(fā)生錯誤的特殊情況,并根據(jù)這些情況來選擇測試方案。
小結(jié)
測試用例的設(shè)計方法并不是獨立使用的,而是經(jīng)常會進行一些不同設(shè)計方案的組合,如黑盒測試中的等價類劃分和邊界分析方法可以結(jié)合使用,進步設(shè)計更加合理的測試用例,找出更多的軟件運行錯誤。(本文作者:張炯 單位:中國電信股份有限公司上海分公司)