Categories

Subscribe Now

* You will receive the latest news and updates on your favorite celebrities!

Automation Series

Kiểm Thử Đơn Vị-Unit Testing
Levels

Kiểm Thử Đơn Vị-Unit Testing 

Một Unit là một thành phần phần mềm nhỏ nhất mà ta có thể kiểm tra được. Theo định nghĩa này, các hàm (Function), thủ tục (Procedure), lớp (Class), hoặc các phương thức (Method) đều có thể được xem là Unit.

Vì Unit được chọn để kiểm tra thường có kích thước nhỏ và chức năng hoạt động đơn giản, chúng ta không khó khăn gì trong việc tổ chức, kiểm tra, ghi nhận và phân tích kết quả kiểm tra. Nếu phát hiện lỗi, việc xác định nguyên nhân và khắc phục cũng tương đối dễ dàng vì chỉ khoanh vùng trong một đơn thể Unit đang kiểm tra. Một nguyên lý đúc kết từ thực tiễn: thời gian tốn cho Unit Test sẽ được đền bù bằng việc tiết kiệm rất nhiều thời gian và chi phí cho việc kiểm tra và sửa lỗi ở các mức kiểm tra sau đó.

Unit Test có cần thiết không? 

Câu trả lời đương nhiên là cần thiết với một Lập Trình Viên có trách nhiệm với những dòng code của chính bản thân mình.

1 – Phát triển nhanh hơn.

Một khi các devloper viết các test case thì việc gỡ bug sẽ ít dành thời gian hơn và sau đó sẽ tự tin hơn về việc thực hiện các thay đổi code. Những kỹ năng về mọi mặt sẽ phát triển nhanh hơn các Lập Trình Viên bình thường.

Tính cận thận và trách nhiệm trong những bài unit test cũng khẳng định ở bên ngoài cuộc sống của họ.

2 – Cấu trúc Code tốt hơn.

Khi các nhà phát triển viết unit tests, sự nhấn mạnh của họ là suy nghĩ về cách mã của họ sẽ được sử dụng trên toàn hệ thống, điều này thường dẫn đến thiết kế tốt hơn.

Và còn nhiều lợi ích khác như là giảm công việc cho các tester, giảm giá thành chi phí code, giúp giảm chi phí cho việc bảo trì trong tương lai…

Unit Test có nhược điểm gì?

Mặc dù các lợi ích của Unit Test đang bắt đầu được hiểu rộng rãi hơn, nhưng vẫn còn một số lý do tại sao nó không được áp dụng đầy đủ hơn, điều này khiến tiềm năng của nó không được thực hiện.

1 – Không có thời gian cho Unit Test.

Viết Unit Test là tốn thời gian đó là lý do tại sao rất khó để đáp ứng thời hạn. Trong thực tế, Unit Test có thể tiết kiệm rất nhiều thời gian và nỗ lực phát triển trong thời gian dài.

2 – Unit tests khác với viết code

Đúng, bạn hãy nghĩ rằng để viết được một unit test đôi khi còn mất thời gian hơn viết một chức năng code. Và có thể có những Lập Trình Viên viết được code nhưng chưa chắc viết được test case. Không có gì đảm bảo, ngay cả khi mã được kiểm tra kỹ lưỡng, sẽ không có lỗi.

Cách thực hiện kiểm thử đơn vị Unit Test

Kiểm thử đơn vị có hai loại:

  • Thủ công
  • Tự động

Kiểm thử đơn vị thường được thực hiện tự động nhưng vẫn có thể được thực hiện thủ công. Kiểm thử đơn vị tự động hóa được ưa thích hơn.

Theo hướng tiếp cận tự động:

  • Một developer viết một phần code trong ứng dụng và chỉ kiểm thử chức năng. Sau đó, họ sẽ chú thích và cuối cùng sẽ loại bỏ code kiểm thử khi ứng dụng được triển khai.
  • Một developer cũng có thể cô lập chức năng để kiểm thử được chặt chẽ hơn. Kiểm thử đơn vị được thực hiện kỹ lưỡng hơn nếu copy code vào môi trường kiểm thử riêng so với môi trường tự nhiên của nó. Cô lập code giúp nhận biết các ràng buộc không cần thiết giữa code được kiểm thử và các đơn vị khác trong sản phẩm. Những ràng buộc đó có thể được loại bỏ.
  • Một lập trình viên thường sử dụng UnitTest Framework để phát triển các test cases tự động. Sử dụng Framework tự động hóa, các developer kiểm thử các tiêu chí codes để xác minh tính chính xác của code. Trong quá trình thực hiện các test cases, framework ghi và file log các test cases bị lỗi. Nhiều framework cũng sẽ tự động gắn cờ và báo cáo. Tùy thuộc vào mức độ nghiêm trọng của một lỗi, framework có thể tạm dừng kiểm thử.
  • Quy trình làm việc của Kiểm thử đơn vị là: Tạo các test cases => Review/Rework => Baseline => Thực hiện các test cases

Cách code hiệu quả với Unit Test

  • Các trường hợp kiểm thử đơn vị phải độc lập. Trong trường hợp có bất kỳ cải tiến hoặc thay đổi trong yêu cầu, các trường hợp kiểm thử đơn vị sẽ không bị ảnh hưởng.
  • Chỉ kiểm thử một đoạn code tại một thời điểm.
  • Thực hiện theo các quy ước đặt tên rõ ràng và nhất quán cho các test cases kiểm thử đơn vị
  • Trường hợp thay đổi code trong bất kỳ mô-đun nào, nên đảm bảo có Trường hợp kiểm thử đơn vị tương ứng cho mỗi mô-đun, khi pass các trường hợp kiểm thử của một mô-đun mới nên thay đổi triển khai kiểm thử mô-đun khác.
  • Lỗi được xác định trong quá trình kiểm thử đơn vị phải được sửa trước khi chuyển sang giai đoạn tiếp theo trong quy trình phát triển phần mềm
  • Càng viết nhiều code mà không kiểm thử, bạn càng phải kiểm thử nhiều trường hợp.

Kết luận

Không còn nghi ngờ gì nữa, unit testing có thể làm tăng đáng kể chất lượng dự án của bạn. Nhiều người trong ngành cho rằng việc có thêm bất kỳ unit test thì tốt hơn là không có gì, nhưng tôi không đồng tình với quan điểm đó: một bộ test có thể là một tài sản tuyệt vời, hoặc nó có thể là một gánh nặng rất lớn mà không mang lại giá trị gì nhiều. Nó phụ thuộc vào chất lượng của những test này, mà dường như được xác định bởi mức độ các nhà phát triển hiểu rõ những mục tiêu và nguyên tắc của unit testing.

Related posts

Leave a Reply

Required fields are marked *

error: Content is protected !!