Khi bạn là một tester mới trong một công ty phần mềm (yeah, giống mình), bạn có thể đối mặt với một số thử thách trong những ngày đầu. Bạn cần tìm hiểu quy định công ty, quy trình dự án, làm quen đồng nghiệp mới. Bạn biết đấy, nó chẳng dễ dàng gì. Tuy nhiên, bạn sớm sẽ học được chúng, điều khó khăn nhất còn chưa đến. Bạn có thể sẽ tham gia vào một dự án đầu tiên – với rất nhiều những ràng buộc, các module, các component cần bạn test nhanh chóng, nhưng phải chất lượng. May mắn ra bạn sẽ được cung cấp tài liệu hoặc mockup, nhưng nếu không – thì đây là thời điểm bạn cần tới Kiểm thử thăm dò – Exploratory testing.
Kiểm Thử Thăm Dò Là Gì?
Ngắn gọn thì, đây là cách kiểm thử phần mềm không cần đến một kế hoạch chặt chẽ, không làm việc trên cơ sở các test case đã tạo, hoặc một chiến lược được xây dựng từ trước. Tất các các kiểm thử bạn làm sẽ dựa vào trực giác, kinh nghiệm và kiến thức của bạn. Nó giống như bạn là một du khách đầy hiếu kỳ đang khám phá một vùng đất xa lạ vậy.
Về cơ bản, thì kiểm thử thăm dò giống như cố gắng bắt chước người dùng cuối về quyền tự do lựa chọn cách thức sử dụng sản phẩm để khám phá, điều tra, thử nghiệm theo cách riêng của bạn để hiểu được chất lượng cũng như trải nghiệm người dùng mà sản phẩm cung cấp. Nó hoàn toàn phụ thuộc vào kiến thức của người kiểm thử về kinh nghiệm tổng thể, kiến thực nghiệp vụ và nền tảng kỹ thuật để giúp họ thực hiện các bài kiểm tra được chính xác hơn.
Tùy thuộc vào phạm vi dự án và kinh nghiệm của người kiểm thử, loại kiểm thử này có thể mất vài giờ đến vài ngày. Nếu nhóm kiểm thử bao gồm những người kiểm thử lành nghề có thể thực hiện kiểm thử thăm dò mà không bị tổn thất quá nhiều về ngân sách và thời gian.
Khi Nào Dùng Kiểm Thử Thăm Dò?
Loại thử nghiệm này thuận tiện vì người kiểm thử không cần phải dành nhiều thời gian và năng lượng để tạo tài liệu kiểm tra. Đồng thời, quá trình kiểm thử trực quan và nhanh chóng hơn. Người kiểm thử có thể xác định kiểm thử thăm dò có thể được sử dụng ở giai đoạn nào để mang lại lợi ích lớn nhất, từ đó kết hợp điều đó với các loại thử nghiệm khác. Đây có thể là một bước vững chắc để hiểu sâu hơn về sản phẩm. Do đó, điều này sẽ cho phép các tester tạo ra các bài kiểm tra thực tế và hữu ích hơn trong những giai đoạn tiếp theo. Cuối cùng, nó có thể cải thiện phần mềm không chỉ từ khía cạnh kỹ thuật mà còn từ khía cạnh kinh doanh.
Trong hầu hết trường hợp, kiểm thử thăm dò được sử dụng cho:
- Lần đầu tiếp cận dự án nhưng chưa có tài liệu phong phú
- Cần xác định điểm yếu của phần mềm
- Thu thập thêm thông tin về logic của sản phẩm
Sử Dụng Kiểm Thử Thăm Dò Như Nào?
Bạn không thể mong chờ mọi dự án đều có đầy đủ tài liệu đặc tả về sản phẩm, cũng như tài liệu training bài bản. Đó là thực tế. Cùng với sự hướng dẫn của những tester đi trước, thì bạn phải tự mình tìm hiểu sản phẩm. Và đây là lúc kiểm thử thăm dò phát huy tác dụng.
Trong hầu hết các trường hợp, mình đều sử dụng những “tour” kiểm thử thăm dò – test tour mà James A. Whittaker đã mô tả trong cuốn sách Exploratory Software Testing. Dưới đây là những “test tour” mà mình thường sử dụng nhất:
- Guidebook Tour: Tập trung vào luồng sử dụng phổ biến của người dùng được chỉ dẫn trong tutorial bằng cách:
- Làm theo các chỉ dẫn và thực hiện từng bước một.
- Kiểm tra cả về chức năng và độ chính xác của chỉ dẫn.
- Bạn có thể gặp các trường hợp như: Chỉ dẫn không rõ ràng/ không phù hợp, các bước chỉ dẫn không tương ứng với hoạt động thực tế của phần mềm, lời nhắc không rõ ràng,… Hãy báo cáo lỗi!
- Intellectual Tour: Khi đã nắm được logic của sản phẩm cũng như hành vi của nó. Bạn có thể thực hiện những bước thử nghiệm cao hơn bằng cách thực hiện các tình huống người dùng không điển hình để kiểm ra xử lý của phần mềm cũng như phát hiện lỗi. Ví dụ: nhập một tên rất dài cho trường text, thêm một số lượng rất lớn sản phẩm vào giỏ hàng mua sắm, nhập các giá trị không hợp lệ vào các trường,…
- Supermodel Tour: Mình sẽ cố gắng tìm hiểu sản phẩm tạo ấn tượng như thế nào đối với người dùng. Sau đó là sẽ kiểm tra hình thức giao diện bên ngoài của nó, và đặt những câu hỏi như:
- GUI có hiển thị chính xác và nhanh chóng không?
- Quá trình chuyển đổi có rõ ràng không?
- Màu sắc và style có được sử dụng nhất quán không?
- GUI có thể sử dụng và truy cập bởi những người mắc chứng khó đọc hoặc mù màu không?
- Rained-Out Tour: Tưởng như bạn đang đi du lịch mà gặp một cơn mưa bất chợt khiến kế hoạch đi dạo của bạn bị hoãn và phải ở lại khách sạn. Thì trong kiểm thử thăm dò mình cũng sẽ cố gắng kiểm tra hành vi của sản phẩm trong những tình huống bất thường bằng cách huỷ giữa chừng khi thực hiện một loạt thao tác để xem hậu quả của nó cũng như cách thức sản phẩm xử lý sự cố. Một vài ví dụ cho trường hợp này như:
- Tìm kiếm thông tin trong một danh sách siêu dài. Khi đang tìm kiếm, thì ấn vào nút Huỷ tìm kiếm, hoặc thay đổi sang từ khoá tìm kiếm khác.
- Mở form nhập và nhập thông tin rồi đóng lại nhưng không ấn nút Lưu. Hoặc mở form nhập thông tin, rồi mở pop-up từ form đó, đóng form đó bằng cách chuyển sang 1 trang khác khi pop-up vẫn đang mở.
- Tiến hành sửa thông tin sau đó ấn vào button “Restore” để kiểm tra sự khôi phục dữ liệu.
- Ấn vào nút refresh nhiều lần xảy ra slowdown bởi mỗi lệnh refresh đều được xử lý (chứ không phải chỉ xử lý lệnh cuối cùng)
- Các lỗi chức năng quan trọng và không quan trọng
- Lỗi về tính toàn vẹn dữ liệu
- Các vấn đề về khả năng sử dụng, đặc biệt là khi cố gắng hủy một số luồng
Tóm lại thì bạn phải nghiên cứu về sản phẩm bạn sẽ làm việc về những logic, các mục tiêu kinh doanh, và những kỳ vọng từ phía người dùng. Sau đó bạn bắt đầu tìm hiểu sự phụ thuộc của các module trong hệ thống và quan điểm người dùng về các tính năng của sản phẩm. Cuối cùng, bạn cần đưa mọi thứ lại với nhau, khám phá toàn bộ hệ thống với các tính năng nhỏ nhất của nó, v.v..
Kết Luận
Kiểm thử thăm dò là phương pháp hữu hiệu được sử dụng cả khi bắt đầu và kết thúc dự án. Nó giúp mình kiểm tra phần mềm một cách đầy đủ hơn. Mình thường sử dụng loại kiểm thử này cho mỗi dự án. Cùng với việc áp dụng lời khuyên từ các QA lành nghề hơn và kinh nghiệm của bản thân từ các dự án trước, mỗi lần thực hiện hành trình này lại trở nên hiệu quả hơn một chút. Chúc bạn tìm thấy được ý nghĩa của việc kiểm thử thăm dò và có những phương pháp kiểm thử riêng cho mình.
Happy testing!