極限編程中的單元測試 單元測試方法
在極限編程中,程序員負責自己的單元測試。那么留給測試員的是什么工作呢?有人認為XP的成本比較低是因為省下了測試員的費用。那么由程序員測試就不需要測試員了嗎?他們能真正替代測試員的工作嗎?
大家關于XP的理解,我發現至少有3種以上:
1、 書上說的(Kent Beck的《Extreme Programming Explained》 、 Kent Beck 和Martin Fowler的《Planning Extreme Programming》)
2、 經過XP專家指導和培訓,項目組的理解
3、 只是看過書,自己的理解
按書上說的,XP包括單元測試(由程序員完成)和可接受性測試(由“客戶”完成)。程序員使用單元測試只是驗證軟件是與所期待的一樣工作?山邮苄詼y試需要驗證軟件是像顧客需要的一樣工作。
這里很明確,“客戶”是被期待成這樣的工作角色:編寫用戶故事(類似用例),然后編寫對用戶故事的測試。書中對于“客戶”是誰說得有點含糊,所以這里要加上引號!翱蛻簟笔亲龀鰳I務決定的人。在XP之外,這個人通常被稱為產品經理或業務分析員。
即使是在很好地培訓過XP的團隊,也很難讓這個“客戶”編寫可接受性測試。所以最后還是開發人員或測試人員來寫,并且很晚才寫。的確,研究表明可接受性測試的編寫是XP中最難被認同的實踐之一(\"Circle of Life, Spiral of Death, \" Ramachandran and Shukla, in XP/Agile Universe 2002 Proceedings, Wells & Williams, ed.)。為了彌補這個不足,XP的創始人之一Ward Cunningham最近開發了一個開源的測試框架來解決可接受性測試的問題 (Framework for Integrated Test, Ward Cunningham)。
XP的書上沒有要求程序員替代測試員測試。更恰當地說,他們主張測試的總體代價要降低,主要是通過避免那些通常會困擾軟件項的冗長的測試階段。但是測試還是必須要做的,從程序員方面和客戶方面都要。
有些人主張XP應該拋棄測試人員。這個論調其實是雙面的。一方面鼓勵程序員應該做好單元測試。一方面也是在指責一些任性的、不關注項目成敗的測試員。 Lisa Crispin寫了一本書來為XP項目組中的測試員爭取更多的尊重(Testing Extreme Programming, Lisa Crispin and Tip House)。
對于最后的測試,無疑是需要測試員的。但是XP要求測試員作為項目組的服務。如果測試員沒有得到恰當的方法培訓,則會導致失敗。
的確,有些人認為XP是想最小化黑盒測試員的角色,因為有著對低效率的測試員的不好的經驗。主要是抱怨測試員:
1、 反對不符合他們傳統觀點的過程改進
2、 過分關注對于項目影響很小的bug
3、 缺乏有貢獻性的技術、技能 [Page]
4、 缺乏對現代開發方法和架構的理解
Cem kaner 曾經說過,“除非我們領域的技能水平得到充分的提高,否則程序員還是會繼續找方法旁路測試組。如果我們繼續在我們的項目組中應用低技能的傳統的過程、審判式的、政治活動式的過程,我想我們會看到測試員被持續地、合理地、可憐地從項目的重要角色中排除出去!
如果你是XP項目組中的測試員之一,這里有幾個方法你可以向你們團隊展示你的價值:
1、 展示你在軟件期待值方面(需求)的有用的觀點,一個與程序員或“用戶”不一樣的、對項目成敗有用的觀點。
2、 展示你對自己作為信息提供者的角色很滿意,而不是堅持作為“守門員”或“質量警察”(\"Don’t Become the Quality Police,\" Pettichord, Stickyminds.com, 1 July 2002)。
3、 展示你能適應迭代的開發方式,隨著項目方向的改變而改變,而不是強調項目組要堅持按計劃行事。
4、 展示你可以在缺少正式的規格說明書的情況下也能工作,當你需要的時候尋找更多的信息并在需要的時候自己主動記錄下關鍵的信息。
有趣的是,這些不僅僅是測試員提供給XP項目組的價值標準,同時也是探索性測試的組成部分。
文章來源于領測軟件測試網 http://www.kjueaiud.com/