2009-08-14 43 views
2

我一直聽到測試驅動開發是一種不幸的技術名稱,因爲TDD不是測試,而是關於設計。我們能爲TDD想出一個更好的名字嗎?

個人而言,我從來沒有與名稱的問題,僅僅是因爲我一直認爲它更作爲一種編程的規範。我從來沒有遇到這樣的問題,即驗證我符合規範的代碼在類名稱,方法名稱,註釋或屬性中包含「test」一詞。這是我爲了讓測試框架爲我付出沉重代價而遵循的慣例。

我不是最教條我的做法,但我會盡力先寫我的測試中,我經常發現自己啓發,寫一些額外的代碼,然後我嘗試在測試包。我確實傾向於發現,每當我這樣做時,TDD都會從API設計的角度來取代我(儘管我一開始爲它編寫測試,我也不可避免地重構了未經測試的代碼),但重點是我'沒關係,只要我完成了一個關於感興趣的事情的測試工具,就可以不寫。

所以,回到問題。什麼是TDD更好的名字?一個不涉及「測試」這個詞的名字會起什麼作用?

+0

你是問,爲什麼我們不把它叫做「發展帶動下測試「?這是個問題嗎?還是你抱怨說你沒有先寫所有的測試?或者你問在所有代碼之前不寫所有測試是否可行?我無法回答這個問題。 – 2009-08-14 19:23:19

回答

8

測試驅動開發不是一種測試方式,它是開發(包括設計,編碼和測試)的一種方式。否則,它將被稱爲開發驅動測試。

短語「測試驅動開發」的動詞是發展,「測試驅動」僅僅是個副詞。你應該解釋一下誰給你的期限感到悲傷。

我完全沒有問題的名稱,因爲它準確地反映了意圖。在開始開發之前,您不必完成所有測試,但至少應該指定它們。

+0

我絕對同意。這並不是說我特別受到任何人的傷害,更多的是我有點厭倦了膝蓋反應,很多人都爲此而感到厭倦。 – RKitson 2009-08-14 04:02:46

+0

用於語法參考 - 優秀! – BryanH 2012-09-24 11:07:30

3

我認爲這就是Behavior-Driven Development試圖實現(除其他事項外)。

我已經停止關心明確的名字 - 這一切都可以解釋。

1

在我的(主觀)的意見,我相信這是因爲有些人開始了競選反對在測試驅動開發的話「測試」是的,因爲與解釋某些類型的開發商概念不愉快的經歷。

有開發商誰,只要他們聽到「測試」這個詞,停止監聽 - 他們認爲這不是他們的工作,所以他們爲什麼要在乎?如果你需要人們採用TDD的做法,這種態度顯然是有害的。如果解決這個問題的一個解決方案是將TDD重新命名爲不包含「測試」一詞的東西,那麼我很好,但是對於我們其他人來說,讓我們繼續稱它爲TDD。

我看到至少有以下方面建議:

  • 測試驅動開發(原項)
  • 測試驅動設計(因爲它更多的是設計)
  • 例驅動設計(因爲可以將測試看作是代碼應該如何工作的示例)
  • 設計示例(僅用於EDD的另一個短語)
  • 行爲驅動設計(聲明的意圖不同,但幾乎所有的嘗試至今看起來很像TDD添加了一些額外的冗長)

即使「設計」是對我很重要,我仍然認爲測試提供價值。當然,他們不是質量保證測試,但作爲TDD副產品的整個測試仍然提供安全網,讓您有信心重構。實際上,Refactoring有一整段關於單元測試的內容,因爲福勒認爲在沒有迴歸測試套件的情況下嘗試重構是非常危險的。

人真正,真正相信該測試是在TDD不重要應該把自己的錢用在他們的嘴和delete the unit tests when their code is done

對於我來說,TDD是有道理的。是的,首先是開發和設計,但測試也是重要的工件。

+1

最近和一個反測試人員進行了討論,他反對的主要觀點是它需要很長時間。當我問他如何驗證他的代碼有效時,他說告訴我他打開調試器並逐步完成。吹我的腦海。 – RKitson 2009-08-14 17:33:30

+0

他他,是的,這確實很棒:) – 2009-08-14 17:51:51

0

我認爲「代碼示例」是我們所做的最好的名字。我認爲這就是丹北所說的。 Code By Example是BDD的一部分(因此BDD比TDD更大/更具體)。

「Context Specifications」的概念也非常相似,由Scott Bellware等人推廣。

我同意在使用「測試」一詞使得很難的技術溝通,新的開發。

1

我認爲測試驅動開發是好的。就是這樣。是的,它會影響設計。是的,它提高了質量。是的,它提高了整體的可維護性和重構能力。是的,它更快。等

我認爲BDD作爲一種不同的,更具體的做法。但是,也許它比TDD最初的意圖更符合JUnit推廣的工具。

這是一個糟糕的名字,因爲它講的更多的過程比好處?也許。

其他的想法:

  • 負責開發利用策略
  • 測試第一發展
  • 全面發展探析
  • 沒有黑客
相關問題