Avatar
0
Nguyễn Thái Sơn Professional
Nguyễn Thái Sơn Professional
sự khác biệt lớn giữa Unit test và Automation test
em chào anh, em muốn hỏi thật sự về sự khác biệt Unit test và Automation test ạ, về cả 2 cùng 1 mục đích là test chức năng cho 1 function cụ thể với expectation, nhưng khi nào dùng automation test, khi nào dùng unit test trong tình huống thực tế vậy ạ
  • Answer
Remain: 5
1 Answer
Avatar
Thành Lê Văn Professional
Thành Lê Văn Professional
Hmm, nếu bạn hỏi về unit testintegration test thì có vẻ hợp lý hơn. Tuy nhiên Unit testAutomation test thì mình cũng sẽ cố gắng giải thích cho bạn dễ hiểu.

Unit test

Với Unit Test thì Dev sẽ viết các test này bằng code để chạy test, tuy nhiên có rất nhiêu bạn chưa hiểu rõ vè Unit Test.

Giống như tên của nó có từ Unit, các test này sẽ test từng Unit (Từng function, method) nhỏ nhất có thể.

Với UnitTest thì tất cả các dependency sẽ cần mock, chúng ta sẽ chú trọng và logic và sự đúng đắn của các code logic trong function đó.

Ví dụ bạn có một function thực hiện call một method của một class do người khác viết và call API.

Với UnitTest thì kết quả của method do 1 người khác viết bạn cần phải mock. kết quả của việc call API bạn cũng cần Mock.

Bạn sẽ cần hỏi người viết method, đọc docs hoặ code để xem sẽ có các kiểu data trả về như nào (Null, object,  object rỗng, thows lỗi...) để bạn viết các test Unit Test cho các trường hợp đó.

Tất nhiên bạn cũng sẽ cần biết các lỗi của việc Call API và các dạng data trả về của API để thực hiện mock và viết Unit Test.

Thông thườn dự án có Unit Test được viết chuẩn thì sẽ ít bug, tuy nhiên thời gian phát triển sẽ gấp 2 hoặc 3 lần. (Chi phí dev sẽ tăng)

 

Automation test

Dịch tiếng việt từ này là test tự động. Automation test thường được các tester biết viết code thực hiện làm. Với Automation test thì sẽ chú trọng test cả 1 tính năng hoàn chỉnh ( tính năng chạy full flow).

Ví dụ một tính năng chuyển tiền, Automation test sẽ thực hiện test hiện full luồng chuyển tiền (Đăng nhập, chọn chức năng chuyển tiền, nhập thông tin người nhận tiền, xác nhận chuyển tiền, kiểm tra tiền đã chuyển thành công và người nhận tiền đã nhận được...).

Có một lib huyền thoại của java để thực hiện việc này đó là selenium. Tuy nhiên hiện tại mọi người sử dụng Robot Framework nhiều hơn.

khi nào dùng unit test trong tình huống thực tế vậy ạ

Với câu hỏi này thì khi bạn hiểu các ý ở trên thì bạn sẽ trả lời được 1 cách đơn giản.

Đó là khi bạn cần test các logic của từng Unit (Function, method) để xem code của chúng ta trong (Function, method) đã ngon chưa, đã cover được hết case chưa.

  • 1
  • Reply