鐘 睿
(廣州大學(xué),廣州 510000)
黑盒測試是目前軟件測試的重要方法之一,其特點(diǎn)在于不用考慮軟件的邏輯和結(jié)構(gòu),根據(jù)軟件的需求分析,對(duì)軟件進(jìn)行功能性的測試,根據(jù)一個(gè)輸入和相應(yīng)的輸出,判斷軟件能否正常使用。黑盒測試主要涉及軟件界面和功能。軟件測試者往往不用了解軟件的內(nèi)部具體代碼,只要考慮輸入的正確性、合法性、規(guī)范性中判斷輸出的結(jié)果與預(yù)期是否一致。由于黑盒測試不需要測試者了解軟件的代碼編程,只需要確定軟件的功能是否完備,是目前軟件中常用的一種軟件測試方法。
黑盒測試主要針對(duì)軟件功能性的測試,主要完成:軟件功能性是否完整,軟件系統(tǒng)能否正常顯示,軟件系統(tǒng)的性能測試,系統(tǒng)的完備化、數(shù)據(jù)初始化以及軟件系統(tǒng)的中斷錯(cuò)誤、系統(tǒng)停頓等。
軟件黑盒測試的主要方法包括分析邊界法、劃分等價(jià)類法、和因果圖示法和推測錯(cuò)誤法。
分析邊界法主要是針對(duì)軟件邊界值進(jìn)行測試分析的一種黑盒測試法。在軟件測試的工作中表明,與沒有進(jìn)行分析邊界法測試的軟件系統(tǒng)相比,進(jìn)行分析邊界法測試的軟件系統(tǒng)往往擁有更好的系統(tǒng)穩(wěn)定性,系統(tǒng)不易崩潰。這里的邊界主要是指測試的數(shù)據(jù)靠近數(shù)據(jù)邊緣或者是正好處于邊緣狀態(tài),在分析邊界時(shí),通常遵守以下的測試原則:
(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)的用例。
劃分等價(jià)類法的主要思想是軟件系統(tǒng)的相關(guān)數(shù)據(jù)分成多個(gè)部分,也就是把軟件數(shù)據(jù)劃分為多個(gè)子集,然后在這多個(gè)數(shù)據(jù)子集中選取一定具有代表性的少量數(shù)據(jù)進(jìn)行測試,在這過程中,這些少量的測試數(shù)據(jù)就代表著該集的數(shù)據(jù),這就省去將軟件的所有數(shù)據(jù)進(jìn)行測試。在進(jìn)行劃分等價(jià)類法時(shí),如何進(jìn)行等價(jià)劃分是測試中較為重要的部分。
3.2.1 等價(jià)類劃分
等價(jià)類主要是依據(jù)輸入的數(shù)據(jù)進(jìn)行劃分,等價(jià)類也就是相應(yīng)輸入的子集。在這個(gè)子集之中,輸入和輸出的數(shù)據(jù),特別是在錯(cuò)誤邏輯方面是基本類似或者是相同的。在這樣的情況下,我們假設(shè)所選取的數(shù)據(jù)具有較高的代表性。我們?cè)谲浖诤袦y試時(shí)首先要根據(jù)具體的功能把所有的相關(guān)數(shù)據(jù)進(jìn)行劃分,劃分成的子集也就是等價(jià)類,在等價(jià)類中所選擇的數(shù)據(jù)可以代表這個(gè)子集。等價(jià)類可以分為有效類和無效類兩類。有效等價(jià)類主要是指軟件測試所選擇的數(shù)據(jù)集合是合情合理的,是在一定的范圍內(nèi)來進(jìn)行軟件性能和功能性的測試。而無效等價(jià)類的所選取的數(shù)據(jù)是不合理的,是指意外性的數(shù)據(jù),往往用來測試軟件的邊緣性。我們?cè)趯?shí)際的軟件測試中,需要兼顧有效等價(jià)類和無效等價(jià)類,從而保證軟件的完備性以及系統(tǒng)的合理性。
3.2.2 等價(jià)類劃分類的設(shè)計(jì)原則
在確定軟件測試的等價(jià)類后,需要根據(jù)所有的有效等價(jià)類和無效等價(jià)類進(jìn)行合理的設(shè)計(jì)。最基本的設(shè)計(jì)原則是要保證所有的有效等價(jià)類和無效等價(jià)類都涉及到,不能有遺漏,只有這樣才能滿足設(shè)計(jì)的需求,同時(shí)需要將所有的有效等價(jià)類和無效等價(jià)類進(jìn)行編號(hào),便于后面的進(jìn)一步測試。
推測錯(cuò)誤法也是常用的一種黑盒測試方法,其主要根據(jù)測試者以往的經(jīng)驗(yàn)來設(shè)計(jì)出軟件中可能會(huì)存在的不足之處,同時(shí)還要設(shè)計(jì)出修正這些錯(cuò)誤的測試用例。測試者根據(jù)軟件的主要特點(diǎn)設(shè)計(jì)出軟件可能的特殊情景和出現(xiàn)的錯(cuò)誤。一般來說,經(jīng)驗(yàn)豐富的軟件測試者通過本方法進(jìn)行測試時(shí)往往更加快速,他們通常更加知曉軟件系統(tǒng)可能存在的薄弱之處,并且根據(jù)這些薄弱點(diǎn)設(shè)計(jì)出合適的測試用例。
但是需要說明的是,經(jīng)驗(yàn)豐富的人也不可能把軟件系統(tǒng)中所有的錯(cuò)誤都快速的找到,只是說盡可能的降低,通過本方法也不可能做到萬無一失,只能在測試的實(shí)際工作中不斷積累經(jīng)驗(yàn),增強(qiáng)自身的洞察力。此外,這種方法對(duì)來新手來說,具有一定的難度,門檻較高。
對(duì)于軟件系統(tǒng)的測試而言,黑盒測試是十分重要的。在進(jìn)行黑盒測試之前,需要做大量的工作,主要包括數(shù)據(jù)的準(zhǔn)備以及相關(guān)的設(shè)計(jì)工作,以此來保證測試數(shù)據(jù)的完備性和準(zhǔn)確性。同時(shí),黑盒測試還需要綜合考慮多方面的因素,根據(jù)實(shí)際的需求以及應(yīng)用場景的不同進(jìn)行有針對(duì)性的測試,只有這種才能達(dá)到軟件測試的目的,需要在工作中不斷積累經(jīng)驗(yàn)。
[1] 張策,崔剛,劉宏偉等.軟件測試資源與成本管控和最優(yōu)發(fā)布策略[J].哈爾濱工業(yè)大學(xué)學(xué)報(bào),2014,46(5):51-58.
[2] 趙瑋.基于黑盒測試的軟件測試策略研究與實(shí)踐[J].中小企業(yè)管理與科技(上旬刊),2017(1):144-145.
[3] 張敏,趙平,張蓉.黑盒測試技術(shù)在指控分系統(tǒng)軟件測試中的應(yīng)用[J].強(qiáng)激光與粒子束,2013,25(s1):87-90.
[4] 滿薇薇.黑盒測試技術(shù)在指控分系統(tǒng)軟件測試中的應(yīng)用研究[J].電子世界,2014(10):203-204.
[5] 林永峰,陳亮.面向安全性分析的嵌入式軟件測試方法研究[J].現(xiàn)代電子技術(shù),2016,v.39;No.468(13):80-83.
[6] 張妍,傅秀芬.基于多優(yōu)化目標(biāo)的軟件測試用例約簡方法研究[J].計(jì)算機(jī)應(yīng)用研究,2016,33(4):1111-1113.