iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 18
0

為何寫測試

基本上就是確認自己寫的東西是對的

如果你只寫Hello world!可能可以手動測試

但如果你寫的東西已經達到一定規模

就只能靠自動測試了

如果測試有涵蓋到該有的範圍

在你新增修改功能或者重構的時候都可以做驗證

只要測試有過就不怕你把之前的程式搞壞掉

當然大前提就是測試要有覆蓋到會出問題的地方

所以新功能越寫越多測試也會越寫越多

有的人會說開發新功能結果大多時間都在寫測試

單元測試

電腦編程中,單元測試(英語:Unit Testing)又稱為模組測試, 是針對程式模組軟體設計的最小單位)來進行正確性檢驗的測試工作。程式單元是應用的最小可測試部件。在程序化編程中,一個單元就是單個程式、函式、過程等;對於物件導向編程,最小單元就是方法,包括基礎類別(超類)、抽象類、或者衍生類別(子類別)中的方法。

https://zh.wikipedia.org/wiki/%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95

這些觀念其實網路上都有很多資源可以查的到,在這裡只是提供關鍵字

參考裡面這麼寫 我只好學習一下了XDDD

https://hungyanbin.gitbooks.io/android-unit-test/content/chapter1.html

3A 原則

  • Arrange : 初始化
  • Act : 執行測試動作
  • Assert : 驗證

FIRST

  • Fast : 快速驗證
  • Independent : 測試之間不會有相依關係
  • Repeatable : 每次執行的測試都是會是一樣的
  • Self-Validating : 能自我驗證
  • Timely : 測試碼要比production code 早完成

TDD

測試驅動開發(Test-Driven Development,簡稱 TDD)是一種程式開發的技巧,簡單來說就是先寫測試程式,然後才實作功能。具體的流程則是透過 Red–Green–Refactor cycle 的循環:

  1. Red – 先寫測試程式,此時因為還沒有實作功能,所以這個測試是會失敗
  2. Green – 快速實作出功能,讓上述的測試通過
  3. Refactor – 重構程式碼,去除多餘重複的代碼,提高程式碼品質,同時維持測試通過

https://tw.alphacamp.co/2015/03/02/tdd-kata/

BDD

BDD的重點是通過與利益相關者的討論取得對預期的軟體行為的清醒認識。它通過用自然語言書寫非程式設計師可讀的測試用例擴展了測試驅動開發方法。行為驅動開發人員使用混合了領域中統一的語言的母語語言來描述他們的代碼的目的。這讓開發者得以把精力集中在代碼應該怎麼寫,而不是技術細節上,而且也最大程度的減少了將代碼編寫者的技術語言與商業客戶、用戶、利益相關者、專案管理者等的領域語言之間來回翻譯的代價。

https://zh.wikipedia.org/wiki/%E8%A1%8C%E4%B8%BA%E9%A9%B1%E5%8A%A8%E5%BC%80%E5%8F%91

結語

在現在CI/CD滿天飛的狀態

基本上大型專案要不寫測試都會被懷疑穩定度吧

至少現在判斷一個套件穩不穩定就是先看他有沒有寫測試

所以慢慢習慣寫測試對以後的工作應該都是有益無害的

而TDD跟BDD就要看環境能不能配合上了

可以先理解 但是不要太強求

參考文章

http://teddy-chen-tw.blogspot.tw/2014/09/bddtdd.html

https://ithelp.ithome.com.tw/articles/10185338

https://tw.alphacamp.co/2015/03/02/tdd-kata/

https://hungyanbin.gitbooks.io/android-unit-test/content/chapter1.html

https://zh.wikipedia.org/wiki/%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95

今日分享文章

今天看的文章

https://github.com/fripig/article_log/issues/426


上一篇
Day 17 Vue
下一篇
Day 19 快取(cache)
系列文
每日文章推薦30

1 則留言

0
張少齊
iT邦新手 5 級 ‧ 2017-12-21 22:35:04

想知道如何實作TDD可以來我這裡逛逛,我正在挑戰連續30天練習TDD XDDD

我要留言

立即登入留言