測試是甚麼?

軟體測試是一種自動化的過程,它能對code進行斷言來判定結果,進而確保codebase的不崩壞。

測試可以粗略分成以下幾種

https://static.coderbridge.com/img/tempura327/8f636de0e4fa4d268346f3922ccef970.png

  1. 單元測試(unit test):測一個獨立的module、fuction、class的邏輯
  2. 組件測試(component test)
  3. 整合測試(intergation test):測試module、fuction、class之間交互作用
  4. 功能測試(functional test)
  5. 系統測試(system test)
  6. E2E test:模擬使用者行為去操作產品,測畫面

測試前的準備工作

撰寫測試前需要先通用和抽象的要求淬煉成細節,然後寫成測試文件。

  1. 「管理員要能成功登入後台網站」

  2. 淬鍊成「管理員要可以在帳號、密碼input輸入正確的帳號、密碼,點下登入後成功登入」

  3. 寫成測試文件

    https://static.coderbridge.com/img/tempura327/df1a78e33262463c9e59b9ccf073cd9f.png

測試的替身物件(test double)們

test double有5種-dummy、stub、fake、mock、spy。在測試時,SUT會是用真物件,而DOC通常會用假物件,這個假物件就是test double。