1 / 14

UNIT TEST

UNIT TEST. Thực hiện: Nhóm 24. Nội dung. UnitTest là gì ?. Lợi ích và hạn chế của UnitTest. Phương pháp xây dựng UnitTest. Các đối tượng thay thế (mock ). Các công cụ hỗ trợ. Khái niệm Unit Test. UnitTest là một đoạn code để kiểm tra các hàm khác.

Download Presentation

UNIT TEST

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. UNIT TEST Thực hiện: Nhóm 24

  2. Nội dung • UnitTest là gì ? • Lợi ích và hạn chế của UnitTest. • Phương pháp xây dựng UnitTest. • Các đối tượng thay thế (mock). • Các công cụ hỗ trợ.

  3. Khái niệm Unit Test • UnitTest là một đoạn code để kiểm tra các hàm khác. • Unit testinglà một thủ tục để xác định những module (unit) mã nguồn của phần mềm có hoạt động đúng hay không. • Trong procedural programming, một unit có thể là một chương trình riêng lẻ, một chức năng hoặc một thủ tục,… • Trong OOP , unit nhỏ nhất là một phương thức thuộc về một lớp cơ sở, lớp trừu tượng hay các lớp con. • … • UnitTest được thực hiện bởi developers, khôngphải bởi Software testers hoặc end-users.

  4. Lợi ích của UnitTest • Mục đích: phân chia các thành phần của chương trình và đảm bảo các thành phần thực hiện đúng. • Dễ thay đổi code: programmer yên tâm khi sửa code (refactor) bằng việc test lại để xác định testcase nào bị lỗi  chỉnh sửa kịp thời • Dễ tích hợp: các module với interface rõ ràng và được đảm bảo unit test  dễ dàng cho intergrate test • Living document: developer có thể dựa vào testcase để biết được hệ thống có unit, hàm gì và sử dụng như thế nào.

  5. Hạn chế của UnitTest • Không phát hiện được hết các lỗi của chương trình. • Khi thay đổi interface của module  phải sửa lại nhiều testcase  khi thiết kế testcase cần bỏ đi những code trùng lặp.

  6. Phương pháp xây dựng UnitTest • Xác định mục tiêu • TestPlan • Thiết kế TestCase. • Cần đặc tả cho module cần test và source code của module đó. • Thực thi TestCase. • Kiểm tra code kết hợp sử dụng Mock Objects. • Báo cáo lỗi.

  7. Các đối tượng thay thế (Mock) • Mock object là gì? • Mock object là một đối tượng mô phỏng bắt chước hành vi của một đối tượng thật trong chương trình.

  8. Các đối tượng thay thế (Mock) • Khi nào sử dụng mock object ? • Khi không thể hoặc không khả thi trong việc thực hiện unit test với đối tượng thật. • Vd: • Đối tượng khó tạo ra hay tái tạo lại (lỗi mạng). • Tạo đối tượng chậm (đối tượng chứa cơ sở dữ liệu hoàn chỉnh, phải khởi tạo lại trước khi test). • Đối tượng cho ra kết quả không nhất định. • Đối tượng chưa từng tồn tại hoặc đối tượng có thể thay đổi hành vi. • Đối tượng gồm thông tin và phương thức dành riêng cho việc test.

  9. Các đối tượng thay thế (Mock) • Tại sao nên sử dụng mock object? • Đảm bảo công việc test không bị gián đoạn bởi các yếu tố bên ngoài, giúp các lập trình viên tập trung vào một chức năng nghiệp vụ cụ thể, từ đó tạo ra UT vận hành nhanh hơn. • Giúp tiếp cận hướng đối tượng tốt hơn. Nhờ MO chúng ta có thể phát hiện interface cần tách ở một số lớp. • Dễ dàng cho việc test. Thay vì gọi các đối tượng thực vận hành nặng nề, chúng ta có thể gọi các MO đơn giản hơn để kiểm tra nhanh liên kết giữa các hàm, phương thức, công việc test có thể tiến hành nhanh hơn

  10. Các đối tượng thay thế (Mock) • Sử dụng mock object như thế nào? • Thông thường, nếu số lượng MO không nhiều, chúng ta có thể tự thiết kế. • Nếu không, có thể tải về các công cụ có sẵn thông dụng hiện nay như EasyMock, jMock, Nmock… Các phần mềm này cung cấp nhiều API cho phép xây dựng MO và các kho dữ liệu giả dễ dàng hơn, cũng như kiểm tra tự động các số liệu trong UT.

  11. Các đối tượng thay thế (Mock) • Nói chung, việc thiết kế MO gồm 3 bước chính sau đây: • Đưa ra interface để mô tả đối tượng. Tất cả các tính chất và thủ tục quan trọng cần kiểm tra phải được mô tả trong interface. • Viết nội dung cho đối tượng thực dựa trên interface như thông thường. • Trích interface từ đối tượng thực và triển khai MO dựa trên interface đó.

  12. Các đối tượng thay thế (Mock) • Lưu ý: • MO phải được đưa vào quy trình kiểm nghiệm tách biệt. • Cách này có thể sinh ra nhiều interface không thực sự cần thiết, có thể làm cho thiết kế ứng dụng trở nên phức tạp. • Một cách làm khác là kế thừa một đối tượng đang tồn tại và cố gắng mô phỏng các hành vi càng đơn giản càng tốt, như trả về một dữ liệu giả chẳng hạn. • Đặc biệt tránh tạo ra những liên kết mắt xích giữa các MO vì chúng có thể làm cho thiết kế UT trở nên phức tạp.

  13. Các công cụ hỗ trợ • PHPUnit • JUnit • CPPUnit

  14. Cảm ơn thầy và các bạn đã lắng nghe.

More Related