第Ⅰ部分 敏捷開發 第4章 測試

烈火驗真金,逆境磨意志——盧修斯?塞尼加
編寫單元測試是一種驗證行爲,更是設計行爲,更是編寫文檔行爲。避免了反饋循環。
★4.1測試驅動的開發方法
設計程序先編寫測試方案,單元測試是檢驗程序功能的唯一標準,不多加一個功能、不增加一行代碼。
包羅萬象的單元測試的好處:1.每項功能都有測試來驗證其正確性。2.迫使我們從調用者的角度思考。3.迫使我們把程序編寫爲可測試的,易於調用的,和周邊環境解耦的。4.測試可以作爲文檔,演示如何調用。
★4.1.1一個測試優先設計的示例
hunt the wumpus 捕獲獅頭象
先編寫測試,從而目的是讓測試通過,稱爲intentional programming。先編寫的測試會影響設計方法。
★4.1.2測試促使模塊之間隔離
★SLS:Mock – 假的 or 仿製的對象:認識Mock Object:http://bigwhite.blogbus.com/logs/535124.html
★4.1.3意外獲得的解耦合
單元測試在解耦方面提供了很多推動和指導。例如:使用了Mock Object後,就可以對唄Mock的對象進行解耦,而不依賴於某個特定的對象。

★4.2驗收測試
作爲驗證工具,單元測試是必不可少的,但還不夠。
單元測試用於驗證系統小的組成單元的功能,但沒有驗證系統做爲一個整體時工作的正確性。
單元測試驗證系統中個別機制的白盒測試(white-box tests)。驗證測試是用來驗證系統滿足客戶需求的黑盒測試(black-box tests)。
驗收測試由不瞭解系統個內部機制的人編寫。
驗收測試是程序可以運行,一遍使用腳本語言編寫。
首先編寫驗收測試的行爲,對系統架構產生深遠的影響。可以促進解耦。
項目迭代初期會受到手工的方式進行驗收測試的誘惑。但是,這樣做使得在迭代的初期就喪失了自動化驗收測試需要帶來的對系統解耦的推動力。
單元測試促使在小的方面做出優良的設計。驗收測試促使在大的方面做出優良的設計。
創建一個驗收測試框架是一個困難的過程。
★4.2.1驗收測試示例
★SLS:這是一個非常超脫的例子,做得很通用。經典。值得借鑑。
薪水支付的驗收測試。
★4.2.2意外獲得的構架
用xml表示輸入和輸出是一個非常好的構架。

★4.3結論
測試套件運行起來越簡單,機會越頻繁的運行他們。從而越快的發現錯誤,系統失效的時間就決不會超過幾分鐘。整個時間會越來越短。
單元測試和驗收測試都是一種文檔形式,這些文檔形式是可編譯的、可執行的、因此他是準確的、可靠的。
測試的重要好處是對架構產生的影響。既“解耦”。
★SLS:本章要點:1.驗收測試和單元測試促進解耦。2.自動化腳本提高測試效率,從而提高產品質量。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章