Làm cách nào để tìm được bug ?

Là một software tester, một QA engineer, bạn cần phải nghĩ "in every minute" làm cách nào để tìm được lỗi cho application, cho web ... Đôi khi bạn coi trọng những lỗi làm crash hệ thống và chỉ cố tìm những lỗi đó. Tuy nhiên theo suy nghĩ của tôi thì chúng ta cũng cần phải cố gắng tìm ra những lỗi mà cực kỳ khó tìm (những lỗi chỉ xảy ra trong những môi trường đặc định, thực hiện hàng loạt chuỗi thao tác đặc định, tỷ lệ tái hiện thấp ...) và cả những lỗi mặc dù rất nhỏ nhưng "cần phải sửa" vì gây khó hiểu, khó thao tác, dễ hiểu nhầm ... cho người dùng. Tìm được những lỗi hiểm hay những lỗi giao diện kiểu như trên không phải là công việc đơn giản, cũng có nhiều thử thách cho tester, tuy nhiên chính kết quả tìm được những lỗi "hiểm" như thế sẽ mang lại cho tester rất nhiều niềm vui, động lực trong công việc test. Công việc test sẽ không còn nhàm chán và đơn điệu nữa. Bạn cũng sẽ đánh giá rất cao từ đồng nghiệp và leader. Tôi xin chia sẻ với các bạn kinh nghiệm của tôi để tìm được những lỗi như thế, những lỗi có vẻ khó tìm ra và khó tái hiện được.

Tôi đã từng thực hiện test một module trong dự án phát triển Search Engine. Tôi đã làm hầu hết các công việc của dự án bằng tay vì nó khá phức tạp để thực hiện tự động. Module đó bao gồm thống kê lưu lượng truy cập và doanh thu đạt được của các tổ chức và các nhà quảng cáo khác nhau. Việc test những report kiểu này luôn là một công việc khó. Khi tôi test một vài lần thì các con số hiển thị ra hết sức chính xác, tuy nhiên khi tôi cố gắng test lại thì nó lại chỉ ra những kết quả sai lệch. Điều tôi muốn nói với các bạn ở đây là hãy cố gắng tìm ra những bug "tiềm ẩn" trong hệ thống, những bug mà có thể chỉ xảy ra trong một vài trường hợp đặc biệt nhưng lại gây ảnh hưởng nghiêm trọng đến toàn hệ thống. Tôi xin đưa cho bạn một số lời khuyên của tôi để tìm được những bug như vậy.

  1. Cần phải hiểu thật kỹ về toàn bộ application hoặc module trước khi bạn bắt đầu thực hiện test.
  2. Chuẩn bị bộ testcase thật chất lượng trước khi bắt đầu test. Ý tôi muốn nói ở đây là bạn phải tự tạo áp lực cho chính mình, cố gắng hết mức để tạo bộ functional testcase thật chất lượng. Bộ testcase viết ra cần có những testcase check cả những trường hợp rủi ro của application, gây lỗi cho application.
  3. Chuẩn bị test data trước khi bắt đầu test.
    Data test bao gồm điều kiện test và các database record cần thiết, nếu phải test liên quan đến DB.
  4. Thực hiện test lặp lại với các môi trường test khác nhau.
  5. Cố gắng vạch ra thật chi tiết các kết quả kỳ vọng cần phải kiểm tra, và so sánh kết quả test thực tế với kết quả kỳ vọng.
  6. Khi bạn nghĩ bạn đã hoàn thành hầu như tất cả các điều kiện test và cảm thấy hơi mệt thì hãy chuyển sang thực hiện một vài monkey testing.
  7. Sử dụng test data pattern mà bạn đã thực hiện trước đây để phân tích, đối chiếu với những nội dung test hiện tại.
  8. Thử test lại bằng một vài testcase tiêu chẩn mà trước đây bạn đã từng thực hiện và đã tìm được bug từ những testcase đó trên application khác. Ví dụ như bạn đang test nhập dữ liệu vào text box, nhưng lại thử add vào đó đoạn html tag.
  9. Kinh nghiệm cuối cùng là bạn hãy cố gắng tìm bug, như thể bạn tesst chỉ để phá application.
  10. Hãy tham gia các cộng đồng testing, tìm biết thêm về các bug "khủng" mà các dev hay mắc phải trong quá trình code.
  11. Hãy chăm chỉ đọc file defect mà các đồng nghiệp bên cạnh và khách hàng đã log. Tôi tin rằng bạn sẽ học được rất rất nhiều kinh nghiệm test từ họ.
  12. Nếu có thể hãy xin tham gia các dự án có thể test sản phẩm từ giai đoạn sơ khai nhất, sản phẩm to với nhiều chức năng, logic... Đó là môi trường tốt để bạn học hỏi kinh nghiệm, cũng như phát huy được năng lực bản thân của mình.

Cuối cùng chúc các bạn thành công với sự nghiệp tìm bug. Mong nhận được ý kiến đóng góp của các bạn.

Nguồn tài liệu tham khảo. http://www.softwaretestinghelp.com/how-to-find-a-bug-in-application-tips-and-tricks/