什么單元測試、執行單元測試的目的、單元測試環境、單元測試的測試策略


單元測試,對軟件在設計的最小單元中進行正確性檢測的測試,將可能存在的錯誤在最小范圍內發現並解決。

對於單元測試中單元的含義,一般來說,要根據實際情況去判定其具體含義,如C語言中單元指一個函數,Java里單元指一個類,圖形化的軟件中可以指一個窗口或一個菜單等。總的來說,單元就是人為規定的最小的被測功能模塊。單元測試是在軟件開發過程中要進行的最低級別的測試活動,軟件的獨立單元將在與程序的其他部分相隔離的情況下進行測試。當然,在具體的測試實現中,也可能對應的是多個程序文件中的一組函數。

單元具有一些基本屬性,如明確的功能、規格定義、明確與其他部分的接口定義等,可以清晰的與同一程序的其它單元划分。

執行單元測試的目的

發現模塊內部邏輯、語法、算法和功能錯誤。

單元測試主要是基於白盒測試:

  • 驗證代碼與設計相符度。

  • 發現設計和需求中存在錯誤。

  • 發現在編碼過程中引入的錯誤。

單元測試環境

單元本身不是一個獨立的程序,一個完整的可運行的軟件系統有若干個單元組成,所以必須為每個單元測試開發驅動單元和樁單元。

  • 驅動單元(Driver):所測函數的主程序,它接收測試數據,並把數據傳遞給所測試單元,最后再輸出實際測試結果,當被測單元能完成相關單元時,也可以不需要驅動單元。

    • 接收測試數據,包含測試用例輸入和預期輸出。

    • 把測試用例輸入傳送給要測試的單元。

    • 將被測單元的實際輸出和預期進行比較,得到測試結果。

    • 將測試結果輸出到指定的位置。

  • 樁單元(Stub):用來代替所測單元調用的子單元。

    • 樁單元的功能是從測試角度模擬被調用的單元。

    • 樁單元需要針對不同的輸入,返回不同的期望值,模擬不同的功能。

驅動單元執行被測函數得到實際的測試結果,那被測函數可能有其他依賴的函數,我們就要使用樁函數替代被測函數依賴的函數,驅動單元的執行依賴樁函數的正確性。

在展開測試的時候,有相應的測試策略可以使用。

插樁

單元測試的測試策略

孤立的測試策略

不考慮每個模塊與其他模塊之間的關系,為每個模塊設計樁模塊和驅動模塊,每個模塊進行獨立的單元測試。

優點是:

  • 該方法最簡單,容易操作。

  • 可以達到很高的結構覆蓋率。

  • 可以展開並行。

  • 該方法是純粹的單元測試。

缺點是樁函數和驅動函數工作量很大,效率不高。

自頂向下測試測試策略

方法是先對最頂層的單元進行測試,把頂層所調用的單元做成樁模塊,其次對於第二層進行測試,使用上面已經測試的單元做驅動模塊,如此類推直到測試完所有的模塊。

優點是可以節省驅動函數的開發工作量,測試效率高。

缺點是隨着被測單元的增加,測試過程變得越來越復雜,並且開發和維護成本將增加

自底向上的測試策略

方法是先對模塊調用層次圖上最底層的模塊進行單元測試,模擬調用該模塊的模塊做驅動模塊,然胡再對上面一層做單元測試,用下面已被測試過的模塊做樁模塊,一次類推, 直到測試完所有的模塊。

優點是可以節省樁函數的開發工作量,測試效率高。

缺點是不是純粹的單元測試,底層函數的測試質量對上層函數的測試將產生很大的影響。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM