l

2017年3月8日 星期三

【工商服務】 單元測試這樣學就會了實作班

March 07 13:37~14:06

IMG_5419

 

單元測試這樣學就會了實作班」的前身是「單元測試與持續整合實作班」,隨著敏捷開發在台灣日益普及,對於單元測試的需求也日益增加。把「單元測試」課程從「持續整合」獨立出來希望可以有更多的時間把「單元測試」介紹得更完整。

***

開發人員對於軟體開發這件工作內容的本質,有不同的認知。簡單的說,可以分成三大類。

  • 第一類,軟體開發就是寫production code:越資深的工程師,在他們當年學習軟體開發的時代,哪有什麼自動化單元測試這種事情。軟體開發就等於「寫程式」(或是包含畫一堆UML diagrams)。「測試」這件事情,是很低階的工作,不可以髒了程式設計師的手。丟給工讀生、專案經理、測試工程師,或是「客戶」來做就好了。
  • 第二類,軟體開發就是coding—>testing—>refactoring(或是testing—>coding—>refactoring)的循環自從敏捷方法流行以來,越來越多的開發人員相信,軟體開發活動,不僅僅是包含寫production code,單元測試與重構都是軟體開發活動「不可分割的一部分」。
  • 第三類,軟體開發就是維護既有系統(Legacy System):手邊有數個前人開發的系統需要維護,當需要新增功能或錯誤發生的時候很頭大,不知如何改起,也不敢隨便改,因為改一個bug可能贈送三個新的bug。

單元測試這樣學就會了實作班」這門課主要目標:

  • 幫助第一類的人洗腦,讓他們相信、願意且具備在工作中嘗試寫單元測試的能力。
  • 對於第二類的人,除了進一步地提升撰寫單元測試的能力以外,同時透過課堂實作體驗測試驅動開發方法與傳統物件導向設計的差異,更深刻理解測試驅動開發在敏捷與精實軟體開發方法中對於減少浪費、加速回饋的優點。
  • 對於第三類的朋友,在具備以上兩種能力之後,可以更有信心、更穩健的維護既有系統。

***

課程大綱如下,和舊課程相比約有60%屬於新的內容。

  • Part 1 單元測試基礎
    • 軟體測試的 V Model 與 W Model。
    • 系統測試、整合測試、單元測試的差別。
    • 單元測試的基本概念。
    • 測試涵蓋率實作。
    • 單元測試技巧。
    • 測試案例的命名技巧與管理方法。
    • 提高可測試性(Testability)的方法。
  • Part 2 測試模式(Test Patterns)
    • 五種測試替身(Test Double)介紹與實作。
    • 測試資料(Test Fixture)管理模式。
    • 讓你的單元測試更穩定。
  • Part 3 測試與開發流程
    • 測試在敏捷開發扮演的角色。
    • 測試驅動開發(TDD)快速入門。
    • 既存系統(Legacy System)測試。
    • 實務經驗分享與情境討論。

以下為課程實錄照片。

螢幕截圖 2015-07-21 09.44.29螢幕截圖 2015-07-21 09.41.49螢幕截圖 2015-07-21 09.42.28螢幕截圖 2015-07-21 09.46.47螢幕截圖 2015-07-21 09.47.25螢幕截圖 2015-07-21 09.48.06螢幕截圖 2015-07-21 09.48.22螢幕截圖 2016-04-12 21.54.47螢幕截圖 2016-04-12 21.57.02

image

***

友藏內心獨白:測試能力是軟體開發不可分割的一部分。

沒有留言:

張貼留言