Khi nào thì sử dụng Automation Testing?

Automated test là phương pháp hữu dụng và ấn tượng, thường được sử dụng để giúp tiến hành test một cách hiệu quả. Tuy nhiên, automated test lại không phù hợp với tất cả các dự án. Nguyên nhân là do thiếu thời gian và thiếu kĩ thuật.

1. Kiểm thử phần mềm tự động là gì?

Là quá trình kiểm tra hệ thống với dữ liệu đầu vào và đầu ra đã được xác định 1 cách tự động.

2. Ưu điểm và nhược điểm của kiểm thử phần mềm tự động.

2.1 Ưu điểm

  • Tính hiệu quả trong công việc: Ưu điểm lớn nhất của kiểm thử tự động là thay thế con người lặp đi lặp lại đúng quy tắccác bước kiểm thử nhàm chán, không biết mệt mỏi, không cần xin phép đột suất khi cần, không làm những việc ảnh hưởng đến quá trình test => tránh được hao phí về mặt thời gian.
  • Độ tin cậy: Với những script chuyên nghiệp, một khi đã Execute thành công và nhận về kết quả thì chúng ta có thể yên tâm nó chạy đúng với những gì đã yêu cầu. Dù lặp đi lặp lại nhiều lần vẫn cho ra kết quả giống nhau do vậy độ ổn định cao, tránh được rủi ro có thể phát sinh. Ngoài ra, kiểm thử tự động còn giúp tái hiện bug một cách hiệu quả, những bug thỉnh thoảng mới xảy ra hay xảy ra một cách ngẫu nhiên sẽ được repdure một cách dễ dàng nhờ việc lưu lại các bước một cách tự động.
  • Cải thiện chất lượng: Kiểm thử tự động làm giảm rủi ro về mặt chất lượng sản phẩm, việc kiểm thử được thực hiện một cách nhanh chóng, không gây mệt mỏi, tránh trường hợp chủ quan cho những trường hợp test hồi quy, retest, test toàn bộ hệ thống. Có thể tái sử dụng các trường hợp kiểm thử.
  • Tốc độ xử lý cực nhanh: Nếu bạn mất 5 phút để kiểm thử thủ công thì chỉ cần mất 30s nếu sử dụng kiểm thử tự động, công việc của bạn là "Run" và ngồi chờ kết quả, nó giúp bạn chạy liên tiếp được nhiều case.
  • Chi phí thấp: Việc rút ngắn thời gian và tiết kiệm nhân lực giúp cho việc kiểm thử tự động trở nên hiệu quả.
  • Hỗ trợ export ra nhiều ngôn ngữ phổ biến như Ruby, Java, Python…

2.2 Nhược điểm

  • Ban đầu thì chi phí cho kiểm thử tự động sẽ cao hơn kiểm thử thủ công
  • Để kiểm thử tự động thực hiện được thì vẫn cần con người phải bỏ thời gian, công sức và tiền bạc,...
  • Mất chi phí cho các công cụ tự động hóa như bản quyền, bảo trì, tìm hiểu, training.
  • Khó mở rộng hơn nhiều so với kiểm thử thủ công
  • Yêu cầu những người có trình độ chuyên môn cao mới thực hiện được
  • Số lượng công việc phải làm để mở rộng cho kiểm thử tự động sẽ nhiều và khó hơn so với kiểm thử thủ công. Để kiểm thử thủ công chỉ cần mở, gõ,... rất đơn giản. Nhưng kiểm thử tự động cập nhật, chỉnh sửa yêu cầu rất nhiều công việc như debug, thay dữ liệu đầu vào, cập nhật lại code mới.

3. Khi nào nên sử dụng kiểm thử tự động

  • Chúng ta nên tiến hành kiểm thử tự động cho 1 bộ phận test mà không phải toàn bộ vì:
  • Kiểm thử tự động rất hiệu quả khi áp dụng cho giai đoạn re-test và test hồi quy. Hoặc cần chạy 1 số lượng testcases trong 1 thời gian ngắn.
  • Việc phải test đi test lại nhiều không những gây tốn nguồn lực kiểm thử mà còn tạo cảm giác nhàm chán.
  • Kiểm thử cần được thực hiện ở nhiều môi trường khác nhau.
  • Những dự án có tính ổn định cao, đặc điểm kỹ thuật được xác định trước, test màn hình - chức năng không thay đổi trong tương lại.
  • Những trường hợp kiểm thử xác nhận hoạt động cơ bản ( Di chuyển giữa các màn hình).
  • Kiểm tra sự kết hợp giữa nhiều giá trị đầu vào ở 1 bước nào đó.
  • Kiểm tra nhiều màn hình của DL đầu vào
  • Mục đầu vào của nhiều màn hình đăng ký
  • Khi muốn thực hiện performance test hoặc load test thì kiểm thử tự động gần như là biện pháp duy nhất.

4. Khi nào không nên sử dụng kiểm thử tự động

  • Trong trường hợp mà nghiệp vụ sửa đổi thay đổi nhiều thì không nên sử dụng auto test do việc sửa script liên tục cũng mất nhiều thời gian. Chỉ nên áp dụng auto test khi có tính ổn định, và không có sự thay đổi về mặt chức năng/ nghiệp vụ.
  • Không phải cái gì cũng đều test tự động được hết cả mà vẫn cần đến test manual đóng vai trò quan trọng trong dự án.

5. Những lưu ý khi chọn automation tool

  • Nếu tool test không phải miễn phí thì công ty đã có giấy phép cho tool đó chưa
  • Có thể tìm các tool open source nhưng cần lựa chọn
  • Các thành viên trong nhóm biết về tool này hoặc đã dùng chưa, nếu không thì có cần đưa thêm người mới vào team không hay cần training cho người cũ.

Tài liệu tham khảo

  1. http://forums.testervn.com/archive/index.php/t-3780.html
  2. http://blog.itviec.com/3-loi-khuyen-giup-ban-nang-cap-su-nghiep-qa/