甘彧菲
摘要 在高速公路收費(fèi)軟件設(shè)計(jì)中,一個(gè)良好的框架不僅可對(duì)自動(dòng)化測(cè)試流程進(jìn)行規(guī)范,同時(shí)可顯著降低軟件測(cè)試風(fēng)險(xiǎn),提高測(cè)試效率,保證軟件的設(shè)計(jì)質(zhì)量。文章首先對(duì)自動(dòng)測(cè)試框架進(jìn)行了概述,然后基于QTP設(shè)計(jì)的公路收費(fèi)軟件自動(dòng)化測(cè)試框架進(jìn)行分析討論,顯著降低了冗余測(cè)試代碼,提升了測(cè)試代碼的可用性、生產(chǎn)率和可維護(hù)性,降低了測(cè)試成本,可供參考。
【關(guān)鍵詞】QTP高速公路 自動(dòng)測(cè)試框架 測(cè)試邏輯層
在高速公路的建設(shè)過(guò)程中,引入公路收費(fèi)系統(tǒng)自動(dòng)化測(cè)試技術(shù)不僅可降低產(chǎn)品的開(kāi)發(fā)時(shí)間,提升產(chǎn)品的測(cè)試效率,而且可降低測(cè)試成本,達(dá)到用戶對(duì)高速公路收費(fèi)系統(tǒng)的使用需求。因此,設(shè)計(jì)出一個(gè)可以達(dá)到公路收費(fèi)要求的軟件自動(dòng)框架意義重大。
1 自動(dòng)測(cè)試框架簡(jiǎn)介
當(dāng)前,高速公路收費(fèi)軟件自動(dòng)測(cè)試框架主要包括下述幾個(gè)方面的框架內(nèi)容:
1.1 基于數(shù)據(jù)驅(qū)動(dòng)的框架
數(shù)據(jù)驅(qū)動(dòng)框架比較適合用來(lái)對(duì)檢測(cè)流程不會(huì)出現(xiàn)變化,只是數(shù)據(jù)出現(xiàn)變化的測(cè)試對(duì)象。具體的測(cè)試結(jié)果主要由外部提供。
1.2 關(guān)鍵詞驅(qū)動(dòng)框架
關(guān)鍵詞驅(qū)動(dòng)框架在進(jìn)行測(cè)試時(shí)會(huì)提供一些關(guān)鍵詞,還可將自動(dòng)化測(cè)試工具和被測(cè)試系統(tǒng)抽象化,各種類型的系統(tǒng)均可使用其提供的關(guān)鍵字。
1.3 混合型框架
數(shù)據(jù)驅(qū)動(dòng)型框架和關(guān)鍵字驅(qū)動(dòng)型框架是該種自動(dòng)測(cè)試框架的優(yōu)勢(shì)所在,除了通用的關(guān)鍵字外,也可提供有關(guān)系統(tǒng)業(yè)務(wù)邏輯的關(guān)鍵字。
由此可見(jiàn),以上3種自動(dòng)測(cè)試框架各有利弊,在實(shí)際應(yīng)用中,軟件系統(tǒng)都較為復(fù)雜,所以僅僅靠關(guān)鍵字驅(qū)動(dòng)型框架或數(shù)據(jù)驅(qū)動(dòng)框架均不能達(dá)到軟件的測(cè)試要求,對(duì)此,混合性框架比較實(shí)用。
2 自動(dòng)測(cè)試框架的需求量
近幾年,公司高速公路收費(fèi)軟件的版本升級(jí)速度越來(lái)越快,測(cè)試周期越來(lái)越短,一定程度上滿足了市場(chǎng)和客戶的需求。大部分的測(cè)試用例常常由手工測(cè)試人員在一定的工作周期內(nèi)完成,然而這無(wú)疑是一項(xiàng)難以實(shí)現(xiàn)的任務(wù)。隨著現(xiàn)代企業(yè)對(duì)軟件測(cè)試要求的不斷提高,傳統(tǒng)的手工測(cè)試已經(jīng)慢慢被自動(dòng)化測(cè)試技術(shù)所代替,由于自動(dòng)化測(cè)試技術(shù)剛剛開(kāi)啟,目前在企業(yè)的運(yùn)行中還存在很多問(wèn)題。自動(dòng)化測(cè)試技術(shù)為了進(jìn)一步滿足現(xiàn)代企業(yè)的需求,不同類型的自動(dòng)化測(cè)試工具便應(yīng)運(yùn)而生。這些工具可使得軟件測(cè)試較為“輕松”地完成,但其務(wù)必是要建立在認(rèn)真修正的測(cè)試腳本之上。雖然自動(dòng)化測(cè)試能夠滿足大部分企業(yè)對(duì)軟件測(cè)試的要求,但因其腳本維修工作需要巨大的投資成本,一定程度上給企業(yè)增加了投資壓力。正因如此,好多企業(yè)還是傾向于選擇手動(dòng)測(cè)試方式,可幫助企業(yè)進(jìn)一步改善“高投入、低產(chǎn)出”的問(wèn)題。在測(cè)試過(guò)程中,組織可進(jìn)一步拆解細(xì)化不同的測(cè)試組件,這也是采用自動(dòng)測(cè)試化框架的關(guān)鍵優(yōu)勢(shì)所在,此外,自動(dòng)測(cè)試框架還可實(shí)現(xiàn)對(duì)測(cè)試過(guò)程中相關(guān)活動(dòng)的有效組織和管理,使在自動(dòng)化測(cè)試中遇到的問(wèn)題得到更好更快的解決。
3 基于QTP的收費(fèi)軟件自動(dòng)測(cè)試框架
3.1 自動(dòng)測(cè)試框架的基本架構(gòu)
基于QTP的高速公路收費(fèi)軟件自動(dòng)測(cè)試框架設(shè)計(jì)圖如圖1所示。
3.1.1 測(cè)試數(shù)據(jù)層介紹
測(cè)試數(shù)據(jù)層主要包括對(duì)數(shù)據(jù)庫(kù)進(jìn)行測(cè)試、對(duì)用例庫(kù)進(jìn)行測(cè)試。
(1)用例庫(kù)主要有函數(shù)庫(kù)、業(yè)務(wù)組件庫(kù)、對(duì)象庫(kù)構(gòu)成,測(cè)試用例由上述幾個(gè)測(cè)試步驟共同組合完成,一般會(huì)和手工測(cè)試過(guò)程中的多個(gè)業(yè)務(wù)流程和單個(gè)業(yè)務(wù)流程相對(duì)應(yīng)。諸如相關(guān)的調(diào)用業(yè)務(wù)組件和公共函數(shù)、讀取測(cè)試數(shù)據(jù)、生成日志文件、設(shè)置檢查點(diǎn)等都可通過(guò)測(cè)試用例來(lái)實(shí)現(xiàn)。對(duì)象庫(kù)會(huì)將被測(cè)應(yīng)用程序錄制的所用對(duì)象記錄保存下來(lái),這也是其主要的任務(wù)所在。業(yè)務(wù)組件本質(zhì)上是一種測(cè)試腳本,具有很強(qiáng)的重用性,業(yè)務(wù)組件有利于測(cè)試腳本開(kāi)發(fā)效率的提高,同時(shí)還可使得測(cè)試腳本的維護(hù)成本有所降低。常規(guī)函數(shù)和擴(kuò)展函數(shù)是函數(shù)庫(kù)的兩大成分,與被測(cè)應(yīng)用程度是否有交互是兩者之間的關(guān)鍵區(qū)別。
(2)測(cè)試數(shù)據(jù)在自動(dòng)化測(cè)試中占據(jù)著重要的地位,諸如輸入數(shù)據(jù)、輸出數(shù)據(jù)、檢查點(diǎn)數(shù)據(jù)等均屬于測(cè)試數(shù)據(jù)的成分,根據(jù)相關(guān)的數(shù)據(jù)管理規(guī)范,需要對(duì)所有測(cè)試數(shù)據(jù)進(jìn)行規(guī)范性的處理,不允許任何一個(gè)數(shù)據(jù)被某個(gè)QTP腳本私有。
3.1.2 測(cè)試邏輯層
測(cè)試邏輯層主要由批量執(zhí)行列表和批量執(zhí)行驅(qū)動(dòng)器組成。
(1)所有的測(cè)試用例均屬于批量執(zhí)行列表。測(cè)試用例的屬性可進(jìn)行相關(guān)的設(shè)置,以便判斷該測(cè)試用例的可行性,同時(shí)也有利于對(duì)整個(gè)運(yùn)行系統(tǒng)的管理。
(2)自動(dòng)化測(cè)試框架的核心部件是批量執(zhí)行驅(qū)動(dòng)器,控制測(cè)試用例的執(zhí)行和生成測(cè)試報(bào)告是批量執(zhí)行驅(qū)動(dòng)器的兩大目標(biāo)。被測(cè)應(yīng)用程序如有異常狀況出現(xiàn),驅(qū)動(dòng)器會(huì)將運(yùn)行程序和相關(guān)服務(wù)強(qiáng)行關(guān)閉。
3.1.3 測(cè)試展示層
測(cè)試展示層主要是指測(cè)試報(bào)告。批量執(zhí)行驅(qū)動(dòng)器一方面可記錄整個(gè)測(cè)試所用的時(shí)間,另一方面還可記錄執(zhí)行成功和執(zhí)行失敗的測(cè)試用例個(gè)數(shù),最終測(cè)試結(jié)果可通過(guò)測(cè)試報(bào)告進(jìn)行查詢。該自動(dòng)化框架所具備的特點(diǎn)如下:
(1)批量執(zhí)行測(cè)試腳本,相關(guān)測(cè)試報(bào)告集合生成;
(2)降低測(cè)試腳本的維護(hù)成本,實(shí)現(xiàn)模塊化的測(cè)試腳本管理模式,提高測(cè)試腳本的維護(hù)效率;
(3)實(shí)現(xiàn)對(duì)控件對(duì)象和測(cè)試數(shù)據(jù)的統(tǒng)一管理,測(cè)試數(shù)據(jù)和控件對(duì)象都要建立在測(cè)試腳本之上:
(4)自動(dòng)化框架的實(shí)施,不會(huì)導(dǎo)致額外工作量的增加。
3.2 測(cè)試數(shù)據(jù)層
3.2.1 測(cè)試數(shù)據(jù)框架
測(cè)試數(shù)據(jù)的管理是通過(guò)SQLSERVER使用數(shù)據(jù)庫(kù)進(jìn)行測(cè)試,所有項(xiàng)目的檢測(cè)數(shù)據(jù)都會(huì)保存在數(shù)據(jù)庫(kù)中。為了方便后期可以更好地應(yīng)用數(shù)據(jù),所有得到的測(cè)試數(shù)據(jù)都會(huì)在數(shù)據(jù)庫(kù)中進(jìn)行備份保存。在執(zhí)行過(guò)程中,初始化函數(shù)會(huì)發(fā)揮一定的作用,即其可把對(duì)應(yīng)的測(cè)試數(shù)據(jù)加載到runtime Data Table中去。runtime DataTable會(huì)在測(cè)試用例執(zhí)行完成后被清空掉,下一個(gè)測(cè)試結(jié)果緊接著會(huì)被自動(dòng)加載。數(shù)據(jù)庫(kù)中的一個(gè)表為一組測(cè)試數(shù)據(jù),每個(gè)表都會(huì)有獨(dú)立的名稱和序號(hào),這是基于測(cè)試腳本的ID來(lái)完成。每個(gè)表的每一行測(cè)試數(shù)據(jù)為一次循環(huán)。為了使QTP讀取數(shù)據(jù)能正常進(jìn)行,表格內(nèi)的測(cè)試數(shù)據(jù)不能重復(fù)出現(xiàn)。
3.2.2 對(duì)象庫(kù)介紹
在自動(dòng)測(cè)試框架中,自動(dòng)測(cè)試框架對(duì)象庫(kù)適用于每一個(gè)業(yè)務(wù)組件和測(cè)試用例。對(duì)象庫(kù)會(huì)將被測(cè)應(yīng)用程序的所有對(duì)象記錄保存下來(lái),使QTP腳本正常運(yùn)行。
3.2.3 自動(dòng)化測(cè)試函數(shù)庫(kù)
在自動(dòng)化測(cè)試框架中,函數(shù)庫(kù)的函數(shù)類型主要包括常規(guī)函數(shù)和擴(kuò)展函數(shù)兩種。兩種函數(shù)和被測(cè)應(yīng)用的的交互性有所不同,其中被測(cè)應(yīng)用程序控件和擴(kuò)展函數(shù)時(shí)交互的。例如,對(duì)直接操作控制信息、空間請(qǐng)求信息、控件返回信息等進(jìn)行接收。和QTP函數(shù)相比,被測(cè)應(yīng)用和擴(kuò)展函數(shù)之間有著密切的聯(lián)系。已經(jīng)廣泛應(yīng)用到了測(cè)試腳本中,不僅可以對(duì)控件進(jìn)行更好的控制,而且可以對(duì)運(yùn)行中出現(xiàn)的錯(cuò)誤進(jìn)行糾正??蓽p弱自動(dòng)化測(cè)試腳本對(duì)QTP依賴性的中間層主要由擴(kuò)展函數(shù)提供,中間層主要位于QTP和應(yīng)用程序之間。
3.3 測(cè)試邏輯層
在自動(dòng)化測(cè)試過(guò)程中,如何執(zhí)行自動(dòng)化測(cè)試是任務(wù)的核心點(diǎn)。在執(zhí)行多個(gè)QTP腳本時(shí),可實(shí)現(xiàn):
(1)自動(dòng)生成測(cè)試報(bào)告;
(2)無(wú)需任何監(jiān)控,進(jìn)行批量執(zhí)行;
(3)測(cè)試數(shù)據(jù)可獨(dú)立保存;
(4)后面測(cè)試腳本不受前面出問(wèn)題測(cè)試腳本的影響。在整個(gè)過(guò)程中,需要將執(zhí)行腳本運(yùn)行的基本狀態(tài)改為T(mén)RUE,并利用運(yùn)行驅(qū)動(dòng)器直接完成后期任務(wù)。
3.4 測(cè)試展示層
一般情況下,測(cè)試人員需花費(fèi)大量時(shí)間從QTP自帶的測(cè)試報(bào)告中提煉所需的信息,這主要是由QTP檢測(cè)報(bào)告的屬性所決定的?;诖?,很多測(cè)試人員都很排斥在自動(dòng)測(cè)試框架中選用該種測(cè)試報(bào)告。測(cè)試報(bào)告生成功能在自動(dòng)化測(cè)試框架中已得到較為廣泛的應(yīng)用,測(cè)試報(bào)告的自動(dòng)生成往往只需調(diào)用該功能鍵即可實(shí)現(xiàn),操作極其簡(jiǎn)便。在執(zhí)行測(cè)試用例時(shí),會(huì)通過(guò)Excel文件對(duì)測(cè)試過(guò)程中出現(xiàn)的錯(cuò)誤信息、日記信息、測(cè)試的步驟、測(cè)試的結(jié)果進(jìn)行整合,測(cè)試人員在進(jìn)行測(cè)試時(shí),通過(guò)對(duì)測(cè)試腳本鏈接進(jìn)行點(diǎn)擊后能夠獲取測(cè)試的具體步驟、測(cè)試的具體結(jié)果等,非常的便利,檢測(cè)人員可以根據(jù)測(cè)試結(jié)果對(duì)測(cè)試執(zhí)行失敗的原因進(jìn)一步進(jìn)行分析。
3.5 QC和QTC的連接自動(dòng)測(cè)試
通過(guò)框架提供結(jié)構(gòu),測(cè)試人員提供QTP工作目錄和QC登錄信息的工作目錄。進(jìn)而保證可將多個(gè)QTP測(cè)試腳本自動(dòng)上傳到Qc,整個(gè)測(cè)試過(guò)程不需要進(jìn)行監(jiān)控。
4 結(jié)束語(yǔ)
綜上所述,經(jīng)實(shí)踐證明,以QTP為基礎(chǔ)構(gòu)建的收費(fèi)軟件自動(dòng)測(cè)試框架具有測(cè)試周期短、測(cè)試質(zhì)量高等優(yōu)點(diǎn),能夠有效提升收費(fèi)軟件自動(dòng)測(cè)試代碼的可維護(hù)性和可重復(fù)性,值得推廣應(yīng)用。
參考文獻(xiàn)
[1]黃文高.QTP自動(dòng)化測(cè)試與框架模型設(shè)計(jì)[M].北京:機(jī)械工業(yè)出版社,2011.
[2]陳能技.QTP自動(dòng)化測(cè)試進(jìn)階[M].北京:電子工業(yè)出版社,2010.
[3]王恩新,淺析我國(guó)高速公路收費(fèi)系統(tǒng)建設(shè)[J].軟件,2012 (05): 95-96.