軟件自動化測試在功能測試中的應用
軟件測試對軟件質(zhì)量的保證起著致關重要的作用。雖然國內(nèi)軟件企業(yè)越來越注重軟件測試工作,但仍然存在這樣一個不爭的現(xiàn)實:除了部分大中型軟件企業(yè)外,相當多的軟件企業(yè)的軟件測試工作還完全處于手工測試狀態(tài),甚至還沒有穩(wěn)定的測試團隊。在這樣的企業(yè)環(huán)境下,軟件測試工作變成了一項枯燥繁重的“苦差事”。大型軟件項目的新增業(yè)務需求和變更需求比較多,且各類業(yè)務比較復雜,如ERP、CRM、SCM等等。軟件開發(fā)往往采取模塊化設計和增量集成的方式,加上某些系統(tǒng)對流程和權限的控制比較嚴格,從而導致單據(jù)從受理到進入歸檔狀態(tài)是一個非常漫長的過程。測試人員準備測試數(shù)據(jù)比較困難,經(jīng)常需要花很多時間去創(chuàng)建一張單并執(zhí)行到預定的狀態(tài)。此外還有大量的變更問題需要驗證,軟件測試中的許多BUG還需要進行回歸測試。這些工作都存在大量的重復性勞動,有必要引入和運用功能自動化測試方法。
自動化測試方法
我們在使用自動化測試工具進行功能測試時,主要是對軟件進行自動化回歸測試。回歸測試是軟件側(cè)試過程中的一個重要階段。當代碼修改、軟件硬件平臺變更或硬件配置改變后, 都必須進行回歸測試。作為軟件生命周期的一個組成部分, 回歸測試在整個軟件測試過程中占有很大的工作比重。在測試過程中,回歸測試有兩個很大的缺點:費時而煩瑣。尤其在測試用戶界面(GUI)時, 測試變得很復雜, 操作員也非常容易出錯。但越來越多的應用程序需要和圖形用戶界面(GUI)一期工作,為了支持這些應用程序的測試,就要求軟件測試工具必須提供捕獲用戶操作(如擊鍵、鼠標活動等)的能力和在代碼被修改后自動回放用戶操作的能力。
捕獲和回放
所謂的摘獲和回放技術就是先由手工完成一遍需要測試的流程,在這期間,測試工具可以把用戶在進行測試時的鍵盤和鼠標等輸入操作記錄下來, 同時也把軟件的響應記錄下來, 當對軟件作了修改并重新運行這個測試時, 就可以利用測試回放功能把這個測試以前所作的輸入操作重新應用到本次側(cè)試中,并自動比較軟件對本次測試和以前的測試的響應是否相同,如果不同, 就表明對軟件的修改產(chǎn)生了新的錯誤。
腳本技術
腳本是一組測試工具執(zhí)行的指令集合,也是計算機程序的一種形式。腳本可以通過錄制測試的操作產(chǎn)生,然后再做修改,這樣可以減少腳本編程的工作量。當然,也可以直接用腳本語言編寫腳本。在自動化測試時,應根據(jù)實際的測試需求和條件選取適當?shù)哪_本開發(fā)方法。一般都會綜合好幾種開發(fā)方法。
自動化測試工具
在實際工作中,回歸測試需要反復進行,當測試者一次又一次地完成相同的測試時,這些回歸測試將變得非常令人厭煩,而在大多數(shù)回歸測試需要手工完成的時候尤其如此,因此,需要通過自動測試來實現(xiàn)重復的和一致的回歸測試。通過測試自動化可以提高回歸測試效率。為了支持多種回歸測試策略,自動測試工具應該是通用的和靈活的,以便滿足達到不同回歸測試目標的要求。
目前主流的功能自動化測試工具有HP公司的QuickTest Professional,IBM公司的Rational Functional Tester等。下面就以HP公司的QuickTest Professional為例,簡單介紹一下自動化測試工具的工作流程。
QuickTest Professional
HP QuickTest Professional簡稱QTP,提供符合所有主要應用軟件環(huán)境的功能測試和回歸測試的自動化。采用關鍵字驅(qū)動的理念已簡化測試用例的創(chuàng)建和維護。它讓用戶可以直接錄制屏幕上的操作流程,自動生成功能測試或者回歸測試用例。專業(yè)的測試者也可以通過提供的內(nèi)置腳本和調(diào)試環(huán)境來取得對測試和對象屬性的完全控制。
主要步驟
QTP進行功能測試的測試流程 [制定測試計劃]——>[創(chuàng)建測試腳本]——>[增強測試腳本功能]——>[運行測試]——>[分析測試結(jié)果] 大致五個步驟:
1、制定測試計劃
自動測試的測試計劃是根據(jù)被測項目的具體需求,以及所使用的測試工具而制定的,完全用于指導測試全工程。
QTP是一個功能測試工具,主要幫助測試人員完成軟件的功能測試,與其他測試工具一樣,QTP不能完全取代測試人員的手工操作,但是在某個功能點上,使用QTP的確能夠幫助測試人員做很多工作。在測試計劃階段,首先要做的就是分析被測應用的特點,決定應該對哪些功能點進行測試,可以考慮細化到具體頁面或者具體控件。對于一個普通的應用程序來說,QTP應用在某些界面變化不大的回歸測試中是非常有效的。
2、創(chuàng)建測試腳本
當測試人員瀏覽站點或在應用程序上操作的時候,QTP的自動錄制機制能夠?qū)y試人員的每一個操作步驟及被操作的對象記錄下來,自動生成測試腳本語句。與其他自動測試工具錄制腳本有所不同的是,QTP除了以VBScript腳本語言的方式生成腳本語句以外,還將被操作的對象及相應的動作按照層次和順序保存在一個基于表格的關鍵字視圖中。比如,當測試人員單擊一個鏈接,然后選擇一個CheckBox或者提交一個表單,這樣的操作流程都會被記錄在關鍵字視圖中。
3、增強測試腳本的功能
錄制腳本只是實現(xiàn)創(chuàng)建或者設計腳本的第一步,基本的腳本錄制完畢后,測試人員可以根據(jù)需要增加一些擴展功能,QTP允許測試人員通過在腳本中增加或更改測試步驟來修正或自定義測試流程,如增加多種類型的檢查點功能,既可以讓QTP檢查一下在程序的某個特定位置或?qū)υ捒蛑惺欠癯霈F(xiàn)了需要的文字,還可以檢查一個鏈接是否返回了正確的URL地址等,還可以通過參數(shù)化功能,使用多組不同的數(shù)據(jù)驅(qū)動整個測試過程。
4、運行測試
QTP從腳本的第一行開始執(zhí)行語句,運行過程中會對設置的檢查點進行驗證,用實際數(shù)據(jù)代替參數(shù)值,并給出相應的輸出結(jié)構信息。測試過程中測試人員還可以調(diào)試自己的腳本,直到腳本完全符合要求。
5、分析測試
運行結(jié)束后系統(tǒng)會自動生成一份詳細完整的測試結(jié)果報告。
小結(jié)
自動化測試同手工測試一樣,都需要有一個計劃,測試的覆蓋率,評估自動化測試工具是否能帶來收益來確定測試的內(nèi)容,其實,并不是所有項目都適合自動化測試工具的,如果項目周期短,是不適宜做自動化測試的,自動化測試雖然在運行中比較省時間,但是在前期的設計,腳本的編寫和維護都會浪費較多的時間,如果自動化測試腳本不能重復利用多次,自動化對于我們只是一種時間的浪費,只會令整個項目延期。如果你要用QTP這種識別圖形用戶界面(GUI)屬性的工具必須要等待頁面功能穩(wěn)定以后才能進行自動化腳本的設計,因為任何一個控件的修改都會導致自動化工具不能識別控件。
【編輯推薦】