白盒測試技術(shù)的精煉總結 軟件測試
白盒測試,有時(shí)候又稱(chēng)為基于結構的測試,是基于測試對象的代碼、數據,或者系統架構而進(jìn)行測試的一種技術(shù),它關(guān)注的是測試對象的內部結構。白盒測試技術(shù)的共同特點(diǎn)有:
● 測試對象的內部結構信息是設計測試用例的依據,例如:程序代碼和設計架構。
● 測試對象的覆蓋率可以通過(guò)已有的測試用例來(lái)測量,并且可以系統的增加測試用例來(lái)提高覆蓋率。
滿(mǎn)足白盒測試的相關(guān)測試準則,并不意味整個(gè)測試已完成,而只能說(shuō)明測試對象已不需要基于此技術(shù)再進(jìn)行額外的測試,但是可以繼續應用其他測試技術(shù)。
在測試過(guò)程中,測試人員可以根據測試強度的不同,應用各種不同的白盒測試設計。常見(jiàn)的白盒測試技術(shù)包括:
● 語(yǔ)句測試(Statement testing),指的是設計若干測試用例來(lái)執行程序代碼中的語(yǔ)句。語(yǔ)句覆蓋指的是被執行的語(yǔ)句數與所有可能的語(yǔ)句數之間的比值,例如:有些項目要求程序代碼達到100%的語(yǔ)句覆蓋。
● 判定測試(Decision testing)是一種針對判定結果設計測試用例的技術(shù)。判定覆蓋指的是執行測試套件能夠覆蓋的判定結果的百分比,即被執行的判定和總的判定的比值。在低級別的測試中,判定覆蓋常?梢宰鳛槌隹跍蕜t之一,例如:測試出口準則可以要求測試對象達到100%的判定覆蓋。100%的判定覆蓋可以保證100%的語(yǔ)句覆蓋。
● 條件測試(Condition testing)指的是設計若干測試用例來(lái)執行不同的條件結果。條件覆蓋指的是執行測試套件能夠覆蓋到原子條件的百分比,即被執行的原子條件和總的原子條件的比值。100%的條件覆蓋要求測試覆蓋到每一個(gè)原子條件語(yǔ)句分別取值為真和假的情況。需要注意的是,條件覆蓋并不比判定覆蓋更強。
● 判定條件測試(Decision condition testing)指的是設計若干測試用例來(lái)執行條件結果和判定結果。判定條件覆蓋指的是執行測試用例套件能夠覆蓋的條件結果和判定結果的百分比。100%的判定條件覆蓋意味著(zhù)100%的判定覆蓋和100%的條件覆蓋。
● 條件決定測試(Condition determination testing)是對能夠獨立影響判定結果的單獨條件的測試(測試對象中的每個(gè)條件必須產(chǎn)生所有可能的輸出結果至少一次,并且每個(gè)判定中的每一個(gè)條件必須能夠獨立影響一個(gè)判定的輸出,即在其他條件不變的前提下僅改變這個(gè)條件的值,就可以使判定結果發(fā)生改變)。條件決定覆蓋指的是執行測試套件覆蓋到的能夠獨立影響判定結果的單個(gè)條件的百分比。100%的條件決定覆蓋意味著(zhù)100%的判定條件覆蓋。
● 條件組合測試(Multiple condition testing,也稱(chēng)為Condition combination testing)是指設計測試用例覆蓋每條語(yǔ)句中的原子條件所有可能的取值結果組合(即每個(gè)判定中的所有可能的原子條件取值組合至少執行一次)。條件組合覆蓋指的是測試套件覆蓋每條語(yǔ)句內的所有原子條件取值結果組合的百分比。100%條件組合覆蓋意味著(zhù)100%條件決定覆蓋。
● 路徑測試(Path testing)是指設計測試用例用來(lái)執行不同的路徑。路徑覆蓋指的是測試套件執行的路徑占總的路徑的百分比。100%的路徑覆蓋可以確保100%的語(yǔ)句覆蓋和判定覆蓋。
根據測試對象的復雜程度和不同的覆蓋率的要求,可以選擇和應用不同的白盒測試設計技術(shù)。根據源代碼的特點(diǎn)和選擇的白盒測試設計技術(shù),就可以定義測試的強度。圖1是不同白盒測試設計技術(shù)的測試覆蓋率強度關(guān)系。

圖1 白盒測試技術(shù)測試強度對比
文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/