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