<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    qileilove

    blog已經(jīng)轉(zhuǎn)移至github,大家請訪問 http://qaseven.github.io/

    為何要建立自動化測試架構(gòu)

    自動化測試架構(gòu)之說

      測試人員經(jīng)常想象——在無人值守的情況下,每天晚上測試工具自動運行成千上萬的測試用例,第二天早晨去上班,一打開電腦就能看到所有的測試任務(wù)已全部執(zhí)行完畢,測試報告也整整齊齊地出現(xiàn)在我們面前。如果能親身經(jīng)歷這種場景,一定會感到無比興奮和輕松!這種情景不是夢想,也并不遙遠,完全是可以實現(xiàn)的,只要借助一套靈活、可擴展的自動化測試框架即可幫助我們實現(xiàn)夢想。

      為何要建立自動化測試架構(gòu)

      在過去幾十年中,自動化測試已經(jīng)有了良好的發(fā)展。最初的測試工具只提供了簡單的捕捉/回放功能:記錄鍵盤和鼠標的操作,并捕捉屏幕,然后通過播放所記錄的操作進行驗證。這樣的腳本很難維護,從而要求開發(fā)功能和靈活性更強的測試工具,并能將這些工具很好地整合起來,使整個自動化測試過程的各個部分或各個階段能很好地銜接起來。這就需要構(gòu)造一個完整的自動化體系,形成自動化測試的流水線,使整個測試過程一氣呵成。這其中,不僅要包括自動化測試的執(zhí)行,還要包括自動化測試腳本的開發(fā)、軟件包自動部署以及測試報告自動生成等,才能將自動化開發(fā)、執(zhí)行和日常工作融合在一起。這一切都需依賴于自動化測試架構(gòu)。

      針對上述討論,我們深知自動化測試所面臨的挑戰(zhàn)。面對挑戰(zhàn),必須采取以下這些相應(yīng)的對策,通過構(gòu)建適應(yīng)性很強的自動化測試框架來解決一系列問題。

      1)需求頻繁的變化要求自動化測試具有一個靈活的適應(yīng)機制。我們知道,建造商品住房時,如果只澆灌混凝土框架,沒有砌墻,那么住戶就有更大的靈活性來設(shè)計自己的家,可以滿足住戶更多的個人需求。在某些商場、寫字樓的建筑上,這種考慮表現(xiàn)得更為充分,保留了很大的靈活空間供商家租用和裝修。

      2)單元測試、集成測試和系統(tǒng)測試等的自動化實施能共享某些平臺和機制,讓這些測試有機地結(jié)合起來。例如,房屋的各個功能模塊,包括臥室、會客廳、廚房、衛(wèi)生間、窗戶、屋頂?shù)榷家锌蚣苤危拍苄纬蓪嵱玫摹⒐δ芡暾淖≌?/p>

      3)大規(guī)模軟件團隊的協(xié)作和硬件資源的使用效率都要求一個良好的基礎(chǔ)設(shè)施來支撐自動化測試。例如,房屋的各個單元之間需要通過布置電線、水管、暖氣管、有線電視等網(wǎng)絡(luò),才能有機地結(jié)合起來,更好地支撐各個功能之間的協(xié)調(diào)和使用,更好地為住宅的主人服務(wù)。

      從上面這些舉例可以得知,自動化測試也不例外,在進行具體的單元自動化測試、功能自動化測試和系統(tǒng)自動化測試之前,先要建立一個清晰的框架,才能包容自動化測試的各個功能單元,使將來各項自動化測試任務(wù)有機地結(jié)合起來,順利地開展工作。

      解決什么問題

      作為自動化測試框架,最根本的是要構(gòu)造一個良好的工作空間,能夠容納各種類型測試工具的執(zhí)行,以使這些工具能夠相互兼容,共享測試數(shù)據(jù)。如果能夠像Windows 操作系統(tǒng)那樣支持即插即用,任何測試工具都可以動態(tài)、方便地加入系統(tǒng)或從系統(tǒng)中移除,則再好不過。

      其次,自動化測試框架需要能夠監(jiān)控測試執(zhí)行的過程,包括監(jiān)控測試對象資源(如CPU、內(nèi)存等)的使用,及時收集來自不同測試工具的測試結(jié)果,并將這些結(jié)果進行歸類和分析,生成相應(yīng)的測試報告,通過郵件和網(wǎng)站等發(fā)布出去。

      再者,為了讓測試能夠在某個特定時刻(例如晚上)自動執(zhí)行,自動化測試框架應(yīng)具有事先安排(schedule)任務(wù)能力,并能夠支持維護測試環(huán)境和管理測試資源,包括管理硬件資源列表、支持測試狀態(tài)查詢和自動分發(fā)測試任務(wù)到相應(yīng)的測試機器上,并在規(guī)定的時間內(nèi)完成測試任務(wù)。

      最后,自動化測試框架還應(yīng)能支持自動化測試的前期任務(wù),支持測試腳本的錄制、編輯和調(diào)試,支持測試腳本的快速開發(fā)和良好的維護性,而且能夠支持測試用例、測試套件(test suite)和其他測試活動的管理。

      要構(gòu)建良好的自動化測試框架,還需要提供一些基礎(chǔ)設(shè)施來支持自動化測試,例如郵件服務(wù)、跨平臺的通信服務(wù)、分布式開發(fā)和運行環(huán)境等,如圖2-7 所示,一個良好的自動化測試框架應(yīng)具有下列能力。

      1)提供非常有效的測試工作流程模型,如對任務(wù)安排、執(zhí)行、通知結(jié)果和生成報告等完整的過程支持。

      2)支持多種腳本語言的錄制、編輯、調(diào)試和回放等集成開發(fā)環(huán)境。

      3)完成各類測試任務(wù)的執(zhí)行。

      4)有良好的擴充能力,如和第三方插件、工具的集成。

      5)具有數(shù)據(jù)驅(qū)動、關(guān)鍵字驅(qū)動等腳本模式的支持。

      6)具有分布式處理、遠程調(diào)用等不同的運行方式。

      7)能獲取測試覆蓋率。

    圖2-7 自動化測試框架要解決的問題

      如果進一步抽象,自動化測試框架就是用來解決自動化測試中的公共問題的,包括公用的對象、公用的方法、公用的環(huán)境或數(shù)據(jù)等自動化測試框架的要素。

      1)公用的對象。不同的測試用例會有一些相同的對象(如窗口、按鈕、菜單等)被重復(fù)使用,而這些公用的對象可以被抽取出來,在編寫腳本時隨時調(diào)用。如果需求發(fā)生變化,只需要修改這些公用對象的屬性即可,而不需要修改太多的測試腳本。而要做到這一點,就要求我們構(gòu)建對象庫,并建立實體對象和邏輯對象之間的映射。

      2)公用的方法。公用的方法比較多,相當于腳本的基礎(chǔ)函數(shù),可以構(gòu)成基礎(chǔ)函數(shù)庫,供上層腳本調(diào)用。

    3)公用的環(huán)境或數(shù)據(jù)。許多測試用例會在相同的測試環(huán)境上運行或使用相同的測試數(shù)據(jù),可將不同的測試環(huán)境或數(shù)據(jù)封裝起來,和測試用例進行靈活的組合,以增強腳本執(zhí)行的靈活性,并覆蓋更廣的測試范圍,降低測試風(fēng)險。

      自動化測試框架應(yīng)支持腳本錄制、腳本開發(fā)、測試用例和測試套件的創(chuàng)建和執(zhí)行、遠程控制、分布式通信等功能,才能基本滿足測試自動化的需要。自動化測試框架還需要支持單元測試并與開發(fā)環(huán)境集成,如將集成開發(fā)環(huán)境Eclipse、軟件配置管理工具CVS/SubVersion 和軟件包構(gòu)建工具Ant/Maven等集成到這個框架中,以支持每日構(gòu)建和自動驗證測試。

      如果自動化測試框架能管理測試項目、安排任務(wù),將產(chǎn)品用戶需求和測試需求很好地結(jié)合起來,那么測試目標更明確,測試的效率會得到進一步提高。測試結(jié)果的分析也是很重要的,一般要求在自動化測試框架中得到解決。最重要的是易用,將各個工具集成起來,并能使這些工具更好地發(fā)揮作用。例如,openqa.org 社區(qū)提供了一個工具Bromine,它集成了Selenium Core/RC,非常容易跟蹤和管理測試項目、需求、測試計劃、測試用例和缺陷,可以監(jiān)控缺陷的提交,將缺陷分派給相應(yīng)的開發(fā)人員來瀏覽和分析測試結(jié)果。

      一個理想的自動化測試框架能解決上述問題,提供一個分布式的通信平臺、友好的人機交互界面和開放式架構(gòu),將自動化測試中所需要的各個關(guān)鍵部分有機地集成起來,形成一個為自動化測試服務(wù)的、完整的、層次清楚的開發(fā)平臺和運行環(huán)境,如圖2-8 所示,其中各主要部分的功能如下。

    圖2-8 自動化測試框架示意圖

      1)綜合管理平臺:可以將自動化測試中所有的工作內(nèi)容管理起來,相當于一個統(tǒng)一的入口(Portal),可以瀏覽每部分的內(nèi)容。

      2)基于業(yè)務(wù)驅(qū)動的腳本集成開發(fā)環(huán)境:可便于構(gòu)造關(guān)鍵字驅(qū)動的腳本,為此要建立軟件系統(tǒng)的對象庫,并將這些對象映射為腳本中的邏輯對象,以減少軟件需求變化對腳本的影響。這個集成開發(fā)環(huán)境還包括腳本錄制、編輯等功能,并能和CVS、Ant 等工具集成。其中庫函數(shù)可以看做是關(guān)鍵字列表和關(guān)鍵字實現(xiàn),而對象映射可以看做是由對象庫和映射關(guān)系構(gòu)成的。

      3)安排(Schedule)測試任務(wù):使任務(wù)可以定時啟動,自帶執(zhí)行測試任務(wù)。

      4)監(jiān)控測試資源:在測試過程中,能夠及時發(fā)現(xiàn)問題,發(fā)出警告,并保留(記錄)相關(guān)數(shù)據(jù)。

      5)控制中心(控制器):驅(qū)動測試工具,可以調(diào)用測試任務(wù),并將測試任務(wù)、測試腳本等分發(fā)給遠程機器。

      6)遠程機器執(zhí)行測試任務(wù):通過代理實現(xiàn),而代理由控制中心來控制。

    相關(guān)鏈接:

    posted on 2012-06-05 10:11 順其自然EVO 閱讀(789) 評論(0)  編輯  收藏 所屬分類: qtpselenium and watir webdrivers 自動化測試學(xué)習(xí)

    <2012年6月>
    272829303112
    3456789
    10111213141516
    17181920212223
    24252627282930
    1234567

    導(dǎo)航

    統(tǒng)計

    常用鏈接

    留言簿(55)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 日韩a级无码免费视频| 88av免费观看| 亚洲av无码不卡| 国产91免费视频| 老司机精品视频免费| 国产亚洲福利精品一区| 久久久久久久91精品免费观看| 亚洲av无码日韩av无码网站冲| 国产亚洲?V无码?V男人的天堂| 亚洲成人免费网站| 噜噜综合亚洲AV中文无码| 亚洲熟女少妇一区二区| 成人男女网18免费视频| 香蕉免费在线视频| 亚洲综合色丁香婷婷六月图片| 国产成人亚洲综合无码| 桃子视频在线观看高清免费完整| 免费播放美女一级毛片| 老司机亚洲精品影院无码| 免费观看日本污污ww网站一区| 久久国产精品成人片免费| 黄网站色视频免费看无下截| 亚洲国产成人精品青青草原| 久久久精品国产亚洲成人满18免费网站| 91人成网站色www免费下载| 香蕉国产在线观看免费| 33333在线亚洲| 久久99国产亚洲高清观看首页| 大学生一级特黄的免费大片视频| 久久这里只精品99re免费| 亚洲Av无码国产一区二区| 亚洲黄色中文字幕| 亚洲色偷偷偷鲁综合| 免费在线观看毛片| 毛片免费视频播放| 99爱视频99爱在线观看免费 | 三级黄色片免费看| 久久水蜜桃亚洲AV无码精品 | 在线亚洲精品视频| 国产亚洲中文日本不卡二区| 麻豆亚洲AV永久无码精品久久|