身為一個 Coder 一定會希望自己交付出去的程式都是運作正常的。其實說這是門藝術也是合理,如果寫出來的東西被許多人使用,能夠幫助到許多人,
我想成就感一定滿滿。
好,那問題是你怎麼知道自己交付出去的程式正常呢?傻瓜,我有測過阿。對,你說你測過,然後 QA 一玩就壞掉,然後你就被歐飛了,哈哈。
其實手測的確是重要的一環,而且我覺得 RD 的基本素養就是你交付之前至少要自己手測過。不要以為寫完有跑測試就不會錯,要知道測例也是你自己想出來的 case 才會跑。我記得我的前輩對我說過一句,寫程式這東西就是常常讓你想不到,所謂的 bug 跟預期不一樣的東西。
一個優秀的 RD 一定同時具備良好的溝通跟協調能力。畢竟我們時常需要跟各部門協作,以測試這件事來講就是對上 QA。在交付給他們之前多為他們著想,自己先動手玩一玩,對自己負責,也對整個團隊負責。
下面就來講一下我自己平常會經歷的一些測試。
單元測試,測的是一個類別,一個方法,最基本的測試單位。如果有外在的一些關連,通常會用 Mock 的方式模擬外在互動。
元件測試,測的是多個單元,通常代表業務流程中的一個步驟的測試。
整合測試,針對多個元件一起做測試,通常代表的是一個業務流程的測試。
系統測試,針對系統功能進行測試及驗證,如果以後端來說就是用你暴露出去的 API 端點進行測試。例如用 Postman 或是一些測試框架。
壓力測試,使用像是 JMeter 這樣的軟體進行測試,假設是一個有 HTTP 接口的後端系統,就可以透過這類軟體進行大量請求的模擬並取得報表及結果。
安全測試,例如跑個弱點掃描,用一些專業的安全測試軟體檢測出漏洞產生報表回頭讓 RD 進行修正。
終端點對點測試,就是直接從 UI 層去模擬使用者的行為進行測試,以 Selenium 就是真的開一個瀏覽器核心出來並且模擬使用者互動。然後可編程的特性讓他也可以進行高難度的網頁爬蟲,這個我們在後面的其中一天也會介紹到。
About Me
Jian-Min Huang
wide range skill set backend engineer
Research, Architecture, Coding, DB, Ops, Infra.
mainly write Java but also ❤️ Scala, Kotlin and Go