2012-03-20 39 views
1

我已經給出了一個源代碼。我必須實施TDD方法。開發源代碼的TDD方法

用於TDD的一般方法如何過是:

  1. 編寫測試。
  2. 失敗。
  3. 編寫代碼。
  4. 通過測試。
  5. 重構,如有必要。

    我應該如何添加測試到這樣一個現有的源代碼?
    對於這種情況的特別方法的建議值得歡迎。
    謝謝
+2

_有效地使用傳統Code_作者:Michael Feathers - 具體來說,第2章。 – 2012-03-20 15:53:46

+0

[將遺留代碼添加到單元測試](http://stackoverflow.com/questions/1541568/adding-unit-tests-to -degacy-code) – Gishu 2012-03-21 06:55:32

+0

同時在TDD上閱讀更多內容,TDD需要測試優先(代碼不能在測試前寫入)。因此,無論是試圖向現有代碼添加(回填)測試,還是試圖對TDD進行後續所有對源代碼的更改?答案會根據你的情況而有所不同。首先,沒有簡單的答案 - 找到你想要關注的領域並提高測試覆蓋率。提出測試和實施。第二,獲得Austin推薦的WELC書。 – Gishu 2012-03-21 06:58:38

回答

1

不要忘記第0步:理解要求。你可以做的是發現需求,然後編寫測試來證明需求是否滿足。如果它會通過,那麼很好。如果沒有,你會發現一個錯誤。無論哪種方式,您都添加了迴歸測試。

你不能做的是對已寫好的代碼實施TDD(或任何開發練習):該船已航行。 可以使代碼庫上的未來開發受益於測試驅動的開發實踐。

+0

謝謝格雷厄姆。我其實並不相信你的發言。只是進行綠色測試並不排除測試本身可能存在問題的可能性(特別是在這種情況下)。 – 2012-03-21 06:25:18

+0

那麼你打算怎麼做呢?測試測試代碼?如果在某個時候你不相信自己能夠正確編寫一個簡單的測試,它會一直在測試。 – 2012-03-21 09:46:50

+0

我不同意你的回答。然而我只是不服氣。 – 2012-03-23 15:29:14

0

您可以將該代碼庫視爲第三方代碼併爲其編寫一些learning tests。學習測試將允許您發現代碼,同時構建一個不錯的測試套件以便進一步開發,以便稍後修改代碼。

如果遺留代碼足夠小,那麼可以這樣做直到代碼覆蓋率接近90或100%。