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