對于TDD的“單元測試”與傳統的“單元測試”之間的差異,業界一直存在著誤解。知名的XP貢獻者Mike Hill,對這些誤解進行了澄清。他還特別講述了在Industrial Logic的經歷,在那里展開教學時,他和其他人一起使用“微測試(microtests)”這個詞匯來指代TDD的單元測試,避免產生“單元測試”概念上的混亂。
我們將XP中的單元測試稱為“微測試”,因為之前總是要跟別人解釋XP的的單元測試跟傳統意義上的單元測試的不同,既繁瑣又容易出錯。這樣命名以后,至少可以部分避免發生上述問題的幾率。
討論是由Ben Hall的問題引起的,他發現(不從事編程的)測試人員群體不像其他社區那么活躍,對此他覺得很疑惑:
社區里的測試人員都哪里去了?開發人員很容易找,從大型會議(PDC、TechED)到小型用戶組(NxtGenUG),類似的活動很多。兩年前,NxtGenUG在考文垂舉辦首次活動,從那時起我就是它的成員了;而且我還參加TechED Europe會議。但是在這些活動中為什么見不到測試人員?還是我眼拙沒注意到?
我知道公司的招聘人員們一直對此問題感到疑惑,但是從社區的角度來看——測試人員都去哪兒了?他們的交流在哪里進行?如何改進軟件測試、測試人員如何融入到項目結構中、測試人員如何利用最新的開發技術?類似的問題一定會有人關心的,但是這些人在哪里?
很有意思,對Ben的問題的最初回應是這么說的:“是有這樣的社區的,但是他們比較孤立,很大一部分原因是為了避免由于用詞混淆帶來的溝通誤解”。由此激起了大家更熱烈的反響,討論使用新詞匯所能帶來的好處,比如用“微測試”表示TDD中程序員使用的“單元測試”方式。
Hill帶頭,強調了他使用“微測試”所帶來的正向產出,新的XP團隊因此理解了單元測試的著眼點是放在極其細微的測試“單元”之上,而不是傳統的非XP開發過程中所著眼的、較大范圍的“單元”。Mike不只強調了這個區別,他還指出了TDD和微測試的真實意圖及其與傳統測試意圖的差異。
我們發現:密集的微測試驅動開發帶來的好處不僅僅是提高質量。質量的提升是TDD的一個副作用。實際上,我們所傳授的TDD的好處和真正意圖,是要指導生產力:更多功能,更快發布。
很多帖子都對Mike的主意表示贊同。其中,XP大牛Ron Jeffries說道:
我非常同意這才是TDD真正的好處,我也很仰慕你[如此自信]敢于直接把它講出來。
此外,這個討論的有趣和有用之處在于引發的眾多不同觀點和實例,展示了引入“微測試”這樣的詞匯所帶來的優劣之處,比如一個內容充實的列表,列出了真正的微測試的特征。
文章來源于領測軟件測試網 http://www.kjueaiud.com/