1. 程式人生 > >《測試驅動的嵌入式C語言開發》介紹篇

《測試驅動的嵌入式C語言開發》介紹篇

        雖然開篇已經給出了介紹TDD的博文的連結,但這裡為了保證內容的完整性,還是決定寫一個介紹篇作為整個學習歷程的開篇。

  • 什麼是TDD

         TDD(Test Drived Develop)即測試驅動開發,其是一種增量式軟體開發技術。簡單地說,就是先編寫單元測試程式碼,並執行測試程式碼只有測試程式碼測試失敗的情況下再去新增產品程式碼。且每次只編寫一個功能的測試程式碼,對應的測試的產品程式碼新增完成並測試通過後才進行下一個測試程式碼的編寫。這種思想可以很快的發現問題、定位問題並解決問題(因為問題總是最新加入的程式碼引入的);相比於傳統的程式設計方式"後期除錯式程式設計"(Debug-Later Programming,DLP)先寫完程式碼再測試,這樣會使得問題發現點位慢,且很有可能修改一個BUG會引入新的BUG。

         按照TDD思路開發的程式碼可以在測試通過後,很容易進行程式碼的重構。通過重構寫易於理解/易於演化並且易於我們自己和他人維護的程式碼讓工作變簡單。

  • TDD的好處
  1.  產生的bug更少
  2. 除錯時間更短
  3. 邊際效應所帶來的bug更少
  4. 精心構建的測試可以成為可執行且無歧義的文件
  5. 徹底、全面的迴歸測試給予我們信心(晚上睡得香、週末無擔憂)
  6. 改善設計
  7. 對進度進行監控
  8. TDD不斷地給開發者以成就感,你每寫一點程式碼都會完成一些工作,同時你能很清楚它們是正確的。
  • 對於嵌入式開發的益處
  1.  在硬體可用前或者硬體很貴或者很稀少時,通過獨立於硬體的方式校驗產品程式碼,從而降低風險。
  2.  在開發環境中執行並移除bug,從而減少長時間的編譯、連結和上傳這樣的迴圈的次數。
  3.  對於在目標硬體中既難發現有難修改的問題,可以減少除錯的時間。
  4.  通過在測試中模型化硬體互動,使硬體/軟體的互動彼此獨立。
  5.  通過解開模組之間以及模組與硬體之間的耦合來改進軟體設計。可測試的程式碼首先必須是模組化的。