饒建農(nóng) 湯杰 熊淑梅 劉桂梅
摘要:軟件測試的目的是為了對軟件的質(zhì)量或可接受性做出判斷,并發(fā)現(xiàn)軟件存在的問題。大多數(shù)GUI軟件的測試通過手工操作來完成,因此存在成本高,浪費時間等缺點。通過探討GUI軟件的自動化測試方法,比較手工測試的測試過程,得出了自動化測試的優(yōu)點和缺點,并提出了GUI軟件自動化測試過程中存在的問題。
關(guān)鍵詞:自動化測試;測試工具;測試指標(biāo);缺陷
中圖分類號:TP311 文獻標(biāo)識碼:A 文章編號:1009-3044(2014)02-0298-03
1 介紹
“自動化測試”是利用一種適當(dāng)?shù)臏y試工具,自動運行測試的過程。使用自動化測試工具最有效的目的是使回歸測試自動化。這就意味著對可重復(fù)的詳細測試用例要有或者要開發(fā)出一個數(shù)據(jù)庫,每一次這個測試用例運行時,會有一個應(yīng)用上的改變?nèi)ゴ_認這種變化不會產(chǎn)生意料之外的結(jié)果。
自動化測試反映的是經(jīng)濟性和可操作性。一旦實施,自動化測試通常更經(jīng)濟。同其他類型的測試相比,自動化測試的優(yōu)點表現(xiàn)在:回歸測試經(jīng)常和快速地進行、能更好地利用資源、更容易測試屬性。
盡管有這些優(yōu)點,但自動化測試也有局限性。自動化測試不能取代手工測試的一些功能,因為有一些操作用手工測試來完成會更容易一些。由于軟件開發(fā)的局限性,自動化測試不能提高效率。測試工具不具有想象力,也就是說測試工具只是一個軟件。測試工具只會服從使用說明,但是一個測試者在測試工具運行的時候,可以發(fā)揮自己的創(chuàng)造性和想象力來提高這種測試,或者是背離計劃或者是標(biāo)注一些附加情況,以便在以后能更好地測試。
圖形用戶界面的手工測試有難度而且浪費時間,但是由于用戶界面的廣泛應(yīng)用和控制組件(按鈕,下拉菜單,工具欄等)的數(shù)量使它在今天的軟件系統(tǒng)中更受歡迎,更有用。因此,GUI軟件成為自動化測試的目標(biāo)。
2 計算機輔助軟件測試工具(CAST)
2.1工具介紹
工具是以一種更好的方式完成某些事情的手段或者自動化系統(tǒng)?!案玫姆绞健币馑际牵汗ぞ呖梢允归_發(fā)更精確,更有效率或者更有生產(chǎn)力,可以提高產(chǎn)品的最終質(zhì)量。在自動化測試領(lǐng)域內(nèi),有各種計算機輔助軟件測試工具,依靠工具所結(jié)合的不同行為,工具可以分成不同的類型。
1)回顧和檢查工具
這些工具幫助形成回顧,瀏覽和需求規(guī)格,功能設(shè)計和代碼。這種要求回顧和檢查支持的工具是::
復(fù)雜性的分析工具:這些工具幫助識別高風(fēng)險和復(fù)雜領(lǐng)域。軟件的復(fù)雜度以程序內(nèi)決定的數(shù)量為基礎(chǔ),這對于測試者來說是非常重要的,因為它提供了一個測試總量的必要的說明,從而在實踐中避免缺陷。
代碼理解工具:這種工具幫助用戶理解不熟悉的代碼。用于識別受到特殊關(guān)注的區(qū)域,比如說檢查區(qū)。
語法和語義分析工具:這些工具進行廣泛地錯誤檢查,發(fā)現(xiàn)編譯器可能遺漏的錯誤。這些工具是獨立的語言,可以分析代碼,保存錯誤清單,提供構(gòu)造信息。
2)測試計劃工具
測試計劃為全部測試過程提供基礎(chǔ),確定測試活動的來源和測試時間表。測試計劃工具包括:測試計劃文檔的模板、測試進度和人員評估、復(fù)雜性分析員。
鑒別復(fù)雜領(lǐng)域的工具也可以用來定位那些影響額外測試計劃的領(lǐng)域(這些額外測試以基本風(fēng)險管理為基礎(chǔ))。通常最大的幫助來自于軟件測試文檔的IEEE/ANSI標(biāo)準(zhǔn),它描述了測試計劃的目的,輪廓和測試計劃的內(nèi)容。
3)測試設(shè)計和開發(fā)工具
在測試計劃之后將會進入一個新的過程,叫做測試設(shè)計過程。在此過程中,所有測試計劃中的測試方法將會更詳細。測試設(shè)計過程識別和重視相關(guān)的測試用例。測試開發(fā)是將測試設(shè)計轉(zhuǎn)換成特殊測試用例的過程。應(yīng)當(dāng)提出的是,這一階段,從測試工具,尤其是測試設(shè)計中是得不到太多幫助的。測試設(shè)計和測試開發(fā)所要求的工具如下:
測試數(shù)據(jù)生成工具:這種工具使基于用戶自定義格式的測試數(shù)據(jù)的生成自動化。當(dāng)大量的測試需要輸入數(shù)據(jù)時,這些工具就很有用。
以需求為基礎(chǔ)的測試設(shè)計工具:這些工具為需要規(guī)范化方法的用戶準(zhǔn)備,用于設(shè)計測試用例,以確保實現(xiàn)的系統(tǒng)達到了需求文檔指定的格式。
4)測試執(zhí)行和評估工具
測試執(zhí)行和評估是執(zhí)行測試用例和評估結(jié)果的過程。這些工具被用于自動運行選擇的可執(zhí)行的測試用例,和用來計算這種工作的有效度。自動測試執(zhí)行工具對于解決大量的測試是必要的。測試執(zhí)行和評估所需的工具如下:
抓取和播放工具:這些工具抓取測試輸入,數(shù)據(jù)和包括鍵盤、鼠標(biāo)活動在內(nèi)的動作,同時也能夠執(zhí)行自動化播放,因此測試在稍后的時間內(nèi)可以很容易地重復(fù)進行。這能讓手工測試者從反復(fù)的手工測試中解脫出來。差異被報告給測試組,同時抓取的數(shù)據(jù)幫助測試組追蹤差異,直到找出最初的原因。使用抓取/播放工具的問題就是:實現(xiàn)這些測試的自動化需要某些穩(wěn)定性。自動化測試的關(guān)鍵就是可維護性。這一工具的另一個問題是:使用這一工具是非常昂貴和費時的。
覆蓋分析工具:在測試已經(jīng)執(zhí)行的情況下,這些工具測量那些沒有被覆蓋,需要更多測試的產(chǎn)品部分。這種測量可在模塊或者子系統(tǒng)平臺上執(zhí)行。為保持對覆蓋信息的追蹤,這些類代碼使源代碼進入預(yù)處理程序。新的代碼資源要比舊資源大的事實導(dǎo)致目標(biāo)模塊尺寸的增長。然而,即使結(jié)構(gòu)測試覆蓋率100%,也不能確保測試完成。
記憶測試工具:這一工具的作用就是發(fā)現(xiàn)存儲的問題。錯誤在它們變得明顯和引發(fā)嚴(yán)重問題之前能夠被識別。記憶測試工具往往是語言和特殊的平臺。這種工具使用簡單,定價也合理。
模擬器工具:模擬器工具模擬被測試系統(tǒng)的運行環(huán)境。它被用來測試那些貴重的,危險的,或者是在真正的環(huán)境中不可能測試的軟件。比如說測試航空或者核反應(yīng)堆的控制軟件。
執(zhí)行工具:執(zhí)行工具決定系統(tǒng)的執(zhí)行能力。這些工具使產(chǎn)生,控制和分析客戶應(yīng)用系統(tǒng)的測試變?yōu)榭赡堋?/p>
2.2工具選擇
為了使自動化測試有效,或者提高軟件的質(zhì)量,應(yīng)當(dāng)特別注意對測試工具的選擇,選擇的測試工具最好適合測試需要。選擇測試工具時應(yīng)當(dāng)考慮下列因素:
兼容性:選擇能夠自動化測試的測試工具,也就是說,測試工具必須支持系統(tǒng)中的平臺有效。為了測試結(jié)構(gòu)有效,管理測試數(shù)據(jù)和腳本,測試工具必須具有所有必需的關(guān)鍵特性。同樣測試工具也應(yīng)該支持設(shè)備建立測試用例,例如創(chuàng)建目錄和刪除文件。
維護性:與改變軟件相比,維護測試用例更容易。維護工作的減少,不僅依靠定義明確的程序,而且也依靠測試工具的功能性。例如有些工具與其他工具相比,對軟件類型的頻繁改變不太敏感,這就讓基礎(chǔ)腳本的編輯更容易。
學(xué)習(xí)性—實用性:這就要求掌握這種工具不能花費太多時間。工具應(yīng)當(dāng)是容易使用的,或者它的特性不應(yīng)該是麻煩的和困難的。文檔,腳本語言和測試工具的界面就是影響實用標(biāo)準(zhǔn)的因素。
可靠性—連續(xù)性:確保工具能夠正常的工作,因為有些工具開發(fā)商并沒有進行很好的測試,從而導(dǎo)致失敗可能會經(jīng)常發(fā)生。
3 GUI軟件的自動化測試
在使用GUI的情況下,為了創(chuàng)建自動化測試用例,需要測試工具和測試對象。該文選擇Telelogic Tau公司的MSC編輯器(version3.4)作為測試用例。
3.1測試工具選擇
GUI最好的測試工具看起來是抓取/播放工具,因為研究的目的就是關(guān)注GUI測試問題。為了選擇好的抓取/播放工具, 對比了三種不同的工具。這些工具是:Software Research Inc.的TestWorks,Vermont Creative Software的HighTest和Mercury Interactive Inc.的WinRunner/XRunner。
在選擇工具之前,有些測試已經(jīng)在Microsoft Notepad上完成。當(dāng)產(chǎn)生測試和用測試工具輔助執(zhí)行時,有些因素必須納入考慮范圍:平臺支持,測試用例準(zhǔn)備,維護性,錯誤校正,測試管理,調(diào)試,學(xué)習(xí)曲線和可靠性/可用性。
由TestWorks提供的功能是非常有限的,而鼠標(biāo)的活動是不能忽視的。使用這一工具的另一個問題是:沒有好的文檔記錄。
HighTest有好的文檔記錄,而且功能要比TestWorks更強,但是HighTest的主要問題是:錯誤報告分析起來比較困難,同時也不支持Unix平臺。
最好的選擇就是WinRunner/Xrunner,它提供了廣泛的功能,也有很好的文檔記錄。WinRunner/XRunner的錯誤報告使分析和定位錯誤更容易,而且也支持所有的平臺。這種工具對于Telelogic公司來說是最適當(dāng)?shù)倪x擇,但是在這些工具中,它也是最貴的一個。
3.2測試用例產(chǎn)生
通過WinRunner為MSC編輯器創(chuàng)建測試用例時,有些問題也就隨之出現(xiàn)了。創(chuàng)建測試用例時,遭遇了第一個問題,它可能按照目前的編輯器狀況,來檢查菜單項目的可選擇性或者模糊度。這些測試用例不能夠按照所需求的那樣工作。
創(chuàng)建菜單測試時產(chǎn)生了另一個問題:當(dāng)主要構(gòu)造改變時,更新一個單一的表格要比編輯大量的測試用例更容易。WinRunner的作用主要用于儲存信息。
此外,在編輯器的彈出菜單中沒有生成測試用例。它可能需要花去一些時間,來產(chǎn)生需要進入彈出菜單的功能,因為WinRunner并不支持彈出菜單的測試。
3.3 測試指標(biāo)收集
進行案例研究時,指標(biāo)包括創(chuàng)建,運行和更新測試用例的時間以及發(fā)現(xiàn)的缺陷的數(shù)量。案例研究開始之前,手工測試的相應(yīng)指標(biāo)的收集已經(jīng)完成。
1)時間
參考文獻:
[1] Pqul C Jorgensen.Software Testing[M].北京:機械工業(yè)出版社,2005:2-11.
[2] 鄭人杰,殷人昆,陶永雷.實用軟件工程[M].北京:清華大學(xué)出版社,1997: 203-207.
[3] 華濤,李紅紅,李束祥.一種低代價的圖形用戶界面回歸測試框架[J].計算機工程,2011(14):39-40.
[4] 于凌云.軟件測試的實踐研究[J].電腦知識與技術(shù),2010(27):7664-7666.