問題
哪種類型的測試對測試來說最重要的?為什麼?
回複一:
黑盒測試
是從測試對象的外部視角推導出測試用例,這些測試可以是功能性的,也可以是非功能性的,盡管通常是功能性的,測試設計者選擇有效的和無效的輸入來驗證正确的輸出。測試者不知道測試對象的内部結構。
白盒測試
使用系統内部結構視角基于内部結構來設計測試用例。它需要程式設計技能來驗證軟體的所有路徑。測試人員選擇測試用例輸入,通過代碼執行路徑然後确定适當的輸出。在電氣硬體測試,電路中的每一個節點都要被探測和測量;例如電路測試(ict)
我認為兩者都很重要,但是他們通常在開發和測試那裡是分開的。
内部結構知識對測試者來說很重要嗎?我聽到一些觀點認為有測試意識能幫助他們更好的測試,但我也聽過這樣的說法,即時這些知識可以幫助功能測試,對代碼進行測試,而不是預期的解決方案。
作者回複:
特點:測試功能
依據:需求規格說明書
舉例:等價類劃分、邊界值測試
優點:能站在使用者的立場上進行測試
缺點:不能測試程式内部特定部位和程式方法
黑盒測試把程式看作一個不能打開的黑盒子,在完全不考慮程式内部結構和内部特性的情況下,針對“軟體界面”和”軟體功能“進行測試,隻檢查功能是否符合需求規格說明書能正常使用。是以黑盒測試又叫功能測試或資料驅動測試。
黑盒測試主要是為了發現以下錯誤:
是否有不正确或者遺漏了的功能;
在接口上,輸入能否正确的接受?能否輸出正确的結果?
是否有資料結構錯誤或外部資訊(例如資料庫檔案)通路錯誤?
性能上是否能夠滿足要求?
是否有初始化或終止性錯誤?
黑盒的測試用例技術設計有三種:邊界值分析、等價類劃分、錯誤推測法。
特點:測試程式接口和結構
依據:軟體程式設計
舉例:邏輯覆寫
優點:對程式内部進行特定部位進行覆寫測試
缺點:無法堅持程式外部特征
白盒測試是對軟體的過程性細節做細緻的檢查。這種方法是把測試對象看作一個打開的盒子,他允許測試人員利用程式内部的邏輯結構及有關資訊,設計或選擇測試用例,對程式所有邏輯路徑進行測試。通過在不同點檢查程式狀态,确定實際狀态是否與預期的狀态一緻。是以白盒測試又稱為”結構測試“或”邏輯驅動測試“。白盒測試是按照程式内部的結構來測試程式,通過測試檢驗産品内部動作是否按照設計規格說明書的要求正常進行,檢驗程式中的每條通道是否都按照規定正常工作。
白盒測試主要是想對程式子產品進行以下檢查:
對程式子產品的所有獨立的執行路徑至少測試一遍;
對所有的邏輯判定,取”真“與”假“的兩種情況都能至少測一遍;
在循環的邊界和運作的界限内執行循環體;
測試内部資料結構的有效性,等等;
靜态白盒測試 :即代碼審查,正式審查和檢驗設計和程式代碼;
動态白盒測試 利用檢視代碼功能和實作方式得到的資訊來設計和執行測試,也叫結構測試;
白盒的測試用例技術包括邏輯覆寫和基本路徑測試:
邏輯覆寫:是以程式内在邏輯結構為基礎的測試用例設計技術,這一方法要求測試人員對程式的邏輯結構有清楚的了解。
基本路徑測試:在程式控制流程圖的基礎上,通過分析控制構造的環路複雜性,導出基本可執行路徑集合,進而設計測試用例。
黑盒測試和白盒測試是兩種不同的測試方法,他們都有自個的優缺點,隻有在實戰中靈活運用才能達到最佳的測試效果。