單元測試是針對軟體最小的可測試元素(單元)來實作的,它包括測試邏輯和資料流程等內部結構,以及單元的功能和可觀察的行為。當設計和實作焦點是單元內部結構的測試時,要依賴單元的實作知識(白盒方式)。如果設計和實作的測試要驗證單元的可觀察行為和功能,便不依賴實作知識,因此稱為黑盒方式。
這兩種方式用來設計和實作完整順利測試單元時所需要的不同測試類型(請參閱技術:測試類型)。
另請參閱技術:測試案例,以取得衍生單元測試之測試案例的其他相關資訊。
白盒測試方式應該用來驗證單元的內部結構。 理論上,您應該測試程式碼的所有可能路徑,但只有非常簡單的單元才做得到這一點。您最起碼應該每個決策至決策路徑(DD
路徑)至少處理一次,因為會使您所有陳述式至少執行一次。決策通常都是一個 if 陳述式,DD 路徑則是兩項決策之間的路徑。
如果要取得這個層次的測試涵蓋面,建議您將測試資料選成每項決策都能夠在每一種可能的方式之下進行評估。
請利用程式碼涵蓋面工具來識別您的白盒測試尚未處理的程式碼。可靠性測試應該與白盒測試同時進行。
請參閱技術:測試案例,以取得其他資訊。
黑盒測試的用途是驗證單元的指定功能和可觀察的行為,且不需要單元如何實作這個功能和行為的知識。黑盒測試的焦點在於單元的輸入和輸出,同時也依賴這個輸入和輸出。
根據黑盒方法來衍生單元測試,會利用單元件業的輸入和輸出引數和/或輸出狀態來進行評估。例如,作業可能會包括一個演算法(需要兩個值作為輸入,以及傳回第三個值作為輸出),或起始物件或元件狀態的變更,如新增或刪除資料庫記錄。兩者都必須進行完整測試。如果要測試一項作業,您應該衍生足夠的測試案例來驗證下列各項:
-
作業會針對每個作為輸入的有效值來傳回適當的值
-
作業會針對每個作為輸入的無效值來傳回適當的值
-
每個有效輸入狀態都會出現適當的輸出狀態
-
每個無效輸入狀態都會出現適當的輸出狀態
請利用程式碼涵蓋面工具來識別您的白盒測試尚未處理的程式碼。可靠性測試應該與黑盒測試同時進行。
請參閱技術:測試案例,以取得其他資訊。
|