陳 凱
?
關(guān)于軟件自動化測試技術(shù)應用探討
陳 凱
廣州廣電運通金融電子股份有限公司,廣東 廣州 510000
隨著軟件規(guī)模的逐漸擴大,軟件測試的成本也越來越高,因此越來越多的軟件廠商引入了軟件自動化測試技術(shù)以降低人力和資源成本,另一方面能夠縮短軟件的開發(fā)周期,提高軟件測試的可靠度和精確度,并在測試過程相對穩(wěn)定。研究將就軟件自動化測試技術(shù)的應用展開探討。
軟件;自動化測試技術(shù);技術(shù)應用
要確保軟件的質(zhì)量,最有效的方法之一就是進行軟件測試,不論是何種應用軟件,從軟件的編寫、系統(tǒng)編碼到系統(tǒng)應用的整個軟件生存環(huán)節(jié),軟件測試都是必不可少的。[1]數(shù)據(jù)顯示,軟件開發(fā)總工作量和總成本的一半左右都是用于軟件測試的,目前軟件研發(fā)的重點和難點也是軟件測試工作,軟件領(lǐng)域?qū)<覍W者對軟件測試技術(shù)也越來越重視,現(xiàn)階段的軟件測試技術(shù)逐漸趨向自動化和網(wǎng)絡化,這也是軟件開發(fā)技術(shù)人員的研究重點。
1.1 軟件自動化測試的定義
現(xiàn)階段軟件自動化測試的定義主要有兩種。第一是使用自動化測試工具進行軟件測試,不需要人工干預測試進程和測試結(jié)果,這種測試技術(shù)一般應用于性能測試和軟件GUI測試;第二種是使用測試軟件進行軟件測試,控制測試過程,構(gòu)建測試的前提條件,并且能夠?qū)㈩A期測試輸出和實際輸出進行對比,最終得到測試報告。軟件自動化測試實際上是自動化技術(shù)和軟件手工測試流程的有機結(jié)合。
1.2 對兩種軟件自動化測試技術(shù)的理解
對于第一種軟件測試技術(shù),顯然更加強調(diào)測試過程中“不需要人工干預”,常見的測試工具有IBM Rational、Segue、Compuware等公司開發(fā)的自動化測試軟件;對于第二種軟件測試技術(shù),定義更加廣泛,強調(diào)的工具而不一定是自動化測試工具,并且自動化測試不一定要具備自動化測試步驟,在一些情況下,測試前提條件也是具有自動化的可能和必要的。[2]自動化測試軟件可能是公司根據(jù)實際需求開發(fā)的,也可能是專業(yè)開發(fā)的,顯然前者更能滿足公司的實際需求,能夠提高軟件測試的效率和質(zhì)量。
2.1 引入自動化測試的原因
由于軟件的種類越來越多,功能也越來越復雜,采用傳統(tǒng)人工軟件測試會耗費大量的時間和精力,也很難保證測試的準確性。引入自動化測試技術(shù),能夠節(jié)省大量的時間和人力,進行無法自動化的、更加深入的測試,增加測試的覆蓋率。
2.2 引入自動化測試的利弊分析
雖然自動化技術(shù)有很多優(yōu)點,但是仍然無法完全代替人工軟件測試,在大部分時候特別是軟件版本升級需要進行大量重復測試時,使用自動化測試能夠節(jié)省大量時間和人力,但是自動化測試技術(shù)只是機械的重復人工操作的過程,尚未實現(xiàn)真正的自動化。程序升級后代碼后可能修改了一小部分,那么采用原來的測試腳本測試,可能也不會發(fā)現(xiàn)問題,但是這并不代表程序的實際功能不存在問題,有可能是一些新增的功能,測試腳本并未將其包含在內(nèi);如果程序的原有代碼修改較多,那么原來的測試腳本可能無法再使用,需要再次編輯測試腳本。
這實際上體現(xiàn)出測試腳本的不固定性,導致測試和維護工作大大增加,拉低了工作效率。[3]采用自動化測試技術(shù),能夠進行回歸驗證測試,確保當前版本的軟件功能穩(wěn)定,并能保證在后續(xù)的升級、應用中仍能保持穩(wěn)定性,這部分的功能測試就能夠采用自動化測試技術(shù)完成。
3.1 按照測試功能分類
常見的有單元測試工具JUnit;壓力測試工具SQA LoadTest;功能級測試QARun、SQA Robot、e-Test;Web測試工具e-Test;數(shù)據(jù)庫測試工具TESTBytes;回歸測試工具WinRunner、Team Test;系統(tǒng)性能測試工具Performance Tester;缺陷跟蹤工具TrackRecord。
3.2 按照測試方法分類
用于黑盒測試的工具主要有SQATeamTest、QACenter和Rational Visual Test等;用于白盒測試的工具主要有Purify、BounceChecher、Macabe、TrueCoverage等。目前應用較為普遍的工具為QACenter,測試人員能夠使用這個工具創(chuàng)建能夠重復利用的、快速的測試工程,這些測試工具能夠幫助測試人員管理測試過程、對程序進行分析和調(diào)試等。QACenter主要包括QARun、QALoad、QADirector、TrackRecord、EcoTool模塊,能夠?qū)崿F(xiàn)功能測試、性能監(jiān)測和缺陷追蹤等全面的軟件測試功能。
4.1 運用自動化測試的原因分析
要合理的運用自動化測試技術(shù),我們首先應該明白運用自動化測試的原因。軟件是需要不斷維護和升級的,升級后就需要重新測試,軟件送測的第二個版本開始就需要進行大量的重復性測試,重復性測試是確保軟件質(zhì)量的關(guān)鍵因素,但是卻需要測試人員大量的時間和精力,并且由于測試是重復性的,因此測試人員勢必感到枯燥乏味,因此我們迫切需要采用自動化測試技術(shù)代替人工操作,轉(zhuǎn)而進行更加深入和全面的軟件測試。
4.2 了解自動化測試的對象
要對自動化測試的對象有充分的了解,以制定自動化測試方案。例如測試嵌入式軟件通訊產(chǎn)品,這種產(chǎn)品具有實時應用性,也就是測試需要依靠外界網(wǎng)絡,并且網(wǎng)絡狀況會影響測試結(jié)果,因此我們必須考慮哪些項目可以采用自動化測試,也就是哪些測試項目不會受到網(wǎng)絡狀況影響,對于這些項目運用自動化測試技術(shù),能夠有效縮短測試時間,提高軟件測試效率。
4.3 使用自動化測試工具的種類
我們需要根據(jù)軟件的實際狀況,選擇自動化測試工具的種類。目前市場上有很多自動化測試工具,還有一些工具是開源的,但是并不適合我們的產(chǎn)品,并且錄制腳本比較麻煩,需要較多的后期維護工作,這些工具軟件本身也可能存在缺陷,會影響測試質(zhì)量和效率。對于自動化測試工具,一般的需求可以體現(xiàn)在如下幾個方面:(1)工具操作簡單,防止在使用過程中工具自身出現(xiàn)問題;(2)輸出輸入測試腳本的編寫較為方便,減少大量后期維護工作;(3)能夠顯示特殊符號,如換行符、空格等;(4)工具能夠記錄測試結(jié)果,這樣測試人員能夠找出錯誤所在;(5)對于測試中可能發(fā)生的一些簡單的特殊情況,測試工具能夠自動處理。
4.4 自動化測試腳本的編寫
確定自動化測試工具后,我們需要編寫自動化測試腳本,腳本應該做到盡可能覆蓋測試項目,并且腳本的編輯語言能夠兼顧大部分同類軟件的需求,這樣軟件升級后,或者有新項目新產(chǎn)品時,只需要將原有的腳本進行簡單的修改和編輯就能繼續(xù)使用,大大減少了編輯和維護測試工具的精力。
綜上,軟件自動化測試能夠大大縮短測試周期,降低測試人員的壓力,并且有效保證軟件的質(zhì)量。根據(jù)軟件實際狀況選擇合適的測試工具,確保測試的可靠度和效率。
[1]楊雪.基于數(shù)據(jù)驅(qū)動的軟件自動化測試框架[J].計算機技術(shù)與發(fā)展,2006(5):20.
[2]張忠能.基于系統(tǒng)功能測試的軟件自動化測試可行性分析[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