甘彧菲

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