测试简介

Java 测试入门

Maria Milusheva

Senior Software Engineer

什么是测试?

软件测试:

  • 评估软件是否满足既定需求的过程

测试类型:

  • 手工——必要但受限且不太可靠
  • 自动化——可在数秒内运行数百个测试与检查的强大方式

我们将使用 JUnit 5 进行自动化测试

程序员插画

Java 测试入门

边界情况

"未测即坏。"$^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 测试入门

示例:阿丽亚娜 5 发射

1996 年阿丽亚娜 5 号火箭首次发射:

  • 开发超过 8 年
  • 花费逾 3.7 亿美元
  • 发射后 37 秒爆炸
  • 原因是软件错误:short 溢出

欧洲航天局阿丽亚娜 5 号火箭发射。

Java 测试入门

测试的益处

  • 防范边界情况缺陷
  • 加深对项目及其需求的理解
  • 长期加速开发
  • 自动化地执行需求
  • 防止人为错误

light_bulb.jpg

1 https://books.google.com/books/about/Clean_Architecture.html?id=8ngAkAEACAAJ
Java 测试入门

Let's practice!

Java 测试入门

Preparing Video For Download...