數位志工&資工系系學會-- Nodejs的單元測試&CI CD

 

「寫測試的好處是什麼?」

這個問題非常難回答。通常只能得到「只有寫了才知道」這種含糊不清的答案。

 

1. 單元測試保證你的code真的能動

2. 你會得到一組底層的regression-test suite

3. 讓你改善系統設計的時候,不怕弄壞系統

4. 寫測試會讓coding更好玩

5. 它們可靠地展現目前進度

6. 單元測試是一種使用範例

我們都碰過那種不知道怎麼用的library。通常我們會先去找範例程式碼。使用範例可算是一種文件。但公司內部的code通常不會有範例可看。所以只好慢慢試、在系統內東找西找了。因為那個同事可能根本離職了,想問他都沒辦法。單元測試可以當作一種文件。當你不知道Foo類別怎麼用,去看一下單元測試怎麼寫的即可。

7. 測試先行會強迫你寫code前先做規劃

先寫測試會逼你在動手開發前把必須完成的事和整體設計想過一遍。不但讓你更專注,還能讓設計更漂亮。

8. 先寫測試能減少bug的成本

越早發現bug越容易修。之後出現的bug通常是改了好幾個地方才出現的,
導致很難抓出哪裡導致了bug。一開始先找出bug在哪,然後要重新回想這段code是怎麼寫的,因為可能是幾個月前寫的。最後才終於弄懂,搞出一套解法。只要能減少抓bug以及修好bug的時間,幾乎都算大賺。如果在成品交給品管部門或是顧客之前,我們只花幾天就找出bug,通常算是很幸運。那幾花幾分鐘就找出bug呢?測試先行就能做到這點。

9. 它比代碼檢查的效果好

有人說事前代碼檢查比事後測試系統更好,因為成本比較低。在系統完成之後才測試系統,要修好bug可說是麻煩多了。越早發現bug,就越簡單、越便宜、越好搞定。代碼檢查的好處就在這:只花幾天就能抓出bug,不需要等幾個月。但是測試先行成本更低。只要幾分鐘就抓出bug,連幾天都不用。

10. 幾乎解決了「開發者瓶頸」(coder’s block)

不知道下一行寫什麼嗎?就跟「作家瓶頸」(writer’s block)一樣,開發者瓶頸很可能是個大問題。測試先行有系統地處理開發上關於結構的部份,讓你能專心在需要創造的部份。你可能會卡在下段code不知道怎麼測、該怎麼通過測試,但你永遠不會因為下一步卡住。通常會有完全相反的結果:你很想在累倒之前休息一下,但因為清楚看到前面的錄了,所以根本不想停下來。

11. 單元測試讓設計更棒

測試一小塊code會強迫你定義清楚那段code負責什麼。如果測起來很簡單,就表示它的責任很明確,cohesion很高。如果一段code能被單元測試,那就表示它很容易就能放進系統之中,就跟它很容易放進測試之中一樣。它跟相關的code只具有loose coupling 。 High cohesion與loose coupling代表了出色、好維護的設計。容易測試的code也很容易維護。

12. 寫測試會讓開發速度更快

不寫單元測試也許會讓速度更快,但無法保證code真的能跑。開發上會花一堆時間在在事後的修bug。測試先行會消除這類的浪費,從一開始就做對、讓bug更好修。

-課程大綱-

Node.js介紹與環境安裝

Node.js單位測試介紹 程式碼涵蓋率介紹

Continuous Integration 介紹與線上服務串接

Code coverage 介紹與線上服務串接

 

講師介紹

李昀陞  Facebook / Blog / Github

 

曾任 國立交通大學 軟體開發課程 助教
畢業於 國立臺灣海洋大學資訊工程學系 碩士
畢業於 國立臺東大學資訊工程學系 學士 104級 (100~104)

SITCON 2016 行政組 工作人員


Web Techniques Taitung Day 共同創辦人
https://sitcon.kktix.cc/events/wttd-course-2015-04-12
https://sitcon.kktix.cc/events/wttd-course-2015-04-11

 

程式經驗

PHP :  2 年
JavaSrcipt : 2 年
Node.js : 2 年 
JAVA : 2 年
R : 1 年
Python : 1 年

-人數限制 : 20人

**臺東大學學生優先**

-------------------------------------------------------

我們的官網:    https://digitvolunteer.space/
我們的粉絲頁: https://www.facebook.com/nttu.information.volunteer/
 Email:              nttu_service@digitvolunteer.space
                         nttu_steam
@digitvolunteer.space
Instagram:    https://www.instagram.com/nttu.volunteer/

國立台東大學知本校區理工學院 C404 / 95092臺東市大學路二段369號

活動票券

票種 販售時間 售價
一般票

2017/12/06 00:00(+0800) ~ 2017/12/09 00:00(+0800) 結束販售
  • 免費
下一步

3 報名人

顯示報名人 隱藏報名人
...以及其他 2 人