【摘要】本文從為什么要引入自動化測試出發,深入探討了企業實施自動化測試的流程。
前言
大家知道,在國內測試行業屬于一個新興行業,與國外測試行業相比,國內也只是近幾年才開始重視軟件測試的。之所以被關注,原因也許是多方面的,但我想最根本一點就是中國軟件要發展。
中國軟件這幾年發展迅速,很大部分原因是借鑒了國外優秀企業的經驗技術,從無到有,學習了國外企業的一整套做事的規范,的確是一種快速成長方法。當然軟件測試也應該如此,從不重視到重視,更應該多學習一下如何制定測試流程,缺陷管理以及測試用例設計等優秀理念。在此筆者只想針對自動化測試在企業中的實施談些個人意見,希望能和大家分享。
當然,自動化測試作為一項新技術,一開始往往會被一些人認為是“無所不能”的,以為一旦有了它就可以解決軟件所有的質量問題。難道自動化測試就是傳說中所謂的“銀彈”嗎?結果當然是否定的。假如在實施前沒有好好的調查、做好預期準備工作就盲目開展,一旦進入推廣實施階段,往往最終會弄得無法收場的結果。下面讓我們先來解決一個問題。
為什么要引入自動化測試
首先,按照筆者的觀點,用自動化工具進行測試只不過是測試活動中的一種。真正要在工作中派上用場,也是因為測試工作有了人的參與,而使用工具的目的也只不過是用來減少部分手工測試,將更多人力資源投入到更有價值的工作中,決不能輕重不分。
其次,既然要跟上國際潮流,那么自動化測試技術就是將來大部分測試工程師需要必備的一項技能。這也是筆者為什么要寫這篇文章的出發點,希望能幫助大家推動自動化測試在企業中的實施。當然首先要保證一點,要實施自動化測試的企業必須符合具備開展自動化測試的一些先決條件。
筆者就有這樣的感受,在企業中,如果想把自動化測試技術應用到工作生產中,沒有持之以恒的恒心,堅忍不拔的決心,高度的自信心,是不可能完成這個工作的。那么怎樣的時機是有利于開展自動化測試的?實施過程中該注意什么?采用什么策略去避免不必要的損失,提高大家對新技術的興趣是很有講究的。下面筆者將一一做出解答。
企業實施自動化流程
1)至關重要的是公司的高層必須認同成立測試部門是很重要的,不是浪費公司的資源;這一點,其實很早就應該達成共識,因為像Microsoft這樣的公司也說過“大多數人認為我們是一個軟件開發公司,其實我們是一家軟件測試公司”的話,從中可以看出測試是非常重要的。然而考慮到公司的長遠發展,自動化測試將是今后的一個發展方向。由此看來,自動化測試是有必要深入開展的。
2)在公司大規模使用前,必須要有專人針對不同的自動化測試,去評估究竟該使用哪種測試工具比較好。自動化測試工具又分單元測試工具、功能自動化工具和性能自動化工具,其中又分開源的和商業工具。究竟哪種工具更適合自己公司平臺的測試,還需要有專業人員進行評估。
第一、比如說公司是采用Java技術還是.NET技術開發產品的。大多數商用工具都會根據現今最流行的開發平臺提供一種自動化測試的解決方案。做測試工具比較專業的有Mercury,Segue,IBM Rational,Compuware,Empirix這幾家公司,根據不同測試又有相應的測試工具。
第二、如果考慮到商業軟件比較昂貴,還可以考慮一下開源的測試工具。這些工具往往具有小巧,靈活多變,免費的特性,還有個好處就是它的開源?,F在全世界范圍已經有越來越多的人投入到開源項目中去。已經比較出名的有Apache的Jmeter,Jtest,OpenStar等等。就連全球最大的IT公司IBM現在也把目光聚焦到了這塊,由IBM出資1000多萬的開源項目Eclipse,在過去也許是唯一一個能和JBuilder開發環境相媲美的開源的開發環境了。但現在在此平臺上有了TPTP,但我們同樣可以在Eclipse上做我們的功能和性能測試
第三、也許以上工具都無法滿足測試的特殊需求,那最好的方法就是自行開發測試工具;這主要集中在嵌入式系統方面。比如手機與手機之間需要做到即時、無誤的發送短消息,而一般常用的工具是沒有辦法做到這方面測試的,那就只能考慮公司內部自己開發測試工具了。
第四、還有就是在選用工具方面,還要充分考慮到工具的可集成性、可擴展性以及平臺兼容性。因為實際工作中,我們常常需要把測試流程,需求管理,缺陷管理,配置管理結合的更緊密,通過工具去統一管理。這些都是在選用工具時要考慮到的因素。
3)在全面實施之前,根據以往的經驗,筆者建議最好選出幾個人進行小規模的實驗。這樣做的好處一來可以以小見大,從幾個人的反映看出自動化測試的雛形;二來可以總結不足之處,在后期的開展中盡量避免;三來,可以把實施所見的成效推廣開來,為后期工作的開展做好鋪墊。
筆者在企業里就有類似的經歷,一個項目已經上線,以后每次發布一個補丁之前,測試人員都需要通過執行一些SIT(System Integration TestCase)測試用例來覆蓋整個系統的大部分模塊。而執行一遍這樣的用例,至少需要花費六個測試人員一天的時間。后來在這個項目內進行了自動化測試的實驗,根據SIT的測試用例轉換成自動化腳本。運行一個用例腳本只需要十五分鐘,而每次也只需要一個測試人員把所有腳本運行一遍就可以了,其他人就可以從中解放出來做其他工作了。像這樣比較成功的例子,一定要在后期工作開展時加以宣傳,要認大家認識到自動化好處,這樣大家才會有積極性去學。
4)有了上面的經驗,接下來該在整個部門進行自動化測試的推廣了。當然適當給從業人員進行工具的使用技能以及一些相關知識培訓還是有必要的。因為在工作中常常發現由于測試工程師掌握知識的差距,每個人對工具上手操作有快有慢。為了盡量給大家造成好的影響,能夠更好的開展這項工作,使其能更快的應用到日常工作中去,減輕部分繁瑣的重復性勞動,對測試工程師進行培訓還是必不可少的。
5)正如軟件生命周期有需求分析階段一樣,在錄制自動化腳本之前也需要收集需求,這些需求主要是用于后期錄制腳本的選取。這些需求可以根據需求人員做的需求文檔,也可以選擇測試人員的測試用例來轉化成腳本,還可以讓需求分析人員推薦幾個常用的,相對簡單的流程轉化成腳本??傊痪湓?,需求就好比源頭,從源頭抓起才能開發出高質量的腳本。
原文轉自:http://www.anti-gravitydesign.com