北京電子科技職業(yè)學(xué)院 梁金宏 劉 威 趙利民 廉詩陽
軟件系統(tǒng)黑盒測(cè)試方法研究
北京電子科技職業(yè)學(xué)院 梁金宏 劉 威 趙利民 廉詩陽
黑盒測(cè)試對(duì)于軟件系統(tǒng)來說非常重要,主要是進(jìn)行功能性測(cè)試,是在不考慮系統(tǒng)內(nèi)部代碼的實(shí)現(xiàn)邏輯的情況下進(jìn)行的測(cè)驗(yàn),是從使用者的角度進(jìn)行數(shù)據(jù)輸入及數(shù)據(jù)輸出對(duì)應(yīng)的匹配關(guān)系進(jìn)行檢測(cè)而進(jìn)行的測(cè)試,測(cè)試方法的研究對(duì)于軟件系統(tǒng)的測(cè)試至關(guān)重要。
軟件系統(tǒng)黑盒測(cè)試;測(cè)試方法
黑盒測(cè)試是進(jìn)行軟件系統(tǒng)測(cè)試的主要方法之一,是在完全不考慮軟件內(nèi)部結(jié)構(gòu)和邏輯的情況下,對(duì)軟件進(jìn)行功能測(cè)試,主要是按照需求分析規(guī)定的內(nèi)容,檢查軟件是否達(dá)到正常使用的目的,能否達(dá)到接受正常輸入,并產(chǎn)生正常輸出的目的。黑盒測(cè)試主要測(cè)試軟件的功能和界面。測(cè)試者不需要了解程序的內(nèi)部情況,只從輸入的合法性及正確性,規(guī)范性,范圍性中監(jiān)測(cè)系統(tǒng)的輸入輸出結(jié)果是否與預(yù)期的一致而進(jìn)行的測(cè)試。
正因?yàn)楹诤袦y(cè)試不需要了解軟件的實(shí)現(xiàn)邏輯與編程的具體過程,只從功能性中去探討軟件系統(tǒng)是否功能完備,為此系統(tǒng)在中間性測(cè)試及最終的驗(yàn)收測(cè)試時(shí)大都采用黑盒測(cè)試的方法進(jìn)行。而且黑盒測(cè)試非系統(tǒng)的設(shè)計(jì)人員也可以完成,當(dāng)然整個(gè)測(cè)試過程還需要甲方去參與。
黑盒測(cè)試主要是注重功能的測(cè)試,主要包括:
功能的完整性,正確性測(cè)試
系統(tǒng)界面的顯示錯(cuò)誤
輸入數(shù)據(jù)與輸出數(shù)據(jù)差異錯(cuò)誤
數(shù)據(jù)庫訪問溢出,驅(qū)動(dòng)等錯(cuò)誤
系統(tǒng)的性能檢測(cè)錯(cuò)誤
系統(tǒng)數(shù)據(jù)初始化、完備化、及系統(tǒng)停頓、中斷錯(cuò)誤等等
目前在進(jìn)行軟件系統(tǒng)的黑盒測(cè)試時(shí)一般有如下幾種常用的測(cè)試設(shè)計(jì)方法:劃分等價(jià)類法、分析邊界法、推測(cè)錯(cuò)誤法和因果圖示法。
3.1劃分等價(jià)類法
劃分等價(jià)類法是一種比較常用的軟件系統(tǒng)黑盒測(cè)試方法,是把軟件系統(tǒng)所可能涉及到的所有數(shù)據(jù)按照某些規(guī)則劃分成幾個(gè)部分,簡單的說就是把數(shù)據(jù)子集劃分,然后在每部分中選取少量的具備代表性的數(shù)據(jù)來設(shè)計(jì)測(cè)試用例,以此來代替該部分中的所有數(shù)據(jù),而不是為所有數(shù)據(jù)都設(shè)計(jì)測(cè)試用例進(jìn)行測(cè)試,此種方法叫劃分等價(jià)類法。在此種測(cè)試方法中比較重要的是如何等價(jià)類的劃分。
3.1.1等價(jià)類劃分
等價(jià)類是首先是對(duì)整個(gè)輸入數(shù)據(jù)的區(qū)域進(jìn)行分片,等價(jià)類是某個(gè)輸入域的子集。在該子集中,各個(gè)數(shù)據(jù)對(duì)于程序來講所產(chǎn)生的輸入輸出錯(cuò)誤邏輯是相同的或大致類似的。對(duì)于此種情況我們假定選擇的代表性的數(shù)據(jù)能代替所有數(shù)據(jù)。我們?cè)谶M(jìn)行軟件系統(tǒng)黑盒測(cè)試時(shí)要根據(jù)系統(tǒng)的所有的功能性把所涉及的所有數(shù)據(jù)劃分成不同的區(qū)域形成子集即等價(jià)類,在等價(jià)類中選取代表性的數(shù)據(jù)代替其他數(shù)據(jù)進(jìn)行測(cè)試。等價(jià)類分有效與無效兩類。
有效等價(jià)類:是指對(duì)于所設(shè)計(jì)的軟件系統(tǒng)按照規(guī)格來說合情合理的數(shù)據(jù)集合,是規(guī)范范圍內(nèi)的數(shù)據(jù)用來檢測(cè)軟件系統(tǒng)的功能及性能。
無效等價(jià)類:是對(duì)于軟件系統(tǒng)來說不合理的數(shù)據(jù),屬于意外性的數(shù)據(jù),用來測(cè)試系統(tǒng)的邊緣性。
在進(jìn)行軟件系統(tǒng)的測(cè)試用例時(shí),有效等價(jià)類與無效等價(jià)類的數(shù)據(jù)都需要考慮,采用保證測(cè)試的完整性和系統(tǒng)的合理及完備性。
3.1.2等價(jià)類的劃分原則
①確定了輸入的取值范圍和個(gè)數(shù)時(shí),可以確定一個(gè)有效等價(jià)類,邊緣兩個(gè)無效等價(jià)類。
②在輸入中確定必須點(diǎn)即必須滿足某一條件時(shí),可確定一個(gè)有效等價(jià)類一個(gè)無效等價(jià)類。
③輸入數(shù)據(jù)有選擇分支情況下,可確立有效與無效等價(jià)類各一個(gè)。
④在輸入中確立多種不同輸入值,且每一種輸入值皆可產(chǎn)生不同結(jié)果時(shí),可確立有效類多個(gè),無效類一個(gè)。
⑤在確立數(shù)據(jù)輸入必須遵守某項(xiàng)規(guī)定時(shí),確立有效類一個(gè),無效類多個(gè)。
⑥已確立的等價(jià)類程序處理方式不同時(shí)說明沒有細(xì)化到位需要進(jìn)一步細(xì)化。
3.1.3等價(jià)類劃分法的測(cè)試用例設(shè)計(jì)原則
在確立好等價(jià)類后要根據(jù)所有的有效等價(jià)類與無效等價(jià)類進(jìn)行測(cè)試用例的設(shè)計(jì)。而在設(shè)計(jì)測(cè)試用例時(shí)要保證做到所有的有效等價(jià)類與無效等價(jià)類都要被覆蓋,才能滿足設(shè)計(jì)要求,為此要對(duì)有效等價(jià)類與無效等價(jià)類進(jìn)行編號(hào),每一個(gè)有效等價(jià)類至少需要一個(gè)至多個(gè)合理代表數(shù)據(jù),每一個(gè)無效等價(jià)類需要一個(gè)代表數(shù)據(jù)。
3.2分析邊界法
分析邊界法是對(duì)軟件系統(tǒng)所涉及的邊界值進(jìn)行分析并進(jìn)行測(cè)試設(shè)計(jì)的黑盒測(cè)試法。在實(shí)際的軟件系統(tǒng)測(cè)試工作中發(fā)現(xiàn),考慮了邊界并進(jìn)行了測(cè)試修正的系統(tǒng)比沒經(jīng)過邊界測(cè)試設(shè)計(jì)的系統(tǒng)具備更好的系統(tǒng)回報(bào)率,并且系統(tǒng)不易崩潰,而沒有進(jìn)過邊界測(cè)試的系統(tǒng)在數(shù)據(jù)達(dá)到邊界值時(shí)常易發(fā)生系統(tǒng)崩潰的現(xiàn)象。這里的邊界是指數(shù)據(jù)正好處于邊緣狀態(tài),或靠近及在邊緣以下的狀態(tài)時(shí)。
分析邊界法設(shè)計(jì)測(cè)試用例的原則:
(1)輸入數(shù)據(jù)規(guī)定了范圍,對(duì)于范圍邊界設(shè)計(jì)有效等價(jià)類用例,剛越界的設(shè)計(jì)無效等價(jià)類用例。
(2)系統(tǒng)中用了內(nèi)部數(shù)據(jù)結(jié)構(gòu)的情況下要設(shè)計(jì)內(nèi)部數(shù)據(jù)結(jié)構(gòu)的用例。
(3)若輸入數(shù)據(jù)范圍為有序范圍集合,則對(duì)數(shù)據(jù)范圍邊界的第一值與最后一值設(shè)計(jì)測(cè)試用例。
3.3推測(cè)錯(cuò)誤法
推測(cè)錯(cuò)誤法也是軟件系統(tǒng)進(jìn)行黑盒測(cè)試常用的方法之一,其基本思路是設(shè)計(jì)者根據(jù)經(jīng)驗(yàn)和設(shè)計(jì)感覺推測(cè)出軟件系統(tǒng)所有可能存在的錯(cuò)誤,并且設(shè)計(jì)測(cè)試用例對(duì)這些錯(cuò)誤進(jìn)行測(cè)試并修正系統(tǒng)。
基本做法是測(cè)試設(shè)計(jì)人員根據(jù)系統(tǒng)思路列舉出系統(tǒng)中所有可能有的錯(cuò)誤和可能產(chǎn)生的特殊情景,并由此設(shè)計(jì)測(cè)試用例,而這一類做法往往需要系統(tǒng)的設(shè)計(jì)者做可能產(chǎn)生的錯(cuò)誤及特殊情景的推斷,系統(tǒng)為設(shè)計(jì)者所設(shè)計(jì),設(shè)計(jì)者最清楚錯(cuò)誤的產(chǎn)生點(diǎn)和軟件系統(tǒng)的弱點(diǎn)。另外經(jīng)驗(yàn)豐富的測(cè)試人員在此類方法的使用上也頗具優(yōu)越性,他們往往比較清楚一般軟件系統(tǒng)的薄弱點(diǎn),而為此進(jìn)行系統(tǒng)測(cè)試用例設(shè)計(jì)并進(jìn)行測(cè)試。比如系統(tǒng)初始化數(shù)據(jù)為空,計(jì)算數(shù)據(jù)為0,數(shù)據(jù)庫中提取數(shù)據(jù)為空,或表格不存在等情況都是常見的系統(tǒng)錯(cuò)誤,經(jīng)驗(yàn)豐富者對(duì)這些常見錯(cuò)誤很有經(jīng)驗(yàn)設(shè)計(jì)測(cè)試用例時(shí)得心應(yīng)手。然而無論何人都很難利用此法列出系統(tǒng)的所有錯(cuò)誤,只能盡可能的減少,而只利用此法做到萬物一失的可能性幾乎沒有,只能依靠經(jīng)驗(yàn)值和敏銳的洞察力。為此,此法有一定的局限性,對(duì)于初學(xué)者相對(duì)困難。
3.4因果圖示法
因果圖示法是軟件系統(tǒng)黑盒測(cè)試中常用的一種方法。測(cè)試人員所繪制的因果圖能比較清晰的描述輸入條件與輸入結(jié)果之間的因果關(guān)系,是一種邏輯因果關(guān)系圖,該圖能幫助測(cè)試人員把注意力集中在輸入數(shù)據(jù)的條件判定上。
因果圖示法是適合于在輸入數(shù)據(jù)時(shí)存在多種輸入條件組合的情況下。我們一般根據(jù)輸入數(shù)據(jù)的條件組合及相互的約束和輸出結(jié)果之間的因果關(guān)系,分析歸納所有的輸入數(shù)據(jù)組合,為每一種組合設(shè)計(jì)測(cè)試用例并檢測(cè)輸出結(jié)果。
此種方法適合于檢測(cè)輸入數(shù)據(jù)存在多種組合的條件之下。
因果圖示法軟件系統(tǒng)黑盒測(cè)試的步驟:
(1)將軟件系統(tǒng)的數(shù)據(jù)規(guī)格劃分成多個(gè)可執(zhí)行的片段,片段量不易過于龐大。
(2)分析每一個(gè)片段的結(jié)果及原因。
(3)為分析出的每一種情況劃畫出因果示意圖。
(4)跟蹤示意圖中的每一種數(shù)據(jù)變化情況,并由不同的數(shù)據(jù)狀態(tài)設(shè)計(jì)數(shù)據(jù)判定表。為數(shù)據(jù)判定表的每一種情況設(shè)計(jì)測(cè)試用例,并進(jìn)行測(cè)試。
黑盒測(cè)試對(duì)于軟件系統(tǒng)的測(cè)試來說至關(guān)重要,而進(jìn)行黑盒測(cè)試之前要做大量的數(shù)據(jù)準(zhǔn)備調(diào)研及設(shè)計(jì)工作,力求保證數(shù)據(jù)的準(zhǔn)確性與完備性,而進(jìn)行完整的黑盒測(cè)試需要進(jìn)行多方因素的考慮,且要根據(jù)軟件系統(tǒng)的應(yīng)用情況利用不同的方法進(jìn)行測(cè)試,且往往多種方法結(jié)合使用,才能滿足軟件系統(tǒng)測(cè)試需求,為此黑盒測(cè)試是一項(xiàng)系統(tǒng)工作,也是值得我們深入研究的一項(xiàng)系統(tǒng)工程。