Kiểm thử đơn vị với pytest

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

Alexander Levin

Data Scientist

Kiểm thử đơn vị là gì

Đơn vị - phần nhỏ nhất có thể kiểm thử.

  • Ví dụ: hàm, phương thức, lớp, mô-đun, v.v.

$$

Kiểm thử đơn vị - phương pháp kiểm thử phần mềm.

  • Cho phép kiểm tra tính đúng đắn của một đơn vị.

$$

Trường hợp kiểm thử - tập hợp đầu vào và đầu ra kỳ vọng cho đơn vị.

  • Tóm tắt một phần cụ thể của bài toán.
Nhập môn Kiểm thử trong Python

Vì sao dùng kiểm thử đơn vị

Kiểm thử đơn vị - là nền tảng để kiểm thử "bức tranh tổng thể" của phần mềm.

Trường hợp sử dụng:

  • Khi phát hiện lỗi
  • Trong quá trình phát triển
  • Sau khi thay đổi được triển khai
Nhập môn Kiểm thử trong Python

Cách tạo kiểm thử đơn vị

Các bước:

  1. Quyết định đơn vị cần kiểm thử
  2. Xác định test case (phần sáng tạo):
    • "Các kết quả khả dĩ của đơn vị là gì?"
    • "Có thể sử dụng đơn vị thế nào?"
    • "Đơn vị nên ứng xử ra sao trong các trường hợp đó?"
  3. Viết mã cho từng test case
  4. Chạy thử và phân tích kết quả
Nhập môn Kiểm thử trong Python

Tạo kiểm thử đơn vị: ví dụ

Đơn vị cần kiểm thử:

# Function for a sum of elements
def sum_of_arr(array:list) -> int:
    return sum(array)

Test case:

  1. Đầu vào là danh sách số (đúng kỳ vọng) - trả về sum
  2. Đầu vào là danh sách rỗng - trả về 0
  3. Đầu vào là danh sách có một number - trả về chính number
Nhập môn Kiểm thử trong Python

Tạo kiểm thử đơn vị: mã

# Test Case 1: regular array
def test_regular():
    assert sum_of_arr([1, 2, 3]) == 6
    assert sum_of_arr([100, 150]) == 250
# Test Case 2: empty list
def test_empty():
    assert sum_of_arr([]) == 0
# Test Case 3: one number
def test_one_number():
    assert sum_of_arr([10]) == 10
    assert sum_of_arr([0]) == 0
Nhập môn Kiểm thử trong Python

Tóm tắt

Kiểm thử đơn vị - kiểm tra một đơn vị hoạt động đúng kỳ vọng.

Trường hợp kiểm thử - đầu vào và đầu ra tóm tắt một phần của bài toán.

Trường hợp sử dụng:

  • Khi phát hiện lỗi
  • Trong quá trình phát triển
  • Sau khi thay đổi được triển khai

Xây dựng test case - cần tính sáng tạo.

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

Ayo berlatih!

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

Preparing Video For Download...