發(fā)布: 2008-5-28 09:46 |
作者: 網(wǎng)絡(luò )轉載 |
來(lái)源:
網(wǎng)絡(luò )轉載 |
查看: 645次 | 進(jìn)入軟件測試論壇討論
領(lǐng)測軟件測試網(wǎng)
引言
基于GUI的
自動(dòng)化測試工具在軟件
測試自動(dòng)化領(lǐng)域發(fā)揮著(zhù)巨大的作用。它的基本原理是在測試者運行應用程序的同時(shí),把他的所有動(dòng)作,包括鍵盤(pán)操作、鼠標點(diǎn)擊等捕獲下來(lái),生成一個(gè)腳本文件,這個(gè)腳本以后可以被“回放(playback)”,也就是按照上一次的所有動(dòng)作重復執行一遍,實(shí)現自動(dòng)運行和測試。在實(shí)際
測試過(guò)程中,通常腳本按同一動(dòng)作連續執行的意義并不大,而是要根據測試
需求進(jìn)行一些必要的修改,如選擇不同的測試數據、腳本中插入檢查點(diǎn)(check point)進(jìn)行跟蹤調試等等。所以
自動(dòng)測試如果能夠高效地執行,還依賴(lài)于前期需要做充分、周密的準備和定制工作。
由此我們知道,在測試設計時(shí)
手工測試與自動(dòng)測式相互結合、相互補充這個(gè)度的把握,將直接影響到能否達到最大的測試效率。本文將重點(diǎn)討論對于一個(gè)基于GUI
自動(dòng)化測試工具,如果能夠靈活、方便、高效,替代大量手工測試工作,它所應具備的最基本和最關(guān)鍵特征有哪些,希望能夠幫助我們在工具選購時(shí)提供更多的參考。
基于GUI自動(dòng)化測試工具的問(wèn)題
首先我們從最簡(jiǎn)單的測試捕捉、回放(record and playback)過(guò)程入手,引出其中存在的一些問(wèn)題,那么能否解決這些問(wèn)題,就是我們在選購工具時(shí)應該重點(diǎn)關(guān)注的方面,
基本的捕捉、回放過(guò)程在實(shí)際應用中會(huì )存在很多問(wèn)題,最直接的一個(gè)問(wèn)題是測試針對程序界面進(jìn)行,一旦界面有任何改動(dòng),都需要我們去手工修改已錄制好的相應
測試腳本,或者重新進(jìn)行一次錄制。由其對于程序中各模塊都要使用的一些公共程序部分(如用戶(hù)登錄界面),它的改動(dòng)會(huì )引起我們大量測試工作的返工,造成測試腳本的日常維護工作量急劇增大。
那么如何解決這個(gè)問(wèn)題?這里涉及到很多自動(dòng)化測試方面的技術(shù)。首先我們可以在被測應用程序和錄制生成的測試腳本之間增加一個(gè)抽象層,他可以將程序界面上的所有元素映射成相對應的一個(gè)邏輯對象,測試就可以針對這些邏輯對象進(jìn)行,而不需要依賴(lài)于界面上元素的變化。再有,建議把一些公共使用的函數進(jìn)行封裝,做成可重用的函數庫。最后,可以把測試執行過(guò)程中所需的測試數據做成文件形式,測試腳本在運行時(shí)能夠隨時(shí)從此文件讀取預先定制好的數據,這樣腳本和數據可以獨立維護。從以上幾個(gè)典型的解決方法我們可以看出,一個(gè)好的自動(dòng)化測試工具其實(shí)與一個(gè)好的開(kāi)發(fā)工具有很多相似的特征,也就是說(shuō),一個(gè)自動(dòng)化測試過(guò)程實(shí)際也是一個(gè)軟件開(kāi)發(fā)的過(guò)程。
以上是自動(dòng)化測試普遍存在的問(wèn)題,那么在選購工具時(shí),如何確保這些問(wèn)題的很好解決呢,下面就進(jìn)一步闡述作為自動(dòng)化測試工具,它的十二條關(guān)鍵特征。
1 支持腳本化語(yǔ)言(scripting language)
這是最基本的一條要求,
腳本語(yǔ)言具有與常用編程語(yǔ)言類(lèi)似的語(yǔ)法結構,可以對已錄制好的腳本進(jìn)行編輯修改。具體來(lái)講,應該至少具備以下功能:
支持多種常用的變量和數據類(lèi)型
支持數組、列表、結構,以及其它混合數據類(lèi)型。
支持各種條件邏輯,(IF、CASE等語(yǔ)句)
支持循環(huán)(FOR、WHILE)
支持函數的創(chuàng )建和調用
當然如果此工具使用如大家都比較熟悉的如
VB、C等通用語(yǔ)言,測試就更方便了。腳本語(yǔ)言的功能越強大,能夠為測試開(kāi)發(fā)人員提供更靈活的使用空間,而且有可能用一個(gè)復雜的語(yǔ)言能夠寫(xiě)出比被測軟件還要復雜得多的測試系統。所以,我們必須首先確信腳本語(yǔ)言的功能是否可以滿(mǎn)足我們測試的需求。
2對程序界面中對象的識別能力
測試工具必須能夠將程序界面中的所有對象都區分并標識出來(lái),錄制的測試腳本才具有更好的可讀性、靈活性和更大的修改空間。如果只支持通過(guò)位置坐標來(lái)區分對象,它的靈活性就要差很多了。
對于用一些比較通用的開(kāi)發(fā)工具寫(xiě)的程序,如PB、DELPHI、MFC,大多數測試工具都能區分和標識出程序界面里的所有元素,但對一些不太普及的開(kāi)發(fā)工具或庫函數,工具的支持會(huì )比較差,因此在測試工具選擇方面,對
開(kāi)發(fā)語(yǔ)言的支持也是很重要的一項。當然程序難免會(huì )存在一些比較難于標識的對象,如位圖對象(bitmap)等,而這些對象在程序中可能還要完成一些功能或者執行相應的操作,那么在軟件設計階段就應該仔細考慮,是一定要這樣實(shí)現軟件功能,還是要保證軟件的可測試性,或者采取一些折衷處理方法。
3支持函數的可重用。
如果支持函數調用,我們可以建立一套比較通用的函數庫,一旦程序做了修改,我們只需把原腳本中的相應函數進(jìn)行更改,而不用把所有可能的腳本都改動(dòng),可以節省很大工作量。
測試工具在這項功能上的實(shí)現情況,有兩點(diǎn)要注意的,首先要確保腳本能夠比較容易地實(shí)現對函數的調用,另外還要支持腳本與被調函數之間的參數傳遞。比如對于用戶(hù)登錄函數,每次調用時(shí)可能都需要使用不同的用戶(hù)名和口令,此時(shí)就必須通過(guò)參數的傳遞將相關(guān)信息送到函數內部執行。
文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/
TAG:
gui
GUI
工具
自動(dòng)化