陳 凱
?
關于軟件自動化測試技術應用探討
陳 凱
廣州廣電運通金融電子股份有限公司,廣東 廣州 510000
隨著軟件規模的逐漸擴大,軟件測試的成本也越來越高,因此越來越多的軟件廠商引入了軟件自動化測試技術以降低人力和資源成本,另一方面能夠縮短軟件的開發周期,提高軟件測試的可靠度和精確度,并在測試過程相對穩定。研究將就軟件自動化測試技術的應用展開探討。
軟件;自動化測試技術;技術應用
要確保軟件的質量,最有效的方法之一就是進行軟件測試,不論是何種應用軟件,從軟件的編寫、系統編碼到系統應用的整個軟件生存環節,軟件測試都是必不可少的。[1]數據顯示,軟件開發總工作量和總成本的一半左右都是用于軟件測試的,目前軟件研發的重點和難點也是軟件測試工作,軟件領域專家學者對軟件測試技術也越來越重視,現階段的軟件測試技術逐漸趨向自動化和網絡化,這也是軟件開發技術人員的研究重點。
1.1 軟件自動化測試的定義
現階段軟件自動化測試的定義主要有兩種。第一是使用自動化測試工具進行軟件測試,不需要人工干預測試進程和測試結果,這種測試技術一般應用于性能測試和軟件GUI測試;第二種是使用測試軟件進行軟件測試,控制測試過程,構建測試的前提條件,并且能夠將預期測試輸出和實際輸出進行對比,最終得到測試報告。軟件自動化測試實際上是自動化技術和軟件手工測試流程的有機結合。
1.2 對兩種軟件自動化測試技術的理解
對于第一種軟件測試技術,顯然更加強調測試過程中“不需要人工干預”,常見的測試工具有IBM Rational、Segue、Compuware等公司開發的自動化測試軟件;對于第二種軟件測試技術,定義更加廣泛,強調的工具而不一定是自動化測試工具,并且自動化測試不一定要具備自動化測試步驟,在一些情況下,測試前提條件也是具有自動化的可能和必要的。[2]自動化測試軟件可能是公司根據實際需求開發的,也可能是專業開發的,顯然前者更能滿足公司的實際需求,能夠提高軟件測試的效率和質量。
2.1 引入自動化測試的原因
由于軟件的種類越來越多,功能也越來越復雜,采用傳統人工軟件測試會耗費大量的時間和精力,也很難保證測試的準確性。引入自動化測試技術,能夠節省大量的時間和人力,進行無法自動化的、更加深入的測試,增加測試的覆蓋率。
2.2 引入自動化測試的利弊分析
雖然自動化技術有很多優點,但是仍然無法完全代替人工軟件測試,在大部分時候特別是軟件版本升級需要進行大量重復測試時,使用自動化測試能夠節省大量時間和人力,但是自動化測試技術只是機械的重復人工操作的過程,尚未實現真正的自動化。程序升級后代碼后可能修改了一小部分,那么采用原來的測試腳本測試,可能也不會發現問題,但是這并不代表程序的實際功能不存在問題,有可能是一些新增的功能,測試腳本并未將其包含在內;如果程序的原有代碼修改較多,那么原來的測試腳本可能無法再使用,需要再次編輯測試腳本。
這實際上體現出測試腳本的不固定性,導致測試和維護工作大大增加,拉低了工作效率。[3]采用自動化測試技術,能夠進行回歸驗證測試,確保當前版本的軟件功能穩定,并能保證在后續的升級、應用中仍能保持穩定性,這部分的功能測試就能夠采用自動化測試技術完成。
3.1 按照測試功能分類
常見的有單元測試工具JUnit;壓力測試工具SQA LoadTest;功能級測試QARun、SQA Robot、e-Test;Web測試工具e-Test;數據庫測試工具TESTBytes;回歸測試工具WinRunner、Team Test;系統性能測試工具Performance Tester;缺陷跟蹤工具TrackRecord。
3.2 按照測試方法分類
用于黑盒測試的工具主要有SQATeamTest、QACenter和Rational Visual Test等;用于白盒測試的工具主要有Purify、BounceChecher、Macabe、TrueCoverage等。目前應用較為普遍的工具為QACenter,測試人員能夠使用這個工具創建能夠重復利用的、快速的測試工程,這些測試工具能夠幫助測試人員管理測試過程、對程序進行分析和調試等。QACenter主要包括QARun、QALoad、QADirector、TrackRecord、EcoTool模塊,能夠實現功能測試、性能監測和缺陷追蹤等全面的軟件測試功能。
4.1 運用自動化測試的原因分析
要合理的運用自動化測試技術,我們首先應該明白運用自動化測試的原因。軟件是需要不斷維護和升級的,升級后就需要重新測試,軟件送測的第二個版本開始就需要進行大量的重復性測試,重復性測試是確保軟件質量的關鍵因素,但是卻需要測試人員大量的時間和精力,并且由于測試是重復性的,因此測試人員勢必感到枯燥乏味,因此我們迫切需要采用自動化測試技術代替人工操作,轉而進行更加深入和全面的軟件測試。
4.2 了解自動化測試的對象
要對自動化測試的對象有充分的了解,以制定自動化測試方案。例如測試嵌入式軟件通訊產品,這種產品具有實時應用性,也就是測試需要依靠外界網絡,并且網絡狀況會影響測試結果,因此我們必須考慮哪些項目可以采用自動化測試,也就是哪些測試項目不會受到網絡狀況影響,對于這些項目運用自動化測試技術,能夠有效縮短測試時間,提高軟件測試效率。
4.3 使用自動化測試工具的種類
我們需要根據軟件的實際狀況,選擇自動化測試工具的種類。目前市場上有很多自動化測試工具,還有一些工具是開源的,但是并不適合我們的產品,并且錄制腳本比較麻煩,需要較多的后期維護工作,這些工具軟件本身也可能存在缺陷,會影響測試質量和效率。對于自動化測試工具,一般的需求可以體現在如下幾個方面:(1)工具操作簡單,防止在使用過程中工具自身出現問題;(2)輸出輸入測試腳本的編寫較為方便,減少大量后期維護工作;(3)能夠顯示特殊符號,如換行符、空格等;(4)工具能夠記錄測試結果,這樣測試人員能夠找出錯誤所在;(5)對于測試中可能發生的一些簡單的特殊情況,測試工具能夠自動處理。
4.4 自動化測試腳本的編寫
確定自動化測試工具后,我們需要編寫自動化測試腳本,腳本應該做到盡可能覆蓋測試項目,并且腳本的編輯語言能夠兼顧大部分同類軟件的需求,這樣軟件升級后,或者有新項目新產品時,只需要將原有的腳本進行簡單的修改和編輯就能繼續使用,大大減少了編輯和維護測試工具的精力。
綜上,軟件自動化測試能夠大大縮短測試周期,降低測試人員的壓力,并且有效保證軟件的質量。根據軟件實際狀況選擇合適的測試工具,確保測試的可靠度和效率。
[1]楊雪.基于數據驅動的軟件自動化測試框架[J].計算機技術與發展,2006(5):20.
[2]張忠能.基于系統功能測試的軟件自動化測試可行性分析[J].計算機應用與軟件,2005(12):65.
[3]趙明.軟件自動化測試概述及應用工具分析[J].計算機應用,2007(1):122.
About Software Test Automation Technology to Explore
Chen Kai
Guangzhou radio and television financial electronic Limited by Share Ltd, Guangzhou, Guangdong 510000
With the gradual expansion of the scale of software,software testing cost is getting higher and higher,so more and more software vendors introduced software test automation technology to reduce the cost of manpower and resources,on the other hand can shorten the software development cycle,improve the reliability and the accuracy of the software testing,and in the test process is relatively stable.This article will discuss the application of software automation testing technology.
software;automated testing technology;technology application
TP311.52
A
1009-6434(2016)6-0156-02