摘要:目前軟件系統(tǒng)功能測(cè)試已經(jīng)不局限于人工測(cè)試,自動(dòng)化測(cè)試能夠有效提高軟件測(cè)試的效率,降低測(cè)試成本,縮短測(cè)試周期。一個(gè)好的自動(dòng)化測(cè)試工具,可以使測(cè)試事半功倍。UFT(Unified Functional Testing)是惠普公司推出的一款基于GUI對(duì)象識(shí)別技術(shù)的自動(dòng)化功能測(cè)試工具。對(duì)象庫(kù)是UFT中的一項(xiàng)重要技術(shù),該文主要研究UFT中的對(duì)象庫(kù)的設(shè)計(jì)與實(shí)現(xiàn)。
關(guān)鍵詞:自動(dòng)化測(cè)試;UFT;對(duì)象庫(kù)
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)36-0088-02
1 UFT簡(jiǎn)介
隨著市場(chǎng)對(duì)軟件質(zhì)量要求的不斷提高,軟件測(cè)試愈來(lái)愈受到重視。隨著測(cè)試工作的不斷深入,越來(lái)越多的軟件公司開始借助自動(dòng)化測(cè)試工具來(lái)提高測(cè)試效率和測(cè)試質(zhì)量、縮短測(cè)試工期、降低測(cè)試成本。特別是對(duì)于一些工期較長(zhǎng)、發(fā)布版本較頻繁且對(duì)軟件質(zhì)量要求較高的大項(xiàng)目,是否使用自動(dòng)化測(cè)試工具是關(guān)系項(xiàng)目成敗的一個(gè)關(guān)鍵因素。
UFT(Unified Functional Testing)是美國(guó)惠普公司的一款功能性測(cè)試工具,目前在測(cè)試工具市場(chǎng)上占據(jù)絕對(duì)主流位置。UFT提供先進(jìn)的自動(dòng)化測(cè)試解決方案,用于功能測(cè)試和回歸測(cè)試,它自動(dòng)捕獲、驗(yàn)證和回放用戶的交互行為。UFT是基于GUI對(duì)象識(shí)別技術(shù)的,而GUI的自動(dòng)化腳本都是針對(duì)應(yīng)用程序中對(duì)象的操作。因此,界面上的操作對(duì)象能否準(zhǔn)確地被識(shí)別,關(guān)系到自動(dòng)化測(cè)試能否正常自動(dòng)執(zhí)行。所以在UFT自動(dòng)化測(cè)試項(xiàng)目中對(duì)對(duì)象的集合,即對(duì)象庫(kù)的設(shè)計(jì)、研究和實(shí)現(xiàn)就顯得尤為重要。[5]
UFT的工作原理就是將應(yīng)用程序回放過(guò)程中各個(gè)控件的主屬性拿來(lái)和測(cè)試對(duì)象進(jìn)行比較,如果各個(gè)主屬性完全匹配,測(cè)試即通過(guò)。
2 UFT對(duì)象庫(kù)簡(jiǎn)介
測(cè)試對(duì)象(Test Object):UFT錄制過(guò)程中所錄制被測(cè)應(yīng)用程序中的對(duì)象,這些對(duì)象會(huì)保存在UFT的本地對(duì)象庫(kù)中。UFT使用測(cè)試對(duì)象標(biāo)識(shí)被測(cè)應(yīng)用程序中的對(duì)象,并存儲(chǔ)該對(duì)象屬性及屬性值,這些屬性有助于UFT在回放會(huì)話期間標(biāo)識(shí)和檢查被測(cè)應(yīng)用程序中的對(duì)象。
運(yùn)行時(shí)對(duì)象(Runting Object):被測(cè)應(yīng)用程序運(yùn)行時(shí)的實(shí)際對(duì)象。
UFT識(shí)別對(duì)象原理一般是按下面三個(gè)步驟完成:(1)在對(duì)象庫(kù)中創(chuàng)建測(cè)試對(duì)象,里面存有測(cè)試對(duì)象的屬性值,主要標(biāo)注一個(gè)或多個(gè)主屬性;(2)在運(yùn)行被測(cè)應(yīng)用程序時(shí)UFT會(huì)根據(jù)腳本里面對(duì)象的名字,在對(duì)象庫(kù)中找到對(duì)應(yīng)的測(cè)試對(duì)象;(3)根據(jù)測(cè)試對(duì)象的主屬性,在被測(cè)應(yīng)用程序中找到運(yùn)行時(shí)對(duì)象,最后對(duì)運(yùn)行時(shí)對(duì)象進(jìn)行操作。在此過(guò)程中,如果測(cè)試對(duì)象和運(yùn)行時(shí)對(duì)象不匹配,將給出報(bào)錯(cuò)信息,無(wú)法順利完成對(duì)此對(duì)象的操作。
對(duì)象庫(kù)是UFT的核心,因?yàn)閁FT是通過(guò)維護(hù)對(duì)象庫(kù)來(lái)達(dá)到對(duì)象識(shí)別的目的的。雖然在描述性編程中不需要提供測(cè)試對(duì)象,但實(shí)際上是在UFT腳本中描述對(duì)象的屬性,而測(cè)試執(zhí)行中對(duì)象識(shí)別的原理是不變的。在事先抓取”代理名稱:”、”密碼:”兩個(gè)文本框?qū)ο蠛汀贝_定”按鈕對(duì)象的前提下,基于對(duì)象庫(kù)編程的腳本如下:
Dialog("登錄").WinEdit("代理名稱:").Set "mercury"
Dialog("登錄").WinEdit("密碼:").Set "mercury"
Dialog("登錄").WinButton("確定").Click
還是”登錄”這個(gè)功能點(diǎn),采用描述性編程的腳本如下:
with Dialog("text:=登錄")
.winEdit("attached text:=代理名稱:").Set "mercury"
.winEdit("attached text:=密碼:").Set "mercury"
.winButton("text:=確定").Click
end with
3 對(duì)象庫(kù)的創(chuàng)建
UFT的對(duì)象庫(kù)可以分為兩種:
1)本地對(duì)象庫(kù)(Local Object):與Action相關(guān)聯(lián),每創(chuàng)建一個(gè)新的Action會(huì)自動(dòng)創(chuàng)建相應(yīng)的本地對(duì)象庫(kù)。
2)共享對(duì)象庫(kù)(Share Object):多個(gè)Action可以共用的對(duì)象庫(kù),其擴(kuò)展名為tsr。
腳本錄制過(guò)程中或通過(guò)對(duì)象庫(kù)專門抓取的對(duì)象都是保存在本地對(duì)象庫(kù)中,這些對(duì)象的作用范圍僅限于當(dāng)前的操作。如果其他的操作也需要這些對(duì)象,則需要手動(dòng)再重修添加一次。要讓這些本地對(duì)象能夠應(yīng)用于多個(gè)操作、測(cè)試中,我們經(jīng)常將錄制好的本地對(duì)象導(dǎo)出,生成一個(gè)共享的對(duì)象庫(kù)文件。
以下情況建議使用本地對(duì)象庫(kù):
1)創(chuàng)建單一操作測(cè)試腳本時(shí);
2)不需要頻繁修改對(duì)象屬性時(shí)。
以下情況建議使用共享對(duì)象庫(kù):
1)使用關(guān)鍵字驅(qū)動(dòng)測(cè)試技術(shù);
2)包含(創(chuàng)建)多個(gè)測(cè)試腳本、接口或?qū)ο笤O(shè)置的多個(gè)測(cè)試;
3)需要經(jīng)常維護(hù)測(cè)試對(duì)象的屬性或有規(guī)律的更新測(cè)試對(duì)象屬性;
4)經(jīng)常進(jìn)行多個(gè)測(cè)試你或有規(guī)律的使用Insert Copy of Action或Insert Call to Action。
由于編程人員在編碼過(guò)程中未注意控件的命名,導(dǎo)致測(cè)試人員使用UFT時(shí)抓取的對(duì)象名稱不規(guī)范,造成對(duì)象庫(kù)維護(hù)和使用不便,因此建議在對(duì)象捕捉完后進(jìn)行重命名。命名規(guī)則如下:
1)名稱應(yīng)與所對(duì)應(yīng)的對(duì)象相關(guān),做到“見名思義”;
2)如果一個(gè)對(duì)象中包含動(dòng)作,則對(duì)象名稱建議為:動(dòng)作名+對(duì)象名;
3)必須是英文名,建議采用駝峰標(biāo)識(shí)格式書寫;
4)名稱不包含特殊符號(hào);
5)名稱應(yīng)不超過(guò)15字符。[6]
4 對(duì)象庫(kù)的對(duì)比、合并
對(duì)象庫(kù)的管理在整個(gè)UFT自動(dòng)化測(cè)試過(guò)程中占據(jù)非常重要的地位,特別是大型的項(xiàng)目,其界面中的控件多而雜,擁有一個(gè)規(guī)范、統(tǒng)一的對(duì)象庫(kù)將有助于腳本的快速開發(fā)和團(tuán)隊(duì)成員之間的協(xié)作。一般情況下,一個(gè)自動(dòng)化測(cè)試項(xiàng)目會(huì)設(shè)置專人對(duì)對(duì)象庫(kù)進(jìn)行嚴(yán)格管理。在某些特殊的場(chǎng)合,可能需要有多人同時(shí)對(duì)對(duì)象庫(kù)進(jìn)行管理,則在項(xiàng)目測(cè)試的后期需要由專人對(duì)對(duì)象庫(kù)進(jìn)行對(duì)比、合并。
在UFT的對(duì)象庫(kù)管理中自帶兩個(gè)輔助工具:Object Repository Comparison Tool(ORCT)和Object Repository Merge Tool(ORMT)。它們所處的位置如圖2所示。
ORCT工具用于對(duì)兩個(gè)對(duì)象庫(kù)文件進(jìn)行分析統(tǒng)計(jì)、并查看兩者之間的差異。ORTC比較之后在Statistics(統(tǒng)計(jì)對(duì)話框)直觀地顯示統(tǒng)計(jì)結(jié)果,而圖形化的差異標(biāo)識(shí)使用戶能更快捷有效地查看對(duì)象庫(kù)之間的差異。ORMT工具用于兩個(gè)對(duì)象庫(kù)文件合并,當(dāng)兩個(gè)對(duì)象庫(kù)中的對(duì)象沒有沖突,所有的合并工作就由系統(tǒng)代勞,不用再手工去設(shè)置,最后只需把Statistics對(duì)話框關(guān)掉,把合并的結(jié)果保存即可。如果兩個(gè)對(duì)象庫(kù)有沖突,ORMT會(huì)準(zhǔn)確標(biāo)記出那些需要合并但是又有沖突的對(duì)象的位置,用戶在解決選項(xiàng)(Resolution Options)的上半部分可以查看有差異的兩個(gè)對(duì)象的信息,在下半部分可以選擇三種解決方案中的任一種。
5 結(jié)束語(yǔ)
總之,在成本、技術(shù)都可行的情況下,在項(xiàng)目中選擇UFT進(jìn)行自動(dòng)化功能測(cè)試工具,將能夠提升測(cè)試的效率、降低測(cè)試成本,而UFT強(qiáng)大的對(duì)象庫(kù)能夠?qū)UI對(duì)象進(jìn)行高效、合理的管理。
參考文獻(xiàn):
[1] 李曉鵬, 趙書良, 魏娜娣. 軟件功能測(cè)試—基于Quick Test Professional應(yīng)用[M]. 北京: 清華大學(xué)出版社, 2012.
[2] 余杰, 趙旭斌. 精通QTP—自動(dòng)化測(cè)試技術(shù)領(lǐng)航[M]. 北京: 人民郵電出版社, 2012.
[3] Tarun Lalwani. QTP自動(dòng)化權(quán)威指南[M]. 北京: 人民郵電出版社, 2013.
[4] 林勤花, 張彩鮮. 企業(yè)案例軟件測(cè)試技術(shù)[M].成都: 西南交通大學(xué)出版社, 2015.
[5] 沈涵超. QTP中的對(duì)象庫(kù)的設(shè)計(jì)、研究和實(shí)現(xiàn)[J]. 科技信息, 2011(29).
[6] 朱云溪. QTP自動(dòng)化測(cè)試對(duì)象庫(kù)的設(shè)計(jì)、研究和實(shí)現(xiàn)[J]. 天津職業(yè)院校聯(lián)合學(xué)報(bào), 2014 (8):59-61.