鐵人賽 自己測自己,別人不管你 - Jian-Min-Huang/tech-note GitHub Wiki
前言
身為一個 Coder 一定會希望自己交付出去的程式都是運作正常的。其實說這是門藝術也是合理,如果寫出來的東西被許多人使用,能夠幫助到許多人, 我想成就感一定滿滿。
好,那問題是你怎麼知道自己交付出去的程式正常呢?傻瓜,我有測過阿。對,你說你測過,然後 QA 一玩就壞掉,然後你就被歐飛了,哈哈。
其實手測的確是重要的一環,而且我覺得 RD 的基本素養就是你交付之前至少要自己手測過。不要以為寫完有跑測試就不會錯,要知道測例也是你自己想出來的 case 才會跑。我記得我的前輩對我說過一句,寫程式這東西就是常常讓你想不到,所謂的 bug 跟預期不一樣的東西。
一個優秀的 RD 一定同時具備良好的溝通跟協調能力。畢竟我們時常需要跟各部門協作,以測試這件事來講就是對上 QA。在交付給他們之前多為他們著想,自己先動手玩一玩,對自己負責,也對整個團隊負責。
下面就來講一下我自己平常會經歷的一些測試。
各類的測試
- Unit Test
單元測試,測的是一個類別,一個方法,最基本的測試單位。如果有外在的一些關連,通常會用 Mock 的方式模擬外在互動。
- Component Test
元件測試,測的是多個單元,通常代表業務流程中的一個步驟的測試。
- Integration Test
整合測試,針對多個元件一起做測試,通常代表的是一個業務流程的測試。
- System Test
系統測試,針對系統功能進行測試及驗證,如果以後端來說就是用你暴露出去的 API 端點進行測試。例如用 Postman 或是一些測試框架。
- Pressure Test
壓力測試,使用像是 JMeter 這樣的軟體進行測試,假設是一個有 HTTP 接口的後端系統,就可以透過這類軟體進行大量請求的模擬並取得報表及結果。
- Security Test
安全測試,例如跑個弱點掃描,用一些專業的安全測試軟體檢測出漏洞產生報表回頭讓 RD 進行修正。
- End-to-End Test
終端點對點測試,就是直接從 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
http://linkedin.jianminhuang.cc
[email protected] https://swsmile.info/2018/02/23/%E3%80%90Software-Testing%E3%80%91%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95%E7%9A%84%E7%A7%8D%E7%B1%BB/