【摘 要】軟件自動化測試對于提高軟件的測試效率和質量有著至關重要的作用,筆者在此主要從軟件自動化測試的定義、工具分類以及內容角度來進行分析研究,以期軟件自動化測試工具不斷完善,發(fā)揮其應有的作用。
【關鍵詞】軟件自動化測試;測試工具;應用
1.軟件自動化測試的定義
軟件自動化測試目前存在兩種定義,第一,在不需要人的干預的情況下,運用自動化的測試工具進行自行測試。第二,對測試的執(zhí)行使用軟件來進行控制,主要包括測試預期輸出和實際輸出的效果的對比,測試是否已構建了前提條件等。第一種定義更著重于強調“自動化的測試工具”,要求在測試的過程中,不需要人的干預,只需軟件進行運行。而第二種屬于廣義上的定義,它只是涉及軟件,而非自動化的測試工具,并非絕對意義上的軟件自動化測試工具。
2.軟件自動化測試優(yōu)點
2.1提高了測試效率
在軟件測試中對于回歸測試中的動作和用例是已經完全設計好的,同時可以完全預知測試期望和結果,從而可以極大提高測試效率,縮短回歸測試時間。
2.2可以運行更多更繁瑣的測試
許多不可能同時讓足夠多的測試人員同時進行測試的大量用戶測試,實行自動化測試可模擬出同一時間的許多用戶,更好的利用資源,同時達到測試的目的。
2.3具有一致性和可重復性
由于測試是自動執(zhí)行的,每次測試的結果和執(zhí)行的內容的一致性是可以得到保障的,從而達到測試的可重復效果。自動化測試還存在著復用性的優(yōu)點,自動測試通常采用腳本技術,只需要對腳本做少量的甚至不做修改,實現在不同的測試過程中使用相同的用例。
3.軟件自動化測試工具的分類
3.1白盒測試工具
白盒測試主要是從程序的內部結構出發(fā)設計測試用例,對程序所有邏輯路徑進行測試,通過在不同點檢查程序的狀態(tài),確定實際的狀態(tài),來測試產品內部動作是否按照設計規(guī)格說明書的規(guī)定正常進行,檢驗程序中的每條通路是否都能按預定要求正確工作。其對應的測試工具也主要是直接對代碼進行分析,針對程序代碼、程序結構、對象、類層次等進行測試,測試中發(fā)現的缺陷可以定位到代碼行、具體的某個變量。軟件自動化測試中對白盒測試工具的選擇主要應依據該工具對開發(fā)語言的支持力度、對嵌入式操作系統(tǒng)的支持力度、代碼的覆蓋深度及測試的可視化。
白盒測試工具可進一步細分為靜態(tài)測試工具和動態(tài)測試工具。靜態(tài)測試工具是不運行被測程序本身,僅通過分析或檢查源程序的語法、結構、過程、接口等來檢查程序的正確性。具有代表性的靜態(tài)測試工具有Gimpel公司的PC-lint和Compuare的DevPartner Studio中的CodeRe view。動態(tài)測試工具需要實際運行被測系統(tǒng),并設置斷點,向代碼生成的可執(zhí)行文件插入一些監(jiān)測代碼,監(jiān)測斷點這一時刻程序運行的數據。具有代表性的動態(tài)測試工具有IBM-Rational公司的Purify,Pure Coverage,Quan lify和Compuare公司的Error Detect,Cover
age Analysis,PerformanceAnalysis。
3.2黑盒測試工具
黑盒測試是在已知產品所應具有的功能的情況下,通過測試來檢測每個功能能否正常使用的測試工具。其基本工作原理是利用腳本的錄制和回放,模擬用戶的操作,然后將被測系統(tǒng)的輸出記錄下來同預先給定的標準結果比較。測試時完全不考慮程序內部結構和內部特性,它只檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用,主要用于軟件確認測試。黑盒測試工具的代表有IBMRational的TeamTest、Robot, Compuware公司的QA Center,MI公司的WinRunner等工具。
3.3對數據生成進行檢測的工具
測試數據生成工具主要應用在測試的前端,為測試過程準備大量的可用數據。并且通過轉化、析取、變換或捕捉現有數據作為依據,自動為測試程序生成可靠的測試數據。同時,可以通過配置工具配置數據生成的規(guī)則,并且有一個自動配置引擎,可以根據已經存在的數據庫自動生成配置文件。目前典型的測試數據生成工具有:Bender&Associates公司提供的功能測試數據生成工具SoftTest;Interna
tionalSoftwareAutomation公司提供的Panoram aC/C++測試數據生成工具。
3.4對管理進行測試的工具
測試管理工具是指用工具對軟件的整個測試輸入、執(zhí)行過程和測試結果進行管理的過程。測試管理工具通過一個中央數據倉庫,實現測試人員、開發(fā)人員或其他IT人員在異地進行信息交流。從測試需求管理到測試計劃、測試日程安排、測試執(zhí)行到出錯后的錯誤跟蹤,實現了全過程的自動化管理,提高回歸測試的效率、大幅提升測試時間、測試質量、用例復用、需求覆蓋等。測試管理工具的代表有Mercury Interactive公司的TestDirector、IBM-Ra tional公司的ClearQuest。
4.軟件自動化測試工具的實施程序
軟件自動化測試在本質上與軟件開發(fā)過程是一樣的,都是通過自動化測試工具來實現。具體過程如下:
4.1分析進行測試的需求
不同的人員進行軟件自動化測試時的目的往往是不一樣的,比如測試人員、開發(fā)管理者等在進行測試時會存在安全測試、功能測試以及性能測試等方面的差異。此外,不同的測試工具具有不同的測試功能,所以,在進行測試之前,應對測試方案進行調查,收集需求,以選擇適當的測試工具。
4.2對測試用例進行認真設計
測試用例主要是指關于測試目標的一系列測試,它有一定的順序要求。在設計測試用例時應對測試時的輸入值、標準結果、輸出值等信息進行規(guī)劃。
4.3對測試腳本進行編寫
編寫測試腳本的過程實際上是對具體的測試用例腳本進行轉化,依據測試設計時的需要生成測試腳本,對于一些高度自動化的測試工具,則可以依據以前軟件的運行情況來對測試用例進行自動錄制。
4.4對實施過程進行測試
對實施過程進行自動化測試主要是依靠一定的測試支持系統(tǒng)進行自動化的控制和調度測試的過程。
4.5生成準確的軟件測試報告
根據測試結果的分析,及時發(fā)現出現在產品中的問題的實質,找出解決對策,從而準確評估產品的質量,實現產品質量的提升。
5.結束語
目前軟件技術得到了突飛猛進的發(fā)展,規(guī)模也日益增大,同時軟件的復雜程度不斷增加,要想提高軟件自動化測試程度,就必須達到軟件自動化測試工具的準確使用。目前自動化測試工具的種類非常多,我們在選擇自動化測試工具時,要綜合考慮各方面的因素,只有這樣才能使得測試的質量和效率不斷提高,降低測試所需要的成本,從而促進軟件開發(fā)工作的快速發(fā)展。 [科]
【參考文獻】
[1]黃茂生.軟件自動化測試工具的評估與選擇[J].電子質量,2007(12).
[2]李理,劉軍.軟件測試工具的選擇和使用[J].警察技術,2006(4).
[3]徐進.自動化軟件測試的分析[J].信息技術,2010(3).
[4]王曉虹.軟件工程中的自動化測試技術[J].科教文匯(中旬刊),2009(9).