[課程規劃] TDD.NET 測試驅動開發與自動化測試

***
這是在資策會數位教育研究所開設的 TDD.NET 課程 (最近一期於 04/27 開課,4/12前報名即享早鳥優惠)。爾後關於單元性 (以2~3天課程)的課程,我們團隊均是透過該單位開設。

後續關於資策會的軟體設計單元性課程,我們也一併會公佈在 FB 社團:軟體設計鮮思維

***

有別於 TDD for Java 課程,我們把現今很熱門的 Mock 測試機制納入,以引導學員理解如何建立可隔離於外部環境對程式邏輯、資料庫數據等影響。 (但因課程時數限制,TDD.NET 無法談及壓力/效能測試。該範疇仍於 TDD for Java 課程內。)

關於本課程的主要目的:

  • 瞭解TDD的精髓與撰寫原則。
  • 區別幾個主要的測試類型與作法-整合 (含UI)、功能驗收/單元。
  • 釐清開發人員與QA單位各自關於測試的職掌與相關技能。
  • 撰寫高品質的測試案例 (test case)並橋接實作的自動化測試 (automation test)。
  • 使用Mock的技術,隔離測試所造成對環境的影響,讓測試可以更富彈性。
  • 運用開源的開發工具與測試框架 (framework),大幅降低測試的成本與提升軟體的品質。

關於本課程的介紹:

TDD (Test-Driven Development),測試先行的觀念已逐漸被軟體開發單位接受。但如何達成自動化的測試?要測試的是哪一類型程式?如何撰寫測試測試 …等,一般開發人員甚或 QA 單位仍顯模糊。

對於 Developer 而言,利用如 .NET Unit 測試框架,撰寫以類別為單位的功能性與單元性的測試程式,是確保需求功能的正確性。

而為了達成驗收交付的目的,圖形界面操作的自動化測試,在高精確度驗收與大型的專案中仍是需要的。所以在本次課程中,我們也會介紹如何利用 GUI 的測試框架,包括在 Web UI 環境中,來達成 Web表單、輸入數據等自動化操作。

同時課程也整合了從 GUI 的自動化操作到連結後端系統的功能性物件的整合性測試 (integration test),一氣呵成,全部自動化,花一次工即可。

課程內容同時也說明了,對於自動化測試的環境建置,以及如何利用現今通用流行的 Mock,來隔離測試所造成對環境的影響,讓測試可以更靈活可行。

TDD.NET 課程大綱

測試概觀介紹
  • 測試的種類與軟體品質:
    • 功能性(functional) /單元性(Unit)測試
    • UI 自動化操作測試
    • 整合性測試 (整合 UI/單元 測試)
    • 測試人員的角色界定與職掌
  • 基於 TDD 測試驅動的要點:
    • 驗證系統功能的正確性
    • 簡單設計/隨時重構 (re-factoring)
    • 測試環境的建置
撰寫測試案例與整理測試數據
  • 整理功能需求陳述
  • 撰寫測試案例情節 (test scenario)
  • 整理測試數據-輸入與期望值
  • 利用 UML 工具產出高品質的測試文件
單元測試 (unit test)-
撰寫功能/單元測試程式碼 (C#.NET)
  • 簡單設計-實作 POCO (plain-old CLR object)的功能/單元類別
  • 利用 VS.NET 內建測試框架 (test framework)建立測試類別骨架 (test class skeleton)
  • 依據測試情節與數據實作測試類別:
    • 同時撰寫與維護單元類別及測試類別
    • 對程式碼作重構-馬上跑測試程式
  • 工具說明與應用:
    • MS.NET Test Framework 基本語法說明與範例
    • 利用 Test Runner 執行所有自動化測試程式
    • Daily build-使用 Git 版控建置與整合單元/測試程式碼
測試環境建置-使用 Mock Framework
  • 探討Mock, Stub與Fake的異同
  • 使用Stub Pattern的時機:
    • PrincipalStub – 如何模擬使用者的登入
    • DabaseStub – 如何隔絕資料庫的影響
    • HostMachineStub – 如何分隔外部系統對於邏輯的影響
  • 使用Mock取代Stub:
    • Mock Framework的使用
    • 使用動態Mock取代靜態Stub
  • 探討Isolation Testing與Integration Testing
撰寫UI自動化操作測試程式碼 (C#.NET)
  • UI Testing 的原理與背景介紹
  • Selenium的IDE 介紹:
    • API說明與用法
    • WebDriver, By, WebElement, Alert, Actions與WebDriverWait
  • 設計可以執行後端服務的 ASP.NET Web MVC 表單
  • 撰寫 selenium 自動化執行程序
  • 整合 Unit Test與 selenium,達成從 UI 至後端控制物件的自動化測試

文章導覽

   

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *