Kỷ Nguyên Robot: Tự Động Hóa Hay Lụi Tàn
Những năm 2020 của thế kỉ 21 chứng kiến sự phát triển thần tốc của ngành công nghệ thông tin. Một startup công nghệ có thể trở thành công ty tỷ đô chỉ sau 1 năm, điều mà các công ty thế hệ đầu tiên cần đến hàng thập kỷ. Có rất nhiều công nghệ nền tảng đứng sau tốc độ thần tốc đó như Test Automation, DevOps, Open Source Platform…
Trong rất nhiều năm chúng ta chỉ phụ thuộc vào con người trong việc kiểm tra chất lượng của các hệ thống ứng dụng. Điều này đặt ra thách thức lớn khi phải đưa sản phẩm ra thị trường trong thời gian ngắn nhất và chất lượng chấp nhận được, vì chỉ cần chậm 1 ngày là thị trường có thể bị đối thủ khác chiếm lĩnh. Đồng thời đối với nhiều hệ thống yêu cầu về kiểm thử đã vượt quá giới hạn của con người, ví dụ phải liên tục đồng thời theo dõi mức độ tiêu thụ RAM hay CPU của hệ thống giờ cao điểm, hoặc liên tục kiểm tra hệ thống trong nhiều giờ, thậm chí nhiều ngày. Điều này dẫn tới nhu cầu về kiểm thử tự động với những ưu điểm vượt trội con người: Có thể làm việc liên tục mà không cần nghỉ, có thể tái sử dụng các bước kiểm thử cũ, có thể theo dõi các chỉ số với tốc độ cao hơn con người....vv
Tuy vậy, kiểm thử tự động (Automation Test) không phải là chìa khóa vạn năng cho mọi vấn đề về kiểm thử, nó chỉ là công cụ của con người để tăng tốc và tăng chất lượng quá trình kiểm thử. Phần tiếp theo chúng ta sẽ so sánh về ưu và nhược điểm của kiểm thử nhân công cùng kiểm thử tự động.
Automation test và Manual test khác nhau ở điểm gì?
Kiểm thử tự động sử dụng các công cụ, mã lập trình để kiểm thử ứng dụng trong thời gian ngắn cho một kết quả đáng tin cậy khi giảm thiểu sự can thiệp của con người.
Qua bảng so sánh trên có thể thấy được kiểm thử tự động không thể thay thế hoàn toàn kiểm thử nhân công trong tương lai gần mà hiện tại chỉ có thể sử dụng như 1 công cụ hỗ trợ cho các tester. Để quyết định việc có áp dụng Automation Test vào dự án hay không ta cần có 1 đánh giá toàn diện về hoàn vốn đầu tư (ROI – Return on Investment, sẽ giới thiệu trong bài viết sau)
Làm việc với Automation test như thế nào?
Quy trình làm việc thông thường khi sử dụng kiểm thử tự động có thể gói gọn như trong hình minh họa dưới đây:
Cụ thể cần thực hiện những bước như sau
- Việc đầu tiên là xác định phần nào có thể tự động hóa trong hệ thống. Dựa trên bộ test case manual, nhân viên kiểm thử tự động có thể xác định được phạm vi cần test. Qua đó sàng lọc ra các phần có thể được tự động hóa.
- Lựa chọn công cụ kiểm thử tự động phù hợp: Lên danh sách các công cụ có khả năng sử dụng trong dự án (dựa theo tính năng của công cụ và nhu cầu cũng như khả năng của dự án, và tài liệu ROI).
- Viết kịch bản kiểm thử tự động và mã lập trình liên kết (Bằng ngôn ngữ lập trình phổ biến hoặc ngôn ngữ riêng của công cụ tùy trường hợp.)
- Thực thi các kịch bản kiểm thử
- Lập báo cáo kết quả kiểm thử, tải lên các hệ thống quản lý nếu được (Jira, TFS…)
- Phân tích kết quả kiểm thử, nếu có lỗi thì cần xác định lỗi của mã kiểm thử hay của ứng dụng cần kiểm thử.
- Sửa các lỗi của mã kiểm thử phát sinh và lập lại chu trình với các phase sau trong dự án
Kết
Không thể phủ nhận được vai trò của kiểm thử tự động - Automation Test cũng như là Kiểm thử nhân công - Manual test. Việc tối ưu hóa ứng dụng của automation test vẫn đang là bài toán cần giải. Trong bài viết tiếp theo chúng ta sẽ đến với loạt bài viết về kiểm thử ứng dụng web với Selenium và C#.
Các bạn có thắc mắc về lĩnh vực này, vui lòng comment phía dưới để cùng tôi thảo luận.