Kiểm thử phần mềm luôn là một cuộc chạy đua với thời gian. Các cửa sổ phát hành (release windows) ngày càng thu hẹp. Mã nguồn ngày càng lớn. Các đội ngũ được kỳ vọng phải bàn giao sản phẩm nhanh hơn mà không làm hỏng hệ thống. Gần đây, AI đã bước vào "nồi áp suất" này và hứa hẹn mang lại sự nhẹ nhõm. Nó có thể tạo ra các trường hợp kiểm thử (test cases) trong vài giây, quét hàng nghìn dòng mã để tìm các điểm bất thường, và chạy các bộ kiểm thử lặp đi lặp lại trong khi đội ngũ của bạn đang ngủ. Tốc độ là có thật. Nhưng tốc độ mà không có định hướng thì chỉ là cách nhanh hơn để gặp tai nạn.
Thực tế là AI trong kiểm thử hoạt động tốt nhất như một bộ tăng tốc, chứ không phải chế độ lái tự động (autopilot). Nếu được sử dụng đúng cách, nó sẽ cắt giảm các công việc chân tay và phát hiện lỗi sớm. Nếu sử dụng thiếu cẩn trọng, nó sẽ tạo ra các điểm mù và mang lại cho bạn cảm giác an toàn giả tạo. Hiểu được nơi AI giúp ích và nơi nó thất bại chính là sự khác biệt giữa việc bàn giao phần mềm ổn định và việc bàn giao mã lỗi được giao đúng hạn.
Nơi AI khẳng định giá trị
Hãy bắt đầu với những gì AI xử lý tốt. Kiểm thử hồi quy (regression testing) lặp đi lặp lại là một thắng lợi rõ ràng. Việc chạy các luồng đăng nhập, xác thực biểu mẫu và các bước thanh toán giống nhau trên hàng chục tổ hợp trình duyệt và thiết bị là việc gây nhàm chán cho con người nhưng lại rất dễ dàng đối với máy móc. Các trình chạy kiểm thử dựa trên AI có thể thực hiện các bộ kiểm thử này qua đêm và gắn cờ các lỗi hồi quy về giao diện (visual regressions) hoặc sự sụt giảm hiệu suất mà một kỹ sư đang mệt mỏi có thể bỏ qua khi cuộn trang.
Tạo dữ liệu kiểm thử (test data generation) là một thế mạnh khác. Khi bạn cần mười nghìn bản ghi với tên, địa chỉ, lịch sử giao dịch và múi giờ giả nhưng thực tế, AI có thể tạo ra chúng ngay lập tức. Điều này rất quan trọng khi bạn đang kiểm thử tải (load-testing) một cơ sở dữ liệu hoặc kiểm tra xem bảng điều khiển phân tích của bạn xử lý dữ liệu có độ phân giải cao (high-cardinality data) như thế nào. Việc tạo thủ công khối lượng dữ liệu đó không chỉ chậm mà còn không thực tế.
AI cũng đẩy nhanh việc viết các kịch bản kiểm thử mẫu (boilerplate test scripts). Nếu bạn cần một bài kiểm thử đơn vị (unit test) tiêu chuẩn cho một API endpoint mới hoặc một kịch bản cơ bản để xác minh rằng một trang web tải lên, một trợ lý AI có thể soạn thảo khung sườn (scaffold). Bạn sẽ có được cấu trúc, các đầu vào giả (dummy inputs) và các trình giữ chỗ khẳng định (assertion placeholders) mà không cần phải gõ lại các thủ tục từ đầu. Đó là một điểm khởi đầu tốt.
Những lợi ích này là hữu hình. Lỗi được phát hiện sớm hơn vì chi phí chạy các bài kiểm thử diện rộng giảm xuống. Các tác vụ lặp đi lặp lại không còn tiêu tốn thời gian của con người. Đội ngũ có thể tập trung vào các vấn đề hóc búa hơn.
Những điểm mù không ai nhắc tới
Vấn đề bắt đầu khi các đội ngũ nhầm lẫn giữa độ bao phủ rộng (broad coverage) với độ bao phủ sâu (deep coverage). AI tìm kiếm các khuôn mẫu. Nó dự đoán một lỗi thông thường trông như thế nào dựa trên dữ liệu mà nó được huấn luyện. Điều đó có nghĩa là nó xuất sắc ở những điều bình thường và liên tục thất bại ở những điều kỳ lạ.
Hãy xem xét các trường hợp biên (edge cases). Một mô hình được huấn luyện trên các hành trình người dùng tiêu chuẩn có khả năng sẽ bỏ lỡ lỗi chỉ xảy ra khi người dùng mở ba hộp thoại modal, nhấn nút quay lại của trình duyệt và làm mới trang trong khi đang lưu dữ liệu bất đồng bộ. Đây không phải là giả thuyết. Các sự cố trên môi trường thực tế (production incidents) thường bắt nguồn từ các chuỗi hành động mà không có tập dữ liệu huấn luyện nào đại diện đầy đủ vì chúng hiếm gặp về mặt thống kê. AI luôn đuổi theo trung tâm của biểu đồ hình chuông. Trong khi đó, những lỗi tồi tệ nhất của bạn lại nằm ở phần đuôi.
Trực giác của con người rất quan trọng ở đây. Một kiểm thử viên dày dạn kinh nghiệm sẽ nhìn vào một tính năng mới và nghĩ về rủi ro kinh doanh. Họ tự hỏi một người dùng đang bực bội có thể lạm dụng biểu mẫu như thế nào, hoặc điều gì sẽ xảy ra khi cổng thanh toán hết thời gian chờ (timeout) trong đợt lưu lượng truy cập tăng đột biến vào ngày lễ. Đây là tư duy theo ngữ cảnh. AI không cảm nhận được áp lực kinh doanh. Nó không biết rằng hệ thống kho hàng của bạn đang mong manh vì một tích hợp cũ từ nhiều năm trước. Nó viết những gì trông có vẻ đúng, chứ không phải những gì đúng cho lĩnh vực cụ thể của bạn.
Ngoài ra còn có vấn đề về hiện tượng ảo giác (hallucination) và tự động hóa kém linh hoạt (brittle automation). Các kịch bản kiểm thử do AI tạo ra trông có vẻ hợp lý nhưng có thể chứa các bộ chọn (selectors) không chính xác, các khẳng định (assertions) sai hoặc các giả định về cấu trúc DOM sẽ thay đổi trong sprint tiếp theo. Nếu bạn chạy các kịch bản này mà không đọc kỹ, bạn sẽ nhận được các kết quả dương tính giả (false positives) gây lãng phí thời gian hoặc các kết quả âm tính giả (false negatives) khiến lỗi lọt qua. Một dấu tích xanh trên bảng điều khiển kiểm thử là vô nghĩa nếu bài kiểm thử đó không thực sự xác thực đúng hành vi.
