自動化測試可以為幾乎所有開發(fā)或部署軟件的團隊帶來上市時間、質(zhì)量、生產(chǎn)力和可審核性上的巨大效益。例如,TestPlant 曾與全球領(lǐng)先的新聞出版商合作,將他們的應(yīng)用更周期從3 個星期縮短至2 天,也曾幫助英國的一家主要銀行將應(yīng)用發(fā)布版本的缺陷減少了65%,還曾幫助全球五大零售商之一將他們所提供的應(yīng)用數(shù)量增加了1 倍,卻無需擴大原有測試團隊。這些案例并不罕見——自動化測試確實已經(jīng)為許多公司帶來了極大的益處。但是,也有許多團隊多年來付出了巨大的努力,想要推出自動化測試,卻沒能從中取得實在的利益。這是為什么呢?
TestPlant 曾成功地與數(shù)百家公司合作部署了自動化測試,也分析過許多失敗的自動化測試的嘗試。我們從經(jīng)驗中總結(jié)出了成功案例必備的兩大關(guān)鍵因素:
1、項目管理恰當(dāng)。
2、時時有具備自動化測試部署成功經(jīng)驗的人士坐鎮(zhèn)。而許多案例的失敗正因為缺少了這兩個因素。當(dāng)你讀到這兩大成功的關(guān)鍵因素時,覺得是顯而易見的。但事實卻是世界上許多(可能幾乎所有)自動化測試的新嘗試都不具備這兩大因素,因此最終都難以實現(xiàn)目標(biāo)。
本指南旨在幫助你建立成功的自動化測試項目。你可以將其作為為自動化測試部署而定義高質(zhì)量項目規(guī)劃的指導(dǎo)、模板和核查清單。
提示:本指南假定項目高層已決定部署自動化測試,也就是說,已無需為項目創(chuàng)建商業(yè)案例;同時假定自動化測試工具也已選定。如有需求,未來可能發(fā)布包含以上內(nèi)容的新版本,敬請?zhí)峁┓答仭?/span>
自動化測試部署項目主要分為以下三大步驟:
一、項目管理
自動化測試部署必須有恰當(dāng)?shù)捻椖抗芾?。任何合理的項目管理方式均可使用(如Agile、PRINCE2、CCPM等),但必須積極落實應(yīng)用。
(一)指派項目經(jīng)理。
(二)定義目標(biāo)(包括商業(yè)和技術(shù)目標(biāo))。
下面來介紹定義項目目標(biāo)的方法:
1. 項目自動化可以帶來巨大的效益,但是任何能力的習(xí)得都并非一蹴而就,因此你的第一個項目不應(yīng)有過大的野心。強烈建議你在投身大型項目前,先運行一個時間短、目標(biāo)有價值且現(xiàn)實的試驗項目。根據(jù)實際情況設(shè)定相應(yīng)目標(biāo)。
2. 許多新的自動化測試部署項目完全專注于對已有人工測試過程進行自動化處理。人工測試過程通常會遺漏有效測試活動(如回歸測試或兼容性測試),因為這些測試活動無法用人工測試的手段實現(xiàn),但通過測試自動化,它們可以帶來巨大的效益。反之,有些測試活動則無法通過自動化提供效益。所以,當(dāng)你在定義輸出目標(biāo)時,需要考慮清楚哪些測試活動對成果目標(biāo)有貢獻,而自動化又對哪些活動更有利。
(三)制定基本項目規(guī)劃;
(四)定義定期項目評審機制并制準(zhǔn)備工作:
二、準(zhǔn)備工作
(一)、已建立測試環(huán)境,并經(jīng)過測試。
不適當(dāng)?shù)臏y試環(huán)境最有可能導(dǎo)致時間浪費和測試結(jié)果的不可靠。因此,在開始創(chuàng)建和執(zhí)行重要的測試腳本前,設(shè)計和建立一個可靠的測試環(huán)境十分重要。請注意,通過合理規(guī)劃和資源配置,建立可靠的測試環(huán)境并不困難,但如果臨時馬虎處理,則往往會導(dǎo)致問題的發(fā)生。而且你必須保證在測試環(huán)境中做到充分的變更控制。這可能是最重要的潛在因素,因為如果沒有變更控制,再完美的測試環(huán)境都有可能在項目發(fā)展過程中出現(xiàn)問題。沒有變更控制,測試系統(tǒng)中可能會意外安裝上被測應(yīng)用程序的其他版本,配置可能被篡改,測試系統(tǒng)可能被卸載,瀏覽器和操作系統(tǒng)版本可能會自動升級,網(wǎng)絡(luò)電纜可能會斷開。
(二)、已與其他團隊建立合作關(guān)系。
(三)、已定義測試結(jié)構(gòu)、規(guī)則和框架。
開始為你的測試用例創(chuàng)建自動化測試腳本前,你需要定義測試結(jié)構(gòu)、規(guī)則和框架(以下簡稱“框架”) 此時,你可能會忍不住想試著定義將來需要的常見功能集合,在測試員開始為測試用例執(zhí)行腳本前預(yù)先實現(xiàn)這些功能。但我們建議你不要這么做。因為我們的經(jīng)驗顯示,許多預(yù)先實現(xiàn)的功能最終都從未被使用,而許多使用的功能則需要大幅重構(gòu),才能從實施在測試用例上的腳本上有效使用。此外,下了巨大的功夫撰寫腳本卻沒有任何自動化測試用例能夠證明,對積極性的打擊將會很大。所以,我們建議,提前定義模塊化的明確方法,再根據(jù)需要構(gòu)建儲存庫,例如,第一個為測試用例執(zhí)行需要“登錄”的測試腳本的人應(yīng)當(dāng)意識到“登錄”會成為一個常見功能,并將此腳本執(zhí)行添加至儲存庫中。
(四)、建立和配置測試管理工具。
(五)、建立自動化測試執(zhí)行框架。
你當(dāng)然非常希望一夜之間就自動完成測試運行,開始手動測試。而這其實可以通過使用測試管理工具來實現(xiàn),例如像egg- Plant 一樣專注于測試執(zhí)行的工具,或類似Jira 的持續(xù)集成工具。別忘了還是要在開始測試前將工具安裝配置完成。
(六)已定義配置管理,已建立基礎(chǔ)設(shè)施。
要安裝一個類似Git 或Subversion 的配置管理工具(SCM,即軟件配置管理)來儲存測試腳本,而自動化測試執(zhí)行應(yīng)始終使用SCM內(nèi)的一組固定腳本。使用SCM能夠促進共享,保證所有的腳本變化都能得到記錄,以及所有腳本都能經(jīng)常得到備份。
(七)團隊已經(jīng)過培訓(xùn)。保證所有測試員都接受過關(guān)于所使用的測試工具、測試環(huán)境、配置管理和測試結(jié)構(gòu)等內(nèi)容的適當(dāng)培訓(xùn)。
三、 持續(xù)性活動
以上兩個環(huán)節(jié)介紹了項目規(guī)劃中應(yīng)包含的一系列關(guān)鍵的準(zhǔn)備工作。而本節(jié)則介紹了自動化測試項目的主要實施階段中關(guān)鍵的持續(xù)性活動。
自動化測試項目不僅僅是撰寫新腳本的問題,還有其他的重要活動需要恰當(dāng)?shù)馁Y源支持和管理。項目失敗的一常見原因就是只為前期的測試腳本創(chuàng)建工作安排了足夠的人員,這就意味著其他活動的完成質(zhì)量將很低(或根本無法完成),整個項目可能因此被迅速破壞。所以,你的項目規(guī)劃必須將以下羅列的所有持續(xù)性活動都考慮在內(nèi):
測試用例定義、框架開發(fā)、測試腳本開發(fā)(平臺)、測試腳本開發(fā)(其他平臺)、測試執(zhí)行、結(jié)果審閱和缺陷提交、測試腳本管理和環(huán)境管理。
溫馨提示:TestPlant 的成就客戶經(jīng)理在閱讀本文時紛紛表示“結(jié)果審閱”(和處理應(yīng)對)是大多數(shù)項目最容易犯錯的持續(xù)性活動。如果你沒有仔細審閱測試結(jié)果并作出處理,你就無法從自動化測試中獲得價值,你的測試也不可能具備魯棒性。
以下是一個項目團隊的典型資源配置范例:
? 測試用例定義:2 人(假設(shè)測試用例尚不存在)。
? 測試腳本開發(fā)和維護:4-5 人。
- 55% 測試腳本開發(fā)(平臺)。
- 15% 測試腳本開發(fā)(其他平臺)。
- 20% 測試腳本維護。
- 5% 框架開發(fā)。
? 測試執(zhí)行和環(huán)境管理:1 人。
? 項目管理:0.5 人。
關(guān)于TestPlant
EggPlant是全球知名的跨平臺黑盒自動化測試軟件。TestPlant 是一家國際軟件企業(yè),其總部位于英國倫敦市,以其高端的技術(shù)、飛速的發(fā)展和以出口為導(dǎo)向的活動而著稱。該公司創(chuàng)建了EggPlant 這款領(lǐng)先的軟件測試工具,幫助用戶自動化傳統(tǒng)意義上需要手動完成的軟件測試和驗證流程。EggPlant 被全球500 多家涉及各行各業(yè)的企業(yè)使用,包括國防部和安全機構(gòu)、航空與航天工業(yè)、醫(yī)療保健和生命科學(xué)行業(yè)、金融和零售業(yè)、IT、電信和媒體行業(yè)等。已于2011年1月獲得美國專利和商標(biāo)局(US Patent andTrademarks Office)的批準(zhǔn)和認可。
EggPlant技術(shù)
EggPlant 是一款智能的自動化測試工具,能夠查看處于測試中的系統(tǒng)上的顯示屏。用戶可以設(shè)置我們的圖像識別算法,使其發(fā)現(xiàn)與預(yù)期結(jié)果相比存在哪些差異。他們還能調(diào)整EggPlant 來檢測顏色——甚至是色調(diào);EggPlant 可以在使用Silverlight,Flex 和Flash 的動態(tài)環(huán)境中運行;經(jīng)過微調(diào)后能夠適應(yīng)定制的屏幕,而且EggPlant 每次識別一個前后不一致的問題后,就會保存一份含有錯誤屏幕截圖的故障報告,便于開發(fā)人員日后參考。
當(dāng)測試工程師在一個測試環(huán)節(jié)(或手動測試)中使用 EggPlant,就會編譯簡單的“script(腳本)”命令。在 EggPlant 內(nèi)集成的這種命令語言是“SenseTalk”,該語言已被證實極其簡單易用,因為它是面向非開發(fā)人員的用戶,他們不必進行計算機語言的培訓(xùn)即可使用。
EggPlant 的另一項獨特功能是雙計算機方式。EggPlant 被加載到測試控制器上,并使用虛擬網(wǎng)絡(luò)通信(VNC)與處于測試中的系統(tǒng)(SUT)建立一個鏈接。通過這種方式,用戶利用一份EggPlant 許可證,便能測試分布在一個測試實驗室或全球網(wǎng)絡(luò)中各種操作環(huán)境下任何硬件上的大量系統(tǒng)。用計算機術(shù)語描述的話,EggPlant 是一款跨瀏覽器、跨平臺的技術(shù)不可知程序,不但十分友好【它不“干預(yù)”處于測試中的系統(tǒng)】,還能與使用任何IP 地址的任何設(shè)備建立鏈接。已于2011年1月獲得美國專利和商標(biāo)局(US Patent andTrademarks Office)的批準(zhǔn)和認可。