【針對遺留代碼加入單元測試的藝術】202101 - 台北

【課程涵蓋範圍包含下列主題】

辨識依賴、隔絕依賴、依賴注入、擷取與覆寫、stub/mock 差異與使用場景、單元測試三種驗證方式、相依靜態方法的單元測試、父類依賴的測試、委派與事件的測試、測試程式重構與設計

報名這裡去➟【202101 針對遺留代碼加入單元測試的藝術 報名表單

上課資訊

2021/1/9 (六),共 1 天。(暫訂)

※ 表定上課時間:09:00~17:00

上課地點:台北市大安區金華街199巷5號 淡江大學台北校區 D507 教室

課程簡介

單元測試是開發軟體產品過程中,與品質、設計相關最重要的基本工程實踐,如果不會單元測試,很多重構無從下手。如果不會單元測試,無法駕馭測試驅動開發。

單元測試不是能動就好,怎麼寫出好的單元測試,才是實務中的王道。讓你的測試程式不再只是在代碼層次,而是像有人在跟你敘述需求情境一樣。讓需求異動時,你的測試維護成本降到最低。讓你每次新增測試案例的時候,能用最快的速度加入一個新的情境。

單元測試不會只有簡單的驗證數字、日期、布林值,實務上敘述的是 requirement,驗證的是物件、集合和情境結果。實務上面對的永遠是龐大複雜且盤根錯節的 legacy code,這門課將透過許多實際的案例讓你親自動手,為這些擁有大量 dependency 的 legacy code,加上巧妙的 isolated unit test。

課程涵蓋範圍包含下列主題:

辨識依賴、隔絕依賴、依賴注入、擷取與覆寫、stub/mock 差異與使用場景、單元測試三種驗證方式、相依靜態方法的單元測試、父類依賴的測試、委派與事件的測試、測試程式重構與設計

  • 這門課目前支援程式語言為 C#, php, java/kotlin, python,課程會同時提供上述語言的 workshop 題目與解答。示範的部份,會盡可能以最多人用的語言來呈現。
  • 此次課程不會使用投影片,沒有講義,會建立 slack 討論頻道,課前、課中、課後提供雙向的交流、發問回答與課程內容補充。
  • 主辦單位保留因應學員能力調整課程內容之權利
  • 主辦單位擁有是否接受學員報名之權利

這門課適合誰

  1. 實務已經有許多痛點經驗、被遺留代碼摧殘過,怕改 A 壞 B 的工程師
  2. 開發團隊的 leader、還在動手寫 code 的技術主管
  3. 想把寫單元測試提升到藝術層次,提高自己設計能力的開發人員
  4. 看了《單元測試的藝術》但仍有許多疑惑的同學

※ 這門課會有多個 hands-on 的單元測試 workshop,一整天都透過實戰演練來學習單元測試相關知識和技能,只想輕鬆聽課作筆記、拿簡報、講義回去交差的同學,不建議來上這門課。

※ 如您不想動手寫程式,這門課也不適合您。

測試應有的模樣

測試是用來描述需求情境的,是物件的使用說明書,是程式開發的可執行規格。測試程式應該重構到,只剩下關鍵的資訊,必要的資訊,一點不多,一點不少地表達情境與意圖。

【上圖為 C# + NUnit 的範例】

【上圖為 Java + JUnit 範例】

【上圖為 PHP + PhpUnit 範例】

【上圖為 Kotlin 範例】

【上圖為 Python 範例】

因為需求與情境是一致的,因此可以看到上面四種不同語言,所撰寫的測試案例,表達意圖上幾乎一模一樣。

上課也會練習與重視重構測試,可參考影片範例

講師簡介

Joey Chen,江湖上人稱 91,是敏捷開發的狂熱者與傳教士,目前為 Odd-e 台灣團隊的負責人,同時擔任敏捷教練與培訓師的角色。過去曾有多年外商大型交易系統的實戰經驗,輔導許多開發團隊敏捷轉型的成功經驗(一開始也有累積不少很有價值的失敗經驗),導入許多極限編程的工程實踐,例如單元測試、持續重構、測試驅動開發、驗收測試與行為驅動開發、持續整合、自動化生成文件、pair programming 與 code review 的實踐。

同時也是技術社群的活躍份子,從 2010 年開始連任八屆的微軟 MVP,兼任 MSDN 論壇板主,也曾經獲得年度 MSDN 文件庫刊登數量世界第一的榮耀。對微軟技術有愛,對 C# 有愛,對自動測試有愛,對重構與設計模式有愛。

擁有超過十年擔任開發團隊 tech leader, trainer, coach 與 mentor 的經驗,進行的企業內部與公開技術培訓課程已超過 100 場,培訓過的開發人員超過 1000 位,擔任研討會與社群活動的講師次數超過 30 次。

同時也是技術書籍的作者與譯者,與朋友合著的書籍包含《ASP.NET MVC 5:網站開發美學》、《ASP.NET MVC 4 網站開發美學》,翻譯的書籍有《單元測試的藝術-第二版》、《敏捷開發實踐》、《進入IT產業必讀的200個 .NET面試決勝題》,同時也在技術 blog 與 Facebook 粉絲頁擁有不少訂閱的粉絲群。

票價(含稅,新台幣)

  • 一般票:12,000/per seat
  • 早鳥票(4位):11,000/per seat
  • 團體票(3人成團):11,000/per seat
  • Odd-e 之友情票:10,000/per seat
    • 限已報名過 91 在 2018 年之後培訓課的學員

報名可直接填寫 google form 表單,我將從後台替您報名。

填完報名資訊後,我會依據您的報名資格,mail 相關匯款資訊給您。

※ 如您無法參加課程,可以轉讓您的報名資格給其他友人,只須來信更新報名資訊即可。

※ 取消報名之退費方式:因部分必要支出與行政費用,完成繳費後如取消報名,將依據時間遞減退還費用。

  • 活動前7天申請退費,退費用 0 %。
  • 活動前8天申請退費,退費用 90 %。
  • 如換人上課,請來信告知。

過去學員心得參考

 

blog 與課程更新內容,請前往新站位置:http://tdd.best/