999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于自動化測試框架的用例研究與實現

2016-08-26 09:03:19朱煥亮ZHUHuanliang中航工業信息技術中心金航數碼科技有限責任公司北京100028
制造業自動化 2016年6期
關鍵詞:界面

朱煥亮ZHU Huan-liang(中航工業信息技術中心 金航數碼科技有限責任公司,北京 100028)

基于自動化測試框架的用例研究與實現

朱煥亮
ZHU Huan-liang
(中航工業信息技術中心 金航數碼科技有限責任公司,北京 100028)

針對軟件自動化測試框架開發自動化測試用例效率不高的現狀,分析問題產生原因,提出通過設計自動生成工具來改善測試用例的開發方式,并給出提高自動化測試用例開發效率的具體實現。

自動化測試框架;測試用例自動生成

0 引言

隨著軟件系統的日趨復雜以及回歸測試等重復性測試在整個軟件生命周期中所占的重要地位,我們必須使用自動化測試技術來提高我們的測試效率。自動化測試技術能幫助軟件開發人員和測試人員在更短時間內開發出更高質量的產品,通過代替頻繁重復的手工測試從而節省了大量的時間和開支。但是利用捕捉/回放測試工具本身無法提供高效的測試。捕捉產生的腳本對于應用的變化過于敏感,以至于測試人員要不停地修改測試腳本。這樣的測試腳本不是我們想要的。我們需要的是一個易于維護的,可以應用于各種不同應用的測試模型。這樣,計算機就比人更適合完成測試任務。另一方面,手工測試也存在一些局限性:手工測試無法做到覆蓋所有代碼路徑;如果有大量(幾千)的測試用例,需要在短時間內(1天)完成,手工測試幾乎不可能做到。自動化所能帶來的核心價值就是“效率”。本文通過介紹基于金航數碼自動化測試框架的自動化測試用例的實現方式,闡述如何提高自動化測試用例開發效率。

1 自動化測試用例開發效率低的問題

自動化測試有別于手工測試,其特點在于需要開發自動化測試用例(編寫測試代碼),類似于TestNG[1](一個常用的自動化測試執行框架),這些框架過分注重“框架”的功能,強調框架即應用程序的代碼開發架構,開發工作就是向其中填入業務代碼。業內常見的測試框架良莠不齊,很多框架都是封裝5~6個類似TestNG這樣的工具,這些底層工具提供不同的功能,而框架的頂層規范了一種自身的測試用例的寫法,這樣開發人員無需了解底層框架的接口,只需掌握框架的用例編寫方式,即可完成測試用例的開發實現。這種自動化測試開發的模式,大多只注重了自動化測試執行的實現,并沒有關注自動化測試開發,導致在自動化測試用例開發階段的工作效率較低,主要體現在以下三方面:

第一,開發代碼時,界面元素定位花費時間較多。界面元素定位過程是一個需要通過工具查看,分析出元素在界面中所處位置結構(像Web項目需要用“開發者工具”查看HTML結構),描述元素屬性特征,最終通過用代碼的形式使計算機識別并進行操作,這個過程不僅需要觀察和經驗,更需要反復嘗試。

第二,開發人員需要手工寫入大量的測試代碼。在定位好元素的描述信息和操作后,測試用例開發人員需要根據框架對腳本的規則編寫測試用例,編寫過程中即便有IDE等工具的幫助,也無法保證手工編寫的代碼沒有錯誤。另外,學習使用這些規則和編程技術有一定難度。

第三,在一個測試用例開發完成的時候,不能對測試流程進行可執行性驗證。無論是JAVA代碼,還是不需要編譯的腳本語言,在開發測試用例的時候,很難通過及時的回放,驗證開發出來的測試代碼是否符合測試目標。這種開發模式需要完成一整段代碼后對腳本進行回放,如果在代碼段中出現一段錯誤,就需要修改并重新執行之前的代碼,導致開發時間不必要的延長。

2 自動化測試框架及測試用例的實現

2.1自動化測試框架概述

金航數碼自動化測試框架提供一組抽象構件與構件實例間交互的方法,以及一套測試自動化相關問題的解決方案。自動化測試框架由自動化測試開發系統和自動化測試管理端兩部分組成。自動化測試開發系統通過“錄制-回放”的方式開發自動化測試用例,錄制是以通過記錄用戶鼠標、鍵盤操作的方式自動生成測試代碼,生成過程不需要手工編寫程序,自動生成的測試用例可以在本地回放,也可上傳到Web管理端遠程測試執行。Web管理端是自動化測試各環節的全程可視化管理工具,能夠在無人值守的情況下,完成測試環境準備、測試用例分發部署、測試結果收集并自動生成測試報告,能夠加速測試效率,縮短測試周期。金航數碼自動化測試框架如圖1所示。

