測試入門

Java 測試入門

Maria Milusheva

Senior Software Engineer

什麼是測試?

軟體測試:

  • 評估軟體是否符合既定需求的流程

測試方式:

  • 手動——必要但受限,且較不可靠
  • 自動——可在數秒內執行上百個測試與檢查的強大方法

我們將使用 JUnit 5 進行自動化測試

程式設計師的圖示

Java 測試入門

邊界情況

「If it's not tested, it's broken.」$^1$

邊界情況(edge case)——位於典型或預期範圍極端或邊界的輸入或條件

範例:變數達到最大容量、null 或空值、負數

象徵測試的圖示

1 語錄原作者:Bruce Eckel
Java 測試入門

邊界情況下的非預期行為範例

請看以下程式碼:

public int addTwoNumbers(int a, int b) {
    return a + b;
}

⚠ 思考輸入 2147483647(int 最大值)與 1

➡ 輸出為 -2147483648(int 最小值)

Java 測試入門

回顧:變數大小——基本型別有容量上限

基本型別摘要表——byte、short、int、long、float、double、char、boolean

Java 測試入門

範例:Ariane 5 發射

1996 年 Ariane 5 火箭首飛:

  • 研發超過 8 年
  • 成本超過 $370 million
  • 發射後 37 秒爆炸
  • 原因為軟體錯誤:short 溢位

歐洲太空總署的 Ariane 5 火箭發射。

Java 測試入門

測試的好處

  • 防範邊界情況的錯誤
  • 強化你對專案與需求的理解
  • 長期加速開發
  • 自動化要求的落實
  • 降低人為失誤

light_bulb.jpg

1 https://books.google.com/books/about/Clean_Architecture.html?id=8ngAkAEACAAJ
Java 測試入門

一起來練習吧!

Java 測試入門

Preparing Video For Download...