- vừa được xem lúc

Tool testing guide for new Python developer

0 0 33

Người đăng: nguyen trong nhan

Theo Viblo Asia

Lời mở đầu

Hello everyone, long time no see, nay tôi sẽ trở lại với bài dịch liên quan đến một bước crucial trong software development. Đó là 👉️ Testing. Mỗi ngôn ngữ lập trình đều có một số lượng lớn công cụ dùng để kiểm thử phần code. Và Python cũng thế. Tuy nhiên với thư viện Pandas thì việc này không thực sự phổ biến. Trong bài viết, tác giả cũng có đề cập hai nguyên nhân vì Pandas có thể khó hơn trong việc test các cú pháp code Python thông thường hoặc nó thường được sử dụng bởi các chuyên gia hơn các lập trình viên.

Tuy nhiên, testing là một giai đoạn trong software development do đó không nên việc biết một số tools để làm dễ dàng quá trình này.

Okay, và bài dịch ngày hôm nay về một chủ đề khá mới bắt đầu thoi nào!!!

Nội dung

Using Pytest

Pytest là một tool rất phổ biến và đơn giản để testing code. Đối với một số tools khác, nó yêu cầu cần định nghĩa các class cho mỗi lượt testing, điều này vô tình make this a bit more cumbersome. Với Pytest nó đơn giản và dễ dàng hơn.

Install Pytest

Để sử dụng nó, chúng ta có thể dùng câu lệnh:

pip install pytest

Các bạn có thể tìm hiểu kỹ hơn về nó tại 👉️ Pytest

Ví dụ với Pytest

Ví dụ tôi muốn kiểm thử đoạn code để tính tổng của hai số dưới đây:

# operations.py
def sum_a_and_b(a, b): return a + b

Tôi viết đoạn code vào file <name>.py ( ví dụ như operations(a, b)...).

Để testing đoạn code trên, tôi thực hiện một số bước dưới đây:

  1. Viết đoạn code trên vào một file .py ( ví dụ như operations.py)'

  2. Tạo một file .py khác để testing đoạn code trên (ví dụ như test_operations.py)

  3. Viết đoạn code để testing hàm sum_a_and_b(a, b):

    • Import hàm tính tổng từ file operations(a, b)

      from operations import sum_a_and_b as sum
      
    • Viết một function để thực hiện testing hàm tính tổng:

       def test_sum(): result = sum_a_and_b(1, 2) assert result == 3
      
    • Chạy file testing với terminal:

      • cd vào thư mục chứa file testing
      • Chạy code trong file testing với type pytest
    • Check kết quả

Minh họa kết quả thực thi thành công.

👉️👉️👉️ Mọi người có thể tìm hiểu kỹ hơn về một số điểm mạnh của pytest tại khóa học này Python Automatic Pytest

Cách viết một bài test chuẩn

Dựa theo ý kiến của tác giả bài viết

Beyond the Happy Path

Phiên bản test Happy path là phiên bản testing version 1 thường là phiên bản chúng ta espect đầu tiên. Đây là trường hợp đơn giản nhất và là vấn đề chúng ta cần hàm giải quyết đầu tiên. Tuy nhiên chúng ta cũng cần có những trường hợp gọi là the edge cases để đánh giá được function 100%.

Minh họa cho trường hợp vừa pass vừa fail

Testing Principles

For unit tests, it’s a good rule of thumb to remember that tests should always follow the common “arrange/act/assert” structure.

Các bước gồm:

  • arrange : những thứ cần để testing như tạo data cần thiết, chuẩn bị in-memory database hay mocking API call...
  • act: hàm hoặc phương thức để gọi nó
  • assert: expected output.

Minh họa đối với hàm tính tổng ở ví dụ trên

‼️ Lưu ý rằng, mọi người nếu muốn unit test mang tính tương tác với user thì có thể sử dụng ba type sau: given/when/then

  • Given: những gì bạn cần để chạy chương trình test
  • When: có tính tương tác
  • Then: expected outcome

Take Your Time Naming Everything Correctly

Tài liệu tham khảo:

Lời cảm ơn

Trước tiên, tôi xin cảm ơn anh Eduardo Motta de Morae - tác giả bài viết. Cảm ơn mọi người đã đọc phần dịch chia sẻ của tôi. Cảm ơn rất nhiều.

Hy vọng mọi người sẽ tổng hợp và đóng góp tại email bên dưới.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Sử dụng recoil thay thế redux ?

Như chúng ta đã biết quản lí state trong react đôi lúc rất khó khăn đó là lí do tại sao chúng ta sử dụng redux hoặc một số thư viện khác như mobx để giúp việc quản lí state trở nên dễ dàng hơn. Recoil cũng là một thư viện quản lí state được mô phỏng chặt chẽ theo các API của react hook.

0 0 202

- vừa được xem lúc

Tìm hiểu cơ bản về Python (P1)

Hello, xin chào mọi người, mình là một dev FE, nhưng mấy hôm nay thấy hứng thú với python nên quyết định làm 1 series về những gì mà mình học được. Lưu ý là những chia sẽ của mình cũng là một thằng bắ

0 0 35

- vừa được xem lúc

Kiến thức aws vụn vặt.

Cloud computing. Cloud computing được định nghĩa như sau: Cloud computing là điện toán đám mây, cung cấp tài nguyên IT theo yêu cầu thông qua Internet.

0 0 38

- vừa được xem lúc

Tổng quan về kiểm thử tự động: Định nghĩa, lợi ích, quy trình, các loại hình và cách áp dụng vào dự án

1. Kiểm thử tự động là gì. 2. Các lý do sau đây sẽ giúp bạn hiểu rõ hơn về tầm quan trọng của kiểm thử tự động:.

0 0 23

- vừa được xem lúc

Ứng dụng Kiểm Thử Tự Động vào nhóm dự án Agile

Phương pháp phát triển phần mềm theo triết lý/mô hình Agile đang ngày càng trở nên phổ biến trên khắp thế giới. Các công ty, doanh nghiệp và nhóm dự án vì thế cũng cần một cách thức kiểm thử phần mềm

0 0 31

- vừa được xem lúc

System Design - Nguyên tắc cơ bản về thiết kế hệ thống

Trong bài viết này, chúng ta sẽ đi tìm hiểu về cái khái niệm, nguyên tắc cơ bản trong thiết kế hệ thống (system design) như là: khả năng mở rộng (scalability), thông lượng (throughput), băng thông (ba

0 0 17