Giới thiệu về kiểm thử

Nhập môn Kiểm thử trong Java

Maria Milusheva

Senior Software Engineer

Kiểm thử là gì?

Kiểm thử phần mềm:

  • Quá trình đánh giá phần mềm xem có đáp ứng yêu cầu đã định hay không

Kiểm thử có thể:

  • Thủ công - cần thiết nhưng hạn chế và kém tin cậy hơn
  • Tự động - mạnh mẽ, chạy hàng trăm bài kiểm trong vài giây

Chúng ta sẽ dùng JUnit 5 cho kiểm thử tự động

Đồ họa lập trình viên

Nhập môn Kiểm thử trong Java

Trường hợp biên

"Nếu không được kiểm thử, coi như hỏng."$^1$

Trường hợp biên (edge case) - đầu vào/điều kiện ở mức cực trị hoặc ranh giới của điều bình thường

Ví dụ: biến đạt giá trị tối đa, biến null hoặc rỗng, giá trị âm

Đồ họa biểu tượng kiểm thử

1 Câu trích gốc của Bruce Eckel
Nhập môn Kiểm thử trong Java

Ví dụ hành vi bất ngờ ở trường hợp biên

Xem đoạn mã sau:

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

⚠ Xét đầu vào 2147483647 (giá trị int tối đa) và 1

➡ Kết quả là -2147483648 (giá trị int tối thiểu)

Nhập môn Kiểm thử trong Java

Nhắc lại: Kích thước biến - kiểu nguyên thủy có giới hạn

Bảng tóm tắt kiểu nguyên thủy - byte, short, int, long, float, double, char và boolean

Nhập môn Kiểm thử trong Java

Ví dụ: Phóng Ariane 5

Chuyến bay đầu tiên của tên lửa Ariane 5 năm 1996:

  • Phát triển hơn 8 năm
  • Tốn hơn 370 triệu đô
  • Nổ sau 37 giây phóng
  • Do lỗi phần mềm: tràn kiểu short

Tên lửa Ariane 5 của Cơ quan Vũ trụ Châu Âu đang phóng.

Nhập môn Kiểm thử trong Java

Lợi ích của kiểm thử

  • Ngăn lỗi ở các trường hợp biên
  • Hiểu dự án và yêu cầu rõ hơn
  • Tăng tốc phát triển về lâu dài
  • Tự động hóa việc áp dụng yêu cầu
  • Giảm lỗi do con người

light_bulb.jpg

1 https://books.google.com/books/about/Clean_Architecture.html?id=8ngAkAEACAAJ
Nhập môn Kiểm thử trong Java

Hãy thực hành!

Nhập môn Kiểm thử trong Java

Preparing Video For Download...