圖1 測試框架

2.2自動化測試用例開發的基礎-界面元素定位

界面元素定位被認為是自動化測試用例開發的基礎,通過設計開發元素定位的工具,能夠抓取到特定的瀏覽器或被測程序界面的元素結構,并通過記錄用戶鼠標、鍵盤的操作行為[2],即鍵盤、鼠標所觸發的事件,自動給出元素的定位方式和信息。元素的定位信息具有唯一性,在監聽到事件并由框架自動生成出元素的定位信息后,如果框架自動檢查的結果是多個界面元素,通過添加自身屬性或從其父類元素屬性,然后再次進行驗證,重復這一過程,直至獲得一個最簡潔的且是唯一的界面元素。元素定位信息可以設定屬性偏好,每個被測系統的開發風格不一致,比如用EasyUI開發的Web前端HTML的格式十分固定,但Id屬性的意義不明顯,常規的Xpath表達式(像FireFox的FirePath生成的Xpath表達式)生成工具[4]不能解決這個問題。金航數碼的開發工具會自動記錄屬性偏好,可以把這種模式預先保存到框架中,在識別到這種結構時給出預先設定,尤其在用戶主動糾正某個Xpath表達式之后。

2.3測試用例自動生成

準備好界面元素定位信息和測試數據后,就可以生成測試用例了。測試用例由測試數據和測試腳本組成。測試數據包括界面元素定位信息和測試過程中用到的數據。測試腳本是使用Java語言編寫的代碼,按照關鍵字驅動[3]規則編寫,描述了測試執行的流程。測試數據與測試腳本分離的設計,使測試用例形成一個較小粒度的測試程序,在HP ALM中叫做應用程序空間[5]。測試腳本調試的最大困難在于,如何使每一行代碼,都能像一個獨立的應用程序一樣執行。測試執行依賴于被測程序,被測程序的運行依賴于瀏覽器、模擬器,所以即便開發出來的代碼正確,執行成功與否也要取決于被測程序的狀態(例如:界面和時效),框架會為這個被測程序創建一個session連接,通過這個鏈接與被測程序產生關聯,這個session在記錄被測程序鼠標事件外,還可以通過回放部分已生成的測試代碼來進行調試。調試時,只需通過手動調整被測程序,再通過session來操來執行測試。因為設計框架之初采用Java作為腳本語言,所以在測試腳本調試時就需要設計一個這樣的流程:把要執行的代碼存放在一個Class中→通過JDK 編譯成class文件→使用自定義類加載器加載到虛擬機中→實例化執行對象并注入環境變量→建立與被測程序的連接session。

用例自動生成程序會根據記錄用戶操作的流程和其他測試資源寫入不同的數據庫中。在遠程測試執行的時候,遠程測試機根據需要把這些資源下載到本地,編譯執行。

3 成效

由于采用自動定位的方式,使得記錄一個元素操作從首次定位、多次迭代到測試腳本的生成過程,處理時間壓縮到3秒鐘以內(即便處理復雜的多frame頁面),只需鼠標點擊界面操作,更重要的是這些定位信息和代碼都通過了測試驗證,由于驗證程序和測試執行程序使用同一段代碼邏輯,避免了生成的定位信息和代碼執行時不匹配的現象,較好的保持了從開發用例到用例執行的一致性。自主研發框架的定位功能還有一個優勢就是根據行業產品的特征,可以定制自己的偏好,生成符合產品風格的定位信息。

測試用例自動生成的直觀好處可降低開發用例人員的投入成本,開發者無需了解框架底層工具的具體實現,更不用掌握具體測試用例的編寫規則以及編程技術,從而更關注測試用例的設計本身。在自動生成測試用例的同時把測試腳本與測試數據分離儲存,通過同步測試管理系統,使遠程測試部署執行,用例維護起來更加便捷。

測試腳本動態的調試,使每一行測試代碼都可以作為單獨的測試程序運行,這個測試程序包含了測試數據、定位信息等,這也正是快速迭代開發用例的方式,拋棄舊的調試流程(即:開發一個完整流程的測試用例→整段代碼調試→修改錯誤→恢復被測程序場景→再次執行),改為以極小的代碼段進行調試執行,使測試用例開發時間縮短為之前的1/4左右。

4 結論

元素自動定位、代碼自動生成以及腳本動態調試等這些工具所共同構成的用例開發方式,可以明顯降低開發自動化測試用例的時間,并且一定程度上降低了自動化測試框架的使用門檻,從而快速反饋軟件質量。

[1] Beust.C,Suleiman.H .Next generation Java testing:TestNG and advanced concepts[M].2007.

[2] 姚礪,束永安.基于Java的捕獲/回放測試工具的實現[J].計算機工程,2003(15).

[3] 管小娟,周誠,錢炫宇,劉時敏.基于驅動的自動化測試研究與應用[J].計算機技術與發展,2014(02).

[4] 劉斌,張曉婧.Web信息抽取系統的設計[J].微型電腦應用,2013(03).

[5] 王振華.復雜工作流軟件自動化測試方法的研究[D].復旦大學,2009.

Research and implementation of test case based on automated testing framework

TP311.1

A

1009-0134(2016)06-0147-02

2016-04-19

朱煥亮(1974 -),男,高級工程師,碩士,主要從事工業軟件研發工作。

猜你喜歡
界面
聲波在海底界面反射系數仿真計算分析
微重力下兩相控溫型儲液器內氣液界面仿真分析
國企黨委前置研究的“四個界面”
當代陜西(2020年13期)2020-08-24 08:22:02
基于FANUC PICTURE的虛擬軸坐標顯示界面開發方法研究
西門子Easy Screen對倒棱機床界面二次開發
空間界面
金秋(2017年4期)2017-06-07 08:22:16
鐵電隧道結界面效應與界面調控
電子顯微打開材料界面世界之門
人機交互界面發展趨勢研究
手機界面中圖形符號的發展趨向
新聞傳播(2015年11期)2015-07-18 11:15:04
主站蜘蛛池模板: 欧美在线免费| 无码AV日韩一二三区| 欧美色伊人| 中国一级特黄大片在线观看| 国产精品9| 国产女人爽到高潮的免费视频 | 欧美性爱精品一区二区三区| 四虎亚洲国产成人久久精品| 国产理论最新国产精品视频| 欧美日韩成人在线观看| 在线看片免费人成视久网下载| 国产精品手机在线观看你懂的| 久久精品国产免费观看频道| 久久久久无码国产精品不卡| 喷潮白浆直流在线播放| 亚洲天堂日韩在线| 欧美精品v| 日韩a级毛片| 日本黄网在线观看| 亚洲狼网站狼狼鲁亚洲下载| 久夜色精品国产噜噜| 九九热精品免费视频| 99视频在线免费| 亚洲AV永久无码精品古装片| 72种姿势欧美久久久大黄蕉| 国产精品网曝门免费视频| 亚洲成人动漫在线观看| 欧美成人手机在线观看网址| 久久综合一个色综合网| 国产免费羞羞视频| 国产精品成| 精品久久人人爽人人玩人人妻| 青青国产视频| 欧美另类视频一区二区三区| 成人精品免费视频| 亚洲人精品亚洲人成在线| 亚洲日韩国产精品综合在线观看| 亚洲一区国色天香| 亚洲午夜福利在线| 国产黄色视频综合| 久久夜色精品| 国产制服丝袜91在线| 无码日韩人妻精品久久蜜桃| 伊人久久福利中文字幕| 亚洲国产成人精品青青草原| 国产精品网址在线观看你懂的| 久草青青在线视频| 久久黄色小视频| 欧美亚洲国产精品久久蜜芽| 亚洲成人播放| 久久99热这里只有精品免费看| 2022精品国偷自产免费观看| 亚洲色图综合在线| 久久精品娱乐亚洲领先| 人妻精品久久久无码区色视| 中文字幕永久视频| 波多野结衣无码AV在线| 六月婷婷综合| 午夜丁香婷婷| 欧美一区日韩一区中文字幕页| 国产丰满大乳无码免费播放| 国产伦精品一区二区三区视频优播| 一级爱做片免费观看久久| 国产精品19p| 久久精品国产在热久久2019 | 波多野结衣在线se| 久久综合亚洲色一区二区三区| 一本色道久久88综合日韩精品| 99热这里都是国产精品| 国产亚洲精久久久久久久91| 日本人又色又爽的视频| 精品人妻一区二区三区蜜桃AⅤ| 97视频精品全国在线观看| 久久久久人妻一区精品色奶水 | 91在线播放国产| 99爱在线| 久久人人妻人人爽人人卡片av| 国产成人在线无码免费视频| 国产一区二区三区视频| 四虎永久免费地址| 日韩免费毛片视频| 人妻丰满熟妇αv无码|