尹 宇
(施耐德電氣(中國)有限公司西安分公司AOCC 陜西 710075)
自動化測試是我們應用在敏捷中的類似萬能的法寶。但是世界上沒有萬能的東西。這個就需要我們深刻理解自動化測試,并且有好的測試策略來應用在自動化測試中。
我們的測試團隊中,人員的選配是,有專門的測試人員,但是開發人員也會在時間不夠的情況下,加入測試的隊伍。在一個敏捷的團隊中,測試人員一般也是具有一定的編程能力的,當與開發人員溝通一個BUG的時候,能理解開發人員的話,溝通更加順暢。并且在項目需要的情況下,也會加入開發的隊伍中。
當代碼改變,有新的代碼遷入遷出的時候,這個時候,需要觸發自動化構建。我們通常使用Jenkins這樣的持續集成工具,用于做重復的工作。
自動化單元測試,我們通常應用junit的單元測試工具,進行TDD(測試驅動開發)。
在UI比較穩定的情況下,做GUI測試。
在回歸的時候,做功能性測試。
在接口測試,我們可以用Excel,把測試數據放入其中,并且跟實際數據進行比較。
負載測試,我們就必須用自動化了。因為手工測試肯定不準確。我們可以找一些開源的工具來測試。
對于可用性測試和探索性測試,我們需要手工去執行。
手動測試的時間遠遠大于自動化測試。一些重復性的工作最好應用自動化測試。回歸測試的時候需要自動化。自動化可以發現手動中一些發現不了的BUG,比如內存泄露。
在一個敏捷的團隊中,測試可以有自動和手動測試,比如功能測試。必須手動的測試,比如探索性測試。必須自動化的測試,比如單元測試,性能和壓力等。
初始的投入,對于自動化測試來說,是很大的投資。我們首先評價我們已經已有的工具,看其價值,和應用的復雜度。一般來說一些開源工具,也可以滿足我們的需要。而且這樣的投入一般是有意義的。
對于變化非常頻繁的代碼。我們可以根據功能和目的去組織代碼。
如果開始自動化呢?并不是非要股買昂貴的商業工具。一般來說,自動化開始于單元測試,這樣收益是很大的。接著開展可以用于自動化的測試,我們可以選擇一些開源工具。我們并且用一些自動化的構建工具,比如JENKINS等。我們可以選擇開源的功能性驗證工具,比如selenium等。
在敏捷開發中,高效的溝通同樣也適用于自動化測試。因為在迭代開發中,當我們用自動化工具發現昨天的測試用例,今天的版本失敗了。我們就必須立刻去找開發溝通??词牵哪切┑胤搅?,需求是不是有變化了。以便,我們的自動化測試,適應迭代的變化。
在整個團隊中,開發會更多的考慮代碼的可測性,有的時候,還會給測試人員提供一定的接口,來實現自動化測試。
工具的選擇很重要。在我們的測試團隊,我們有TC,但是selenium對功能性的驗證測試,有很大的好處,又比TC好學。就用selenium了。對于開源工具很多都是比較好上手。但是,對于商業工具,雖然感覺上很好。但是,在我們實際的應用的時候,發現,難學,代碼維護繁雜。如果,我們有商業工具的專家,那么用商業工具,更能保證項目的質量。
自動化測試策略的應用,對于我們實現自動化,是必須經歷的過程。好的而自動化測試是質量保證的利器。
[1] Sehwaber K,Beedle M.Agile Software Development With Scrum[M].[S.1.]:Prentice Hall,2001.
[2] Jonathan Rasmusson.敏捷武士看敏捷高手交付卓越軟件.李忠利,譯.人民郵電出版社.2012
[3] Lisa Crispin, Janet Gregory,著.敏捷軟件測試:測試人員與敏捷團隊的時間指南.孫偉峰,崔康,譯.清華大學出版社.2010
[4] Martin R G.敏捷軟件開發一原則、模式與實踐[M].鄧輝,譯.北京:清華大學出版社,2003.
[5] Kniberg H.硝煙中的Scrum和xP一我們如何實施Serum[M].李劍,譯.北京:清華大學出版社,2011.
[6] Mike Cohn.用戶故事及敏捷方法.清華大學出版社. 2010
[7] 陳能技,著.QTP自動化測試進階.電子工業出版社.2010