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

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

  • <strong id="5koa6"></strong>
  • 自動化測試的分層結構

    發表于:2011-01-27來源:作者:點擊數: 標簽:
    自動化測試的分層結構 軟件測試 摘要 在測試自動化中,測試代碼中不僅僅包含測試邏輯,還包含許多其他代碼,比如URL拼接、html/xml解析、訪問UI控件,等等。若把測試邏輯與這些無關代碼混在一起,測試邏輯將會很難理解,也不容易維護。本文會介紹如何用分層

      自動化測試的分層結構   軟件測試

      摘要

      在測試自動化中,測試代碼中不僅僅包含測試邏輯,還包含許多其他代碼,比如URL拼接、html/xml解析、訪問UI控件,等等。若把測試邏輯與這些無關代碼混在一起,測試邏輯將會很難理解,也不容易維護。本文會介紹如何用分層結構來解決測試自動化中遇到的這些問題。在這個分層結構中,測試自動化代碼會被分成三層:(1)測試用例層,表達應用程序的測試邏輯。(2)領域層,用業務領域術語來給待測系統建模,封裝HTTP請求、瀏覽器控制、結果解析邏輯等,給測試用例層提供一個接口。(3)待測系統層,第2層構建在這一層之上。

      問題

      QA的工作包括設計測試用例、探索性測試(exploratory testing)及回歸測試,等等。這些工作有的依靠QA的聰明才智, 而有的卻只是重復勞動(例如回歸測試)。隨著系統中不斷地加入新功能,回歸測試這類工作耗費的時間也越來越多。

      測試自動化可以解決這個問題。測試自動化后,重復性的勞動會由計算機來做,而測試用例都用計算機程序來表述, 因此QA可以從重復勞動中解脫出來,有更多的時間用在創造性的工作上來。

      在測試自動化中,測試代碼并不僅僅包含測試邏輯,也包含許多其他的支撐代碼,例如URL拼接、HTML/XML解析、UI控件訪問等。 例如要測試一個能接受不同搜索參數,并返回包含特定信息的XML(例如用戶數據)的web服務,測試代碼需要:

      1. 根據待測操作拼接URL

      2. 使用HTTP庫發起HTTP請求

      3. 讀取web服務器返回的信息,并解析數據

      4. 對比返回的數據與期望數據

      解決方法

      軟件開發領域曾遇到過同樣的問題,并找到了解決方法,即‘層次結構’(Layered Architecture)。引用《領域驅動設計--軟件核心復雜性應對之道》('Domain-driven design: tackling complexity in the heart of software')一書:

      “分層結構的價值在于每一層只關注于程序的特定方面。這使得每個方面的設計都很緊湊,也更容易理解。當然,使用層次結構的最重要原因是把各個重要的方面都分隔開?!?/P>

      雖然測試自動化領域關注的是測試領域,但是所遇到的問題的本質卻是一樣的,因此可以應用相似的解決方案

      測試用例層包含許多測試用例。這些測試用例都是基于領域層的。領域層用領域語言封裝了待測系統。

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品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>