iT邦幫忙

2023 iThome 鐵人賽

DAY 1
0
自我挑戰組

Unit Test 學習路系列 第 1

Day 0 : 我該從哪裡開始學習 Unit Test

  • 分享至 

  • xImage
  •  

今天的文章是啟程,所以想簡單分享:

  • Q: 為什麼我想學 Unit Test?
  • Q: 30 天 挑戰賽,怎麼學 Unit Test?

Q: 為什麼我想學 Unit Test?

  1. 想為自己寫的程式碼負責(調整我撰寫程式碼的習慣)
  2. 想參與大一點的多人協作專案(想寫出好擴充、降低維護成本的程式碼品質)

我在一人前端公司寫了幾年的程式碼,寫著寫著,一開始沒人管我的程式碼感覺心情很自由,但總是不知道自己寫的品質到底如何。所以,我開始加入 Eslint, Prettier 等檢查套件管理我的程式碼風格,參考AngularJS commit message format去統一我的 git commit 寫法。但這樣足夠了嗎?

想學Unit Test的契機,是在維護舊有專案時,與主管討論方案總是圍繞著:「不確定以前為何這樣寫?」、「可能是改過好幾版,所以當是寫成這樣」、「以前的code不要大改,不然改這個,壞那個,到時會被電爆」。
其實我蠻能夠理解最後維持舊程式碼,從現實角度來看,是最符合經濟效益的選項。但公司的專案已經進行十多年,以前技術提供的解決方法,可能不適合現今更新技術版本飛快的世代了!

這也是我為何想把Unit Test練起來,我把我預期的Output結果做測試紀錄,為自己寫的程式碼負責,未來想翻修程式碼,在不影響線上舊專案的情況下,安全的為舊專案翻新一面牆。

額外一點,我也想參與多人協作專案,Unit Test學習過程,勢必會經過一番重構,算是重新回頭檢視自己的程式碼品質,自己釘自己,總比被同事討厭好吧/images/emoticon/emoticon32.gif

Q: 30 天 挑戰賽,怎麼學 Unit Test?

我的 Unit Test 能力表:Unit Test 知識 0,實作 0。
為了快速抓到學習進度,我請 ChatGPT 幫我擬了一份 30 天學習大補帖,我修改如下:

第 1-5 天:測試基礎知識
Day 1: 介紹測試的基本概念和好處。
Day 2-3: 學習單元測試和集成測試的區別。
Day 4-5: 學習 TDD(測試驅動開發)的基本原則和流程。

第 6-10 天:前端測試
Day 6-7: 選擇前端測試框架:Jest。
Day 8-10: 撰寫和運行前端單元測試,使用 React 測試。

第 11-15 天:前端實戰測試 (學完知識後再安排)
Day 11-12: 
Day 13-15: 

第 16-20 天:後端測試
Day 11-12: 選擇後端測試框架:Mocha。
Day 13-15: 撰寫和運行後端 API 的單元測試和集成測試,使用 Express 框架。

第 16-20 天:後端實戰測試 (學完知識後再安排)
Day 16-18: 
Day 19-20: 

第 21-25 天:自動化測試
Day 21-23:  學習如何自動化測試過程,使用測試套件、持續集成工具,如 Travis CI 或 GitHub Actions。
Day 24-25: 運行自動化 UI 測試,使用工具如 Cypress 或 Selenium。

第 26-30 天:自動化實戰測試 (學完知識後再安排)
Day 26-27: 
Day 28-29: 
Day 30: 寫一篇總結文章,分享您的測試學習經驗,提供一些測試在項目中的實際應用案例。


如果有時間的額外:
特殊測試場景
- 學習如何進行性能測試,使用工具如 Apache JMeter 或 K6。
- 學習如何進行安全測試,包括漏洞測試和 OWASP 測試。
- 學習如何進行跨瀏覽器測試,使用工具如 BrowserStack 或 Sauce Labs。

整個架構看起來好多未知數技能啊!
但每次進入新的領域不就是這樣嘛!
邊做邊學,邊做調整/images/emoticon/emoticon49.gif


下一篇
Day 1: 測試的基本概念和好處。
系列文
Unit Test 學習路31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言