• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    用 TestNG-Abbot 實現自動化 GUI 測試

    發布: 2008-4-03 17:28 | 作者: Andrew Glover | 來源: IBM | 查看: 151次 | 進入軟件測試論壇討論

    領測軟件測試網
    TestNG-Abbot 是一種測試框架,它為 GUI 組件的測試帶來了新的活力。本月,Andrew Glover 將帶領您親歷使用 TestNG-Abbot 測試 GUI 過程中難度最大的部分,即理解用戶場景的實現過程。一旦理解了它,您會發現將 GUI 組件隔離并使用框架所含的極其方便的 fixture 對象對其進行驗證是多么地簡單。

    使用 Swing、AWT 和類似的技術構建用戶界面通常會給開發人員進行測試帶來挑戰,原因如下:

    • 底層圖形框架的復雜性
    • GUI 中表現形式和業務邏輯之間的耦合
    • 缺乏直觀的自動測試框架

    當然,前兩個原因并不新鮮 —— 圖形框架本來就很復雜,而且向 GUI 應用程序添加業務功能總是會給測試造成麻煩。另一方面,過去幾年中有許多方便的框架涌現出來,確實使 GUI 測試更加便利。

    本月,我將介紹一種新的框架,它極大地減輕了 GUI 測試的痛苦。

    TestNG-Abbot 簡介

    TestNG-Abbot 源自于兩個成功的開發人員測試框架的結合:Abbot 和 TestNG。Abbot 是一種 JUnit 擴展框架,主要目的是使 GUI 組件實現編程隔離,它還提供了一種驗證 GUI 行為的簡易方法。舉例來說,可以使用它來獲取對按鈕組件的引用,使用編程的方法點擊按鈕,然后檢驗其操作。Abbot 還附帶了一個腳本記錄器,使用它就能夠以 XML 格式布設測試場景,可以通過編程的方式運行它。

    在本系列中,我已經介紹了一些關于 TestNG 的內容,這里將繼續介紹 TestNG;旧,TestNG 是 JUnit 的一個替代物。除了所有預期的功能外,它還增加了一些額外功能。正如我在其他文章中提到的一樣,TestNG 特別適合于更高層次的測試,其中,它可以用來測試依賴關系并只返回失敗了的測試 —— 簡而言之,在測試 GUI 時,這類型測試非常方便。(參見 Resources 中有關 TestNG 的更多內容。)

    它的起源就如此讓人印象深刻,所以 TestNG-Abbot 成為測試工具中的神童就沒什么好奇怪的了。同 Abbot 一樣,TestNG-Abbot 使 GUI 組件能夠進行編程隔離。同時,它使用了 TestNG 的斷言,將 GUI 操作細節提取到了簡單的 fixture 中,后者能夠公開驗證方法。如能正確使用,TestNG-Abbot 的直觀的 fixture 類能夠使 GUI 測試如同從小男孩手里偷一塊糖一樣簡單。(當然,您不會想那么干的。

    直觀的 fixture 類

    TestNG-Abbot 的當前版本支持七種 fixture 類型,其中一種類型用于操作按鈕、菜單標簽以及文本項組件,如文本字段。此外,這些 fixture 類型根據名字在邏輯上鏈接到了測試中的代碼(即 GUI 組件)。這使得 GUI 和其測試實現了松耦合,這樣做至少有以下兩個好處:

    • 測試不會依賴于特定位置的 GUI 組件 —— 這樣無需中斷測試就可對其進行移動。
    • 可以在早期進行測試,并且不會受到開發期間布局和外觀改變的影響。

    雖然目前只支持七種 fixture 類型,很快就會支持其他 fixture 類型。更多的 fixture 類型只會增加 TestNG-Abbot 在編程驗證 GUI 方面的高效性。


    GUI 驗證不再普通!

    雖然 TestNG-Abbot 使得驗證 GUI 的過程更加簡單,這并不意味著這個過程很簡單。必須使 GUI 測試區別于單元或組件測試。驗證 GUI 中業務規則的過程變成了對用戶場景進行驗證;或者,換種說法,GUI 測試包括驗證可見狀態的改變。

    比方說,如果按下了定單輸入 GUI 上的保存按鈕,業務規則會保證命令的內容被保存到數據庫中。然而,在一個用戶場景中,會保證成功的狀態信息被插入了按鈕下 —— 這正是使用 TestNG-Abbot 能夠編寫的測試。事實上,如果 GUI 設計良好的話,可以測試被保存到數據庫中的命令內容而無需 測試 GUI。接著您還可以同時并及早地編寫這兩個特別的測試。

    加油!
    記住 TestNG-Abbot 并不妨礙端對端測試(end-to-end)?梢暂p松將 TestNG-Abbot 和 DbUnit 結合在一起,比如,創建一個同時驗證用戶場景和業務規則的可重復測試。

    Word Finder GUI

    為了使您了解 TestNG-Abbot 工作原理,我創建了一個簡單的 GUI,它執行一種功能 —— 在底層字典(也就是一個數據庫)中查閱一個給定的單詞并顯示其釋義。不管該應用程序實際的代碼如何,測試該 GUI 用戶場景包括三個步驟:

    1. 在文本框中輸入一個單詞。
    2. 單擊 Find Word 按鈕。
    3. 驗證是否給出了該單詞釋義。

    當然,也存在一些極端的例子,比如一個用戶按下了 Find Word 按鈕但沒有輸入單詞,或者,用戶輸入了一個無效的單詞。我將通過一些其他的測試案例說明如何處理這類場景。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: testng TestNG

    31/3123>

    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>