测试 / 单元测试的重要性
一、什么是單元測試?
要搞懂單元測試,首要要弄清楚什么是單元。
單元是軟件中承擔單一責任的單位,一個函數、一個文件、一個類、一個模塊都可以稱為一個單元。
單元測試便是對軟件設計的最小單位進行正確性測試,以檢驗程序單元是否滿足功能、性能、接口、設計規約等要求。
單元測試本質上也是代碼,與普通代碼的區別在于它是驗證代碼正確性的代碼。軟件開發天生就具有復雜性,沒人敢打包票說自己寫的代碼一點問題都沒有,或者不經測試就能保證代碼正確運行,可能你在這個執行路徑下能夠執行,殊不知還有其他路徑,有一一去驗證過嗎?
因此,要保證程序的正確性就必須要對我們代碼進行嚴格測試。
二、單元測試帶來的好處
通常我們在做任何工作會先考慮它的回報,編寫代碼更是如此。如果單元測試的作用不大,沒有人會愿意再寫一堆無用的代碼,那么單元測試到底能夠給我們帶來什么優點呢?如下:
- 便于后期重構。單元測試可以為代碼的重構提供保障,只要重構代碼之后單元測試全部運行通過,那么在很大程度上表示這次重構沒有引入新的BUG,當然這是建立在完整、有效的單元測試覆蓋率的基礎上。
- 優化設計。編寫單元測試將使用戶從調用者的角度觀察、思考,特別是使用 TDD(Test Driven Development) 驅動開發的開發方式,會讓使用者把程序設計成易于調用和可測試,并且解除軟件中的耦合。
- 文檔記錄。單元測試就是一種無價的文檔,它是展示函數或類如何使用的最佳文檔,這份文檔是可編譯、可運行的、并且它保持最新,永遠與代碼同步。
- 具有回歸性。自動化的單元測試避免了代碼出現回歸,編寫完成之后,可以隨時隨地地快速運行測試,而不是將代碼部署到設備之后,然后再手動地覆蓋各種執行路徑,這樣的行為效率低下,浪費時間。
三、什么是好的單元測試
既然我們已經知道了單元測試對一個程序員的重要性。那如何寫好單元測試也是程序員需掌握好的技巧。這里,我想向大家介紹測試的 FIRST?原則。FIRST? 并不是第一的意思,其每個字母都有獨特的含義:
-
F - 快速:測試必須非常快,這樣開發人員可以對每一個小更改運行測試,而不用中斷思緒去等待測試運行。
-
I - 隔離:不同的測試用例之間是隔離的。一個測試不會依賴另一個測試。不同測試的故障是相互隔離的。
-
R - REPEATABLE - 可重演:測試程序要可在不同環境跑。
-
S - SLEF-VALIDATING - 自我確認:測試結果應是簡單的 TRUE / FALSE,無須人工確認。
-
T - 及時:測試是及時的。程序員在代碼上線前,及時地編寫它們,以防止bug。
轉載:(42 封私信 / 82 條消息) gtest - 搜索結果 - 知乎 (zhihu.com)
(SAW:Game Over!)
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的测试 / 单元测试的重要性的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Cpp / shared_ptr 配置删
- 下一篇: gcc / -L 和 -Wl,-rpat