對于很多剛開始學習軟件測試的小夥伴來說,如果能盡早将黑盒、白盒測試弄明白,掌握兩種測試的結論和基本原理,将對自己後期的學習有較好的幫助。今天,我們就來聊聊黑盒、白盒測試的相關話題。
1、黑盒測試的方法和小結
最常見黑盒測試方法包括:邊界值、等價類、錯誤推測法、場景法、因果圖法、判定表組成法、正交實驗設計。舉幾個例子:
邊界值測試:邊界值測試是一種最基本的黑盒測試方法,它是“等價類劃分”這種測試方法的良好補充。但這種方法也存在弊端——大量冗餘和漏洞。另外,由于布爾型的内容不存在邊界的概念,所以邊界值測試對布爾型無效。
等價類測試:等價類測試主要分為【弱等價類測試】和【強等價類測試】。這類測試就是主要用來解決布爾型和邏輯型的問題。在做這類測試時,建議在劃分等價類後,對每個等價類進行編号,這樣結論和操作步驟看起來可能會更清晰。
因果圖法:因果圖法主要涉及的是因果關系類内容的測試,在寫測試用例時,我們要區分清楚“恒等、或、非”關系,還要區分出各類約束。因果圖可以用于描述輸入與輸出的相互關系。但是其繪制過程比較繁瑣。因果圖可以轉化成決策表。建議在測試過程中,盡量直接繪制決策表。
(比如:E約束(異;異或):a,b最多有一個可能為1,不能同時為1;
I約束(或;包含):a,b,c中至少有一個必須為1,不能同時為0;
O約束(惟一):a和b必須有一個且僅有一個為1;
R約束(要求):a是1時,b必須是1,即a為1時,b不能為0;
M約束:對輸出條件的約束,若結果a為1,則結果b必須為0)
決策表測試:僅适合對輸入域展開分析,不适合對輸出域展開測試。
錯誤推測法:這種辦法優點是可以充分發揮測試人員的經驗和潛能,命中率高;缺點也非常明顯,就是難以保證覆蓋率。
另外,黑盒測試方法設計的測試用例,可能存在漏洞和冗餘,但一般情況下,測試人員很難對其進行評估。所以,測試人員還可利用白盒測試的覆蓋指标,來衡量黑盒測試方法的漏洞和冗餘情況。
2、白盒測試的方法和小結
白盒測試的方法比較簡單,主要分為兩類。
一類是靜态測試。這類測試主要側重于源代碼檢查和優化。其基本測試方法都是不需要設計測試用例,直接查看源代碼和模拟執行代碼就行。通過提出結構設計優化的意見和有關測試重點的建議,就能完成相應的測試工作。
另一類則是動态測試。這類測試主要側重于關鍵程序結構的測試,其基本測試方法是通過對導緻程序結構複雜度的判定表達式、執行路徑和循環結構,來設計相應的測試用例。從而達到某種程度的測試覆蓋,确保測試的測試完備性和無冗餘性。
那麼,這兩類測試的典型測試方式是什麼呢?
靜态測試的典型方法是:同行評審、靜态結構分析、代碼質量度量和對變量的數據流測試。而動态測試的方法則有很多,包括:基于邏輯表達式覆蓋指标的判定測;基于全路徑覆蓋的獨立路徑測試;以及基于循環過程覆蓋的對循環的測試等等。
3、白盒測試的綜合策略
日常生活中,我們一般以黑盒測試方法為主,以白盒測試作為輔助,補充測試和進行代碼優化。
這主要是因為白盒測試是針對程序代碼展開的測試,需要測試人員了解程序實現的細節,對設計和執行測試的人員技術要求較高。如果測試新手們想要有能力上的提升,可在進入行業後,深入學習白盒測試的内容。
基于黑盒測試的内容相對更容易理解,下面,我們就白盒測試,說說如何使用綜合策略,來進行項目測試。這裡,我們主要推薦的綜合策略有這些:
1)優先進行靜态白盒測試。
尤其是在進行功能模塊核心代碼的測試時,一定要定期組織嚴格的評審,并通過經驗總結,不斷更新缺陷檢查表等測試标準或規範性文檔,做到測試嚴謹。
2)注意結合邊界抽取測試數據。
在做設計測試用例時,一定要注意結合邏輯判定表達式的邊界、循環次數的邊界、變量取值範圍的邊界等,來綜合測試,避免漏測。
3)多利用白盒測試方法做補充測試。
尤其是黑盒測試檢查不到或難以檢查的地方(如内存洩漏),盡量使用特殊的白盒測試方法(如内存洩漏測試),進行補充測試。
4)針對關鍵變量,使用數據流的測試方法确定補充路徑測試的重點。
5)盡量利用測試工具完成代碼結構和質量的相關分析和評估,對代碼進行設計評審和優化。
6)借鑒獨立路徑的測試方法,設計高層次的測試用例,提高測試的覆蓋性,降低測試的冗餘。
寫在最後
對于測試人員來說,無論我們處于學習入門階段、剛入行工作階段、還是工作有幾年的階段,一定要把黑盒白盒測試的内容學透,同時不斷攻克每個細分領域的測試内容,讓自己具備更強的專業能力,為自己未來的職業生涯鋪好路~
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!