Skip to main content

Luôn test ít nhất 3 case

Khi viết 1 tool hay viết code, một câu hỏi có thể nảy sinh là: test bao nhiêu trường hợp cho đủ? Câu trả lời luôn nhận được là: càng nhiều càng tốt!

a peace can

Nhưng test ít nhất là bao nhiêu? 1 2 3 4? bài viết này xin đưa ra 1 con số kèm theo lý do: 3.

Giả sử đang viết 1 tool cli kiểm tra syntax của file yaml/json. Tạm gọi là checker. checker nhận vào argument là các file cần check.

3 case chụm lại nên hòn đá to

Tại sao lại là 3? vì 3 gồm những trường hợp sau:

  • 0
  • 1

0 và 1 phân biệt giữa không và có.

  • 1
  • 2 trở lên

1 và 2 (trở lên) phân biệt giữa ít và nhiều. Tool hỗ trợ nhận 1 file đầu vào HẦU HẾT chưa chắc nhận 2 (vd: --config).

Ngoài ra, có thể thêm test case thứ 4 khi bài toán có số N là max thì hãy test N.

0 - trường hợp luôn đặc biệt

checker nhận 0 đầu vào: chương trình sẽ làm gì? fail với yêu cầu phải có đầu vào? hay test tất cả các file trong thư mục hiện tại (thường chọn cách này)

1 khác với nhiều

Trong tiếng Anh, 1 bottle không có s, nhiều bottles thì có s. Khi test các file cần thử 2 file trở lên để tránh việc:

  • checker file1 : trường hợp 1 input, chạy ok
  • checker file1 file2: chương trình có thể chi đọc vào file1 và bỏ qua file2, hoặc chỉ xử lý file2 bỏ qua file 1.
  • checker 'file1 file2': script gọi chương trình lẽ ra gọi với 2 argument thì lại đưa vào 1 string. Cần sửa thành checker file1 file2.

99 bottles of beer on the wall

Bài toán phổ biến trong lập trình: 99 chai bia trong két cũng cần test đủ với các trường hợp:

  • nhiều chai
  • chỉ còn 1 chai
  • hết bia

Xem đề và 1500 loại code ở http://www.99-bottles-of-beer.net/lyrics.html

Kết luận

Dù viết code hay viết tool, luôn test tối thiểu 3 case mà nhiều hơn thì là 4:

  • 0
  • 1
  • random.choice(2 -> N-1)
  • N

Happy testing.

Hết.

HVN at https://pymi.vn and https://www.familug.org.

Ủng hộ tác giả 🍺

Comments

Popular posts from this blog

Tài liệu và hướng dẫn học Python

Để tiết kiệm thời gian, tốt nhất là đi học PyMI Updated: 130617 Sau đây là các tài liệu khuyên dùng: Vì nhiều lý do, nên học python2.7 tại thời điểm hiện tại (giờ là tháng 6/2013 - muốn biết tại sao thì tự tìm hiểu) python 3.5+ (giờ là tháng 2/2017) Chuẩn bị: 1. biết bật tắt máy 2. biết cài python 3. tập gõ 10 ngón - gõ 2 ngón hay 1 ngón cũng không sao, nhưng 10 ngón là cách dễ nhất để gõ nhanh nhất. Tài liệu - Nên dùng tài liệu tại trang chủ của Python làm chính, tham khảo thêm các tài liệu khác tại http://www.familug.org/2016/12/free-ebook.html Căn bản, mới học 1.1 Python PyMI.vn https://pymi.vn/tutorial/ 1.2. Python offical tutorial kết hợp làm bài tập trên HackerRank  (đề bài bằng tiếng Anh, nhưng Google translate 1 lúc cũng ra vì có nhiều ví dụ mẫu đi kèm). Học viên của Pymi.vn có rất nhiều học viên đã tự học với Learn Python the hard way nhưng chưa thấy ai thành công cả. Hai link dưới nên đọc sau khi đã nắm được những phần cơ bản của ngôn ngữ pytho...

The PyMiers

New FAMILUG