楊悅
摘要:軟件測(cè)試的類型通常分為白盒測(cè)試和黑盒測(cè)試,其中基于等價(jià)類的劃分法與基于判定表的測(cè)試法都是較為典型和實(shí)用的黑盒測(cè)試技術(shù)方法。在實(shí)際工作中,為了使測(cè)試用例的覆蓋更加全面,測(cè)試目的更加明確,通常不僅僅局限于某一種測(cè)試手段。針對(duì)等價(jià)類和判定表這兩種方法各自的特點(diǎn),可以將兩者有機(jī)結(jié)合,通過(guò)對(duì)輸入條件進(jìn)行等價(jià)類劃分,對(duì)輸出行為進(jìn)行判定表列舉,用綜合的手段進(jìn)行軟件測(cè)試工作,從而達(dá)到使測(cè)試用例的設(shè)計(jì)覆蓋全面、條理清晰的目的。
關(guān)鍵詞:等價(jià)類;判定表;軟件測(cè)試
中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2012)05-1194-03
The Application of The Software Testing Method Combining Equivalence Partition with Decision Table
YANG Yue
(The Software Testing Center of Shanghai Academy of Spaceflight Technology, Shanghai 201109, China)
Abstract: The types of software testing are usually sorted as white box testing and black box testing.The testing methods based on equiva? lence partition and decision table are both typical and practical black box testing skills.In practical working,to make the coverage of testing more comprehensive and to make the purpose of testing more specific,the usual thought is to use not only one certain way to do the test. According to the individual characteristics of these two methods,it is feasible to combine these two methods together,by partitioning the equivalence of input conditions and listing the dicision table of output activities of the testing program module.This combining method can make the designing of testing cases more comprehensive and distinct.
Key words: equivalence partition; decision table; software testing
1概述
軟件測(cè)試的類型一般來(lái)說(shuō),可以劃分為白盒測(cè)試類型和黑盒測(cè)試類型。黑盒測(cè)試針對(duì)的主要是軟件功能的正確性和完整性。黑盒測(cè)試的理念,是將程序內(nèi)部的邏輯結(jié)構(gòu)看成一個(gè)黑盒子,單純依據(jù)給定的軟件需求規(guī)格說(shuō)明中約定的功能要求,設(shè)計(jì)測(cè)試輸入數(shù)據(jù),觀察測(cè)試輸出結(jié)果,通過(guò)結(jié)果的正確性來(lái)驗(yàn)證軟件的正確性。黑盒測(cè)試的方法比較多,其中較為典型的是等價(jià)類劃分法和判定表驅(qū)動(dòng)法,實(shí)際工作中可以將兩種方法有機(jī)結(jié)合進(jìn)行軟件測(cè)試。
2等價(jià)類劃分法
等價(jià)類劃分法的一般定義,是依據(jù)程序的實(shí)際情況,把測(cè)試輸入劃分成具有代表性的幾種分類,類與類之間彼此不相交;然后從每個(gè)分類中選取部分?jǐn)?shù)據(jù)作為測(cè)試用例的輸入。這其中選取的輸入數(shù)據(jù)在測(cè)試中的作用等價(jià)于該類中的其他數(shù)據(jù),因此對(duì)每一個(gè)特定的類來(lái)說(shuō),不需要將該類中所有的輸入都作為測(cè)試輸入,僅選取本類中具有代表性的輸入即可覆蓋某一方面的驗(yàn)證,大大減少了測(cè)試用例的數(shù)量,提高了測(cè)試效率。
進(jìn)行等價(jià)類劃分時(shí)須將對(duì)應(yīng)輸入分為有效等價(jià)類和無(wú)效等價(jià)類。有效等價(jià)類是指符合程序需求規(guī)格說(shuō)明描述,合理可行且有意義的輸入數(shù)據(jù)所構(gòu)成的集合。通過(guò)有效等價(jià)類的輸入,可以測(cè)試程序是否實(shí)現(xiàn)了需求規(guī)格說(shuō)明中所要求實(shí)現(xiàn)的功能項(xiàng)。無(wú)效等價(jià)類是有效等價(jià)類的補(bǔ)集,與有效等價(jià)類正好相反,通過(guò)無(wú)效等價(jià)類的輸入,可以測(cè)試程序的功能實(shí)現(xiàn)是否會(huì)出現(xiàn)意外情況。兩種等價(jià)類必須同時(shí)被考慮,以確保軟件的可靠性。
根據(jù)通用的定義,可以根據(jù)以下原則進(jìn)行等價(jià)類劃分:
1)如果輸入條件規(guī)定了輸入值的強(qiáng)制集合,則可確定一個(gè)有效等價(jià)類和一個(gè)無(wú)效等價(jià)類;
2)如果輸入條件規(guī)定了取值范圍,或者規(guī)定了所取值的個(gè)數(shù),則可確定一個(gè)有效等價(jià)類和兩個(gè)無(wú)效等價(jià)類;
3)如果規(guī)定了一組輸入數(shù)據(jù)的數(shù)量為n,且程序需對(duì)每個(gè)輸入值分別處理,則可確定n個(gè)有效等價(jià)類和一個(gè)無(wú)效等價(jià)類;
4)如果輸入條件為布爾值,則可確定一個(gè)有效等價(jià)類和一個(gè)無(wú)效等價(jià)類。
5)如果輸入數(shù)據(jù)有必須遵守的規(guī)則,則可確定一個(gè)遵守規(guī)則的有效等價(jià)類和若干個(gè)從不同角度違反規(guī)則無(wú)效等價(jià)類;
6)已知的大等價(jià)類可以根據(jù)實(shí)際情況進(jìn)一步劃分為更小的等價(jià)類。
等價(jià)類一經(jīng)確定,可以構(gòu)造等價(jià)類劃分表,具體格式如下表1。然后為每一個(gè)等價(jià)類規(guī)定一個(gè)唯一的編號(hào),并設(shè)計(jì)測(cè)試用例來(lái)覆蓋所有的等價(jià)類。用例設(shè)計(jì)原則為:1個(gè)用例應(yīng)覆蓋盡可能多的有效等價(jià)類,直到所有有效等價(jià)類都被覆蓋為止;1個(gè)用例僅覆蓋一個(gè)尚未被覆蓋的等價(jià)類,直到所有無(wú)效等價(jià)類都被覆蓋為止。
表1等價(jià)類表
3判定表驅(qū)動(dòng)法
判定表也叫決策表,在所有的功能性測(cè)試方法中,基于判定表的測(cè)試方法是最嚴(yán)格的,因?yàn)榕卸ū砭哂羞壿媷?yán)格性。從20世紀(jì)60年代初開始,判定表就一直被用來(lái)表示和分析復(fù)雜的邏輯關(guān)系,作為編寫程序的輔助工具。判定表很適合描述不同條件集合下采取行動(dòng)的若干組合情況。
判定表由4個(gè)部分組成,分別為條件樁、動(dòng)作樁、條件項(xiàng)和動(dòng)作項(xiàng)。其中條件樁列出了各種可能的單個(gè)條件,動(dòng)作樁列出了可能采取的單個(gè)操作,條件項(xiàng)列出了所給條件的多組取值組合,動(dòng)作項(xiàng)列出了在給定條件項(xiàng)的各種取值情況下對(duì)應(yīng)采取的動(dòng)作。
判定表的規(guī)則是任何一個(gè)條件組合的特定取值及其相應(yīng)要執(zhí)行的操作。在判定表中貫穿條件項(xiàng)和動(dòng)作項(xiàng)的一列就是一條規(guī)則。判定表中列出多少組條件取值,也就有多少條規(guī)則,條件項(xiàng)和動(dòng)作項(xiàng)就有多少列。
應(yīng)該依據(jù)軟件需求規(guī)格說(shuō)明來(lái)建立判定表,首先確定規(guī)則的個(gè)數(shù),然后列出所有的條件樁和動(dòng)作樁,填入動(dòng)作項(xiàng)形成初始判定表,再通過(guò)合并相似規(guī)則或相同動(dòng)作來(lái)簡(jiǎn)化,形成最終判定表。
判定表的格式如下表2:
表2判定表
4等價(jià)類結(jié)合判定表測(cè)試
在實(shí)際測(cè)試工作中,我們傾向于不僅僅只使用一種測(cè)試方法,而是恰當(dāng)?shù)膶⒍喾N測(cè)試方法有機(jī)結(jié)合,達(dá)到最優(yōu)的測(cè)試效果。這里以實(shí)例說(shuō)明如何將等價(jià)類劃分與判定表驅(qū)動(dòng)有機(jī)結(jié)合起來(lái)進(jìn)行軟件測(cè)試。
某模塊具有數(shù)據(jù)接收和處理功能,其中接收的數(shù)據(jù)格式包含了方式字、數(shù)據(jù)域和校驗(yàn)和3個(gè)部分。該模塊將接收到的數(shù)據(jù)進(jìn)行CRC校驗(yàn),根據(jù)接收的數(shù)據(jù)進(jìn)行處理:若接收的數(shù)據(jù)正確,則將對(duì)應(yīng)緩沖區(qū)地址內(nèi)容設(shè)置為接收的數(shù)據(jù)域內(nèi)容,且置相應(yīng)的遙測(cè)字;若接收的數(shù)據(jù)錯(cuò)誤,則對(duì)應(yīng)緩沖區(qū)地址內(nèi)容不作設(shè)置,且置相應(yīng)的遙測(cè)字。
這個(gè)實(shí)例里,我們可以先對(duì)輸入條件進(jìn)行等價(jià)類劃分,然后通過(guò)建立判定表,確立規(guī)則,從而得出最終的測(cè)試用例。這里的輸入條件就是需要接收的數(shù)據(jù)。根據(jù)相應(yīng)的通信協(xié)議,數(shù)據(jù)格式中的方式字可分為AAh、BBh、CCh、DDh共4種,數(shù)據(jù)域根據(jù)其長(zhǎng)度可分為16字節(jié)、32字節(jié)、128字節(jié)3種,校驗(yàn)和可分為正確和錯(cuò)誤兩種。我們通過(guò)通信協(xié)議的規(guī)定,可以劃分出輸入數(shù)據(jù)等價(jià)類,對(duì)每種輸入條件的等價(jià)類都進(jìn)行相應(yīng)的編號(hào),如表3。
表3數(shù)據(jù)輸入等價(jià)類表
根據(jù)表3的等價(jià)類劃分,繼續(xù)采用判定表驅(qū)動(dòng)法形成測(cè)試用例。將已按等價(jià)類劃分好的輸入作為條件樁,所產(chǎn)生的判定表如表4(其中動(dòng)作樁為1表明進(jìn)行了該動(dòng)作,0為未進(jìn)行該動(dòng)作)。
表4數(shù)據(jù)處理判定表
根據(jù)該表,根據(jù)規(guī)則最終產(chǎn)生了7個(gè)測(cè)試用例,覆蓋了所有輸入的有效等價(jià)類和無(wú)效等價(jià)類。下面進(jìn)行兩點(diǎn)說(shuō)明:
1)根據(jù)測(cè)試方法的一般選擇原則,若輸入條件之間存在組合關(guān)系時(shí),一般選用因果圖法結(jié)合判定表驅(qū)動(dòng)法進(jìn)行測(cè)試用例的設(shè)計(jì)。本例中的各個(gè)輸入之間存在簡(jiǎn)單的組合關(guān)系,但由于各輸入均為1組數(shù)據(jù),且存在有效和無(wú)效的情況,而非獨(dú)立的狀態(tài),或獨(dú)立的輸入條件,采用因果圖法易造成圖的關(guān)系復(fù)雜,不利于分析;采用等價(jià)類劃分法則利于信息的歸類與分析,再結(jié)合判定表驅(qū)動(dòng)法來(lái)理清各等價(jià)類的組合關(guān)系,使用例設(shè)計(jì)清晰,并可判斷是否覆蓋所有的等價(jià)類,是否存在可合并的冗余用例。
2)為了簡(jiǎn)化實(shí)例便于說(shuō)明,本例沒有考慮輸入邊界的取值,實(shí)際工作中還可加入對(duì)輸入條件的邊界取值考量,產(chǎn)生更多有效和無(wú)效的邊界等價(jià)類,再加以組合進(jìn)行測(cè)試。
5總結(jié)
測(cè)試用例的設(shè)計(jì)方法種類很多,在實(shí)際測(cè)試中,應(yīng)當(dāng)不局限于單個(gè)測(cè)試手段。依據(jù)每個(gè)具體的軟件的具體特點(diǎn),制定具有針對(duì)性的測(cè)試策略,綜合使用各種方法,使其有機(jī)結(jié)合,從各個(gè)角度充分測(cè)試,從而更加有效的提高測(cè)試效率和測(cè)試覆蓋度。
參考文獻(xiàn):
[1] Myers G.軟件測(cè)試的藝術(shù)[M].王峰,陳杰,譯.2版.北京:機(jī)械工業(yè)出版社,2006.
[2] Jorgensen P C.軟件測(cè)試[M].韓柯,杜旭濤,譯.2版.北京:機(jī)械工業(yè)出版社,2003.