Get in touch
or send us a question?
CONTACT

Exploratory Testing – Khi Tester trở thành “thám tử” trong dự án Agile

1. Exploratory Testing là gì?

Nếu Test Case là những bản nhạc soạn sẵn (cứ thế mà chơi), thì Exploratory Testing giống như bạn đứng trên sân khấu… và improvise (ứng tấu).

👉 Nói ngắn gọn: Exploratory Testing là quá trình tester vừa học, vừa test, vừa thiết kế test case trong lúc thực thi.
Không có kịch bản cứng, mà là tư duy, sự sáng tạo, và kỹ năng quan sát.

Trong Agile, nơi mọi thứ thay đổi xoành xoạch, Exploratory Testing chính là “vũ khí bí mật” giúp tester:

  • Tìm ra bug nhanh, đặc biệt là bug “khó nhằn” mà test case scripted không bắt được.
  • Học nhanh về hệ thống mới.
  • Thử nghiệm những kịch bản “thực tế như người dùng” (vì người dùng thật sự đâu có đọc test case trước khi click loạn xạ 😆).

2. Kỹ thuật trong Exploratory Testing

Đừng nghĩ exploratory là “test lung tung”. Nó có phương pháp hẳn hoi đấy.

🔹 2.1. Session-Based Testing (SBT)

  • Tester dành 60–120 phút cho một “phiên thám hiểm”.
  • Có mục tiêu rõ ràng (vd: “Kiểm tra chức năng tìm kiếm với từ khóa dài bất thường”).
  • Kết thúc session → báo cáo lại bug và ghi chú phát hiện.

🔹 2.2. Heuristics & Mnemonics (Các mẹo nhớ để test sáng tạo)

Ví dụ kinh điển: SFDPOT (Structure, Function, Data, Platform, Operations, Time).

  • Structure: Cấu trúc UI có hợp lý không?
  • Function: Chức năng chạy đúng chưa?
  • Data: Xử lý input xấu thế nào?
  • Platform: Chạy trên mobile, tablet ra sao?
  • Operations: Người dùng vận hành hằng ngày có ổn không?
  • Time: Ứng dụng chạy ổn sau 3h liên tục?

🔹 2.3. Tours (chuyến tham quan)

  • Money Tour: Test các flow đem lại tiền (checkout, payment).
  • Landmark Tour: Test các tính năng chính, nổi bật.
  • Saboteur Tour: Cố tình phá hoại (xóa data, spam click) để xem app trụ nổi không.

3. Tư duy cần có khi làm Exploratory Testing

Đây là “món ăn tinh thần” của tester Agile. Bạn cần:

  • Curiosity (tò mò như Sherlock Holmes 🕵️): Không dừng lại ở việc “nó chạy được”, mà phải hỏi “nếu tôi làm khác đi thì sao?”.
  • Critical Thinking (tư duy phản biện): Luôn nghi ngờ rằng: “Có bug ở đây mà mình chưa thấy?”.
  • User-Centric (lấy người dùng làm trung tâm): Hãy nhập vai ông bà cô chú “không rành công nghệ” thử bấm nút. Nhiều bug bất ngờ xuất hiện.
  • Creativity (sáng tạo): Không ngại thử cách điên rồ – copy-paste 10.000 ký tự, mở 20 tab login cùng lúc…

4. Ví dụ minh họa trong Agile Project

Hãy tưởng tượng team Agile vừa build xong chức năng tìm kiếm sản phẩm cho website thương mại điện tử.

  • Test case scripted:
    • Nhập từ khóa “áo sơ mi” → kết quả hiển thị danh sách áo sơ mi.
    • Nhập từ khóa không tồn tại → hiển thị “Không tìm thấy”.

→ OK, passed.

  • Exploratory Testing:
    • Nhập từ khóa với ký tự đặc biệt: @@@@ → app crash ❌
    • Nhập 10.000 ký tự → server timeout ❌
    • Dùng ký tự tiếng Nhật/Trung → hiển thị ô vuông ❌
    • Search trong khi mất kết nối internet → app treo ❌

👉 Kết quả: Exploratory Testing tìm ra 4 bug chỉ trong 15 phút – thứ mà scripted test chưa nghĩ tới.


5. Ứng dụng trong Agile project

Trong Agile, tester thường bị “kẹp” giữa sprint ngắn, requirement thay đổi, test case chưa kịp viết xong.

Vậy nên, Exploratory Testing thường được áp dụng:

  • Cuối sprint: Khi team muốn nhanh chóng rà bug “ngoài kế hoạch” trước release.
  • Trong story mới: Khi feature còn ít tài liệu, exploratory giúp hiểu sản phẩm nhanh.
  • Song song automation: Automation lo “regression khô khan”, exploratory lo “nghịch ngợm sáng tạo”.

Một số team Agile còn đưa Exploratory Testing vào Definition of Done:

“User story chỉ được coi là hoàn thành khi đã qua ít nhất một phiên exploratory test.”


6. Tips để Exploratory Testing hiệu quả

  • Luôn đặt charter (mục tiêu) cho mỗi session, đừng test lan man.
  • Ghi chú ngay trong lúc test (dùng mindmap, note, tool như XMind, TestRail, hoặc đơn giản là Google Doc).
  • Pair testing 👯: Tester + Dev cùng test để vừa khám phá vừa học code logic.
  • Luôn báo cáo kết quả sau session (bug + insight + idea).

7. Kết

Exploratory Testing không thay thế scripted test, mà bổ sung cho nó.
Nếu scripted test là “lưới an toàn”, thì exploratory test là “cái đèn pin soi góc khuất”.

Tester giỏi không chỉ chạy checklist, mà còn biết nghi ngờ, sáng tạo, và nhập vai người dùng.
Và đôi khi, bug lớn nhất lại nằm ở nơi mà chẳng có test case nào từng dự đoán được.