基于數(shù)據(jù)驅(qū)動的自動化測試的研究和實現(xiàn)
1.3 數(shù)據(jù)驅(qū)動的自動化測試框架結(jié)構(gòu)以及實現(xiàn)
基于數(shù)據(jù)驅(qū)動的自動化測試不是簡單的錄制回放,而且通過編程的形式來實現(xiàn)每個測試用例,其中數(shù)據(jù)文件獨立于測試用例,這樣數(shù)據(jù)的更新對整個測試工程的維護會降低到最小。因此創(chuàng)建自動化測試框架需要有一定的編程基礎(chǔ)。
本文自動化測試中采取的是三層框架結(jié)構(gòu),如圖3所示。本文引用地址:http://cafeforensic.com/article/195377.htm
其中最底層為UI Driver層,主要負責(zé)定義基本的通用元素庫,如按鈕、下拉框、文本框等在每個軟件中都會出現(xiàn)的基本元素;對這些元素的基本操作以及通用操作(如等待某段時間的函數(shù)等)。這一層和測試的軟件沒有關(guān)系,因此通用性很強,既可以自己開發(fā)也可以用前人開發(fā)好的底層自動化Driver。
第二層為代理(Agent)層,這一層是建立在被測軟件上,對被測軟件的每一界面(UI)均建立相關(guān)的類和對象,方便最上層調(diào)用,這一層需根據(jù)軟件的不斷更新而更改。
最上層為測試用例層(Test Cases),這一層建立在代理層上,代理層建立好之后,可以提供給測試用例層所需的界面元素,使測試用例可以通過對界面元素的操作完成自動化測試過程。這一層是測試用例的實現(xiàn)層,如果有了比較完善、結(jié)構(gòu)合理的底層以及代理層,此層實現(xiàn)起來就會非常簡單。
其中測試數(shù)據(jù)以及軟件中元素的ID信息是存放在獨立的XML文件中,測試用例層或者代理層需要用數(shù)據(jù)時,可以通過統(tǒng)一的接口讀取。這樣的方式不僅可以使整個測試工程結(jié)果清晰,最重要的是可以降低整個測試系統(tǒng)的維護費用,這樣才能確保自動化測試的投入回報不斷提升。
1.4 自動化測試的維護和擴充
自動化測試工程會由于軟件的不斷擴充而必須加以維護和擴充。其中維護是指由于新版本的升級導(dǎo)致的舊的測試用例無法通過,必須加以維護才能正常運行。而擴充則是指由于版本的不斷升級,某些功能已經(jīng)非常穩(wěn)定,適合于自動化測試,需要新添加一些測試用例來覆蓋這些功能。
擴充和維護是一個長期的過程,其中需特別注意的是每次自動運行測試用例,必須有個詳細的結(jié)果日志來記錄測試用例的通過情況,對于運行失敗的用例,記錄失敗的原因,這樣有利于測試人員通過結(jié)果來判斷產(chǎn)品的bug。這里需要特別注意的是,有的測試用例表面上是通過了,但是實際上卻執(zhí)行失敗了,并且結(jié)果日志上記錄的是通過,如果出現(xiàn)這樣的情況,而測試人員卻毫無察覺,這就是失敗的自動化,所以對于每次自動化測試的結(jié)果,最好能夠建立起核查機制,以確保結(jié)果的可靠性。
2 總結(jié)
自動化測試是一個比較新的研究領(lǐng)域,也是近來很具爭議性的研究話題,對于自動化測試引入之后的利弊,眾說紛紜。當(dāng)然自動化測試也在爭議中顯現(xiàn)出了強大的生命力,其測試效率高、重用性好等優(yōu)點得到了廣泛的認同。本文中所介紹的自動化測試框架結(jié)構(gòu)在很多大型的軟件系統(tǒng)中得到了應(yīng)用,取得了良好的效果。
評論