Xin chào các bạn, Như các bạn cũng biết, mục đích chính của kiểm thử là cung cấp một sản phẩm chất lượng cho khách hàng. Để thực hiện được mục đích đó, QA sẽ thực hiện nhiều loại kiểm thử khác nhau.
Trong các loại kiểm thử, mình thích kiểm thử Adhoc (Adhoc testing) nhất, và cũng thường khuyến khích các bạn cùng team thực hiện adhoc khi có thời gian.
Vậy kiểm thử Adhoc là gì, có gì thú vị không, và thực hiện như thế nào? Nào chúng ta cùng tìm hiểu nhé.
Adhoc là một từ có nguồn gốc từ tiếng Latinh và có nghĩa là “cho điều này” hoặc “cho tình huống này”. Trong tiếng Anh, nó được dùng để mô tả một thứ gì đó được hình thành hoặc được sử dụng cho một mục đích tức thời, không có kế hoạch trước, hoặc để mô tả một cái gì đó không có tổ chức hay không có cấu trúc nào cả.
Kiểm thử Adhoc là một loại kiểm thử ngẫu hứng, không tuân theo bất kỳ quy trình chính thức nào như tài liệu yêu cầu của dự án, test plan, hoặc test case… và nó được thực hiện trên bất kỳ phần nào của ứng dụng. Đây là một loại phiên bản nhẹ của “đoán lỗi”, nghĩa là "đoán" nguồn lỗi có khả năng xảy ra nhất. Adhoc testing thường được sử dụng nhiều nhất trong kiểm thử ứng dụng hoặc game để có thể đoán đến mức tối đa hành vi của người dùng mà không thể nào được liệt kê hết trong test case. Adhoc testing chỉ có hiệu quả nếu người kiểm thử có đầy đủ kiến thức về hệ thống đang được kiểm thử.
Tại sao chúng ta cần thực hiện Adhoc testing?
Kiểm thử không phải là một quá trình đơn giản. Nó liên quan đến kiến thức về sự tương tác của người dùng. Nếu bạn đang làm việc với một sản phẩm trong đó có nhiều module liên kết với nhau, được hàng nghìn người dùng sử dụng, bạn không thể đoán hết người dùng sẽ sử dụng sản phẩm đó như thế nào. Khi sản phẩm được tung ra thị trường, khách hàng thường không sử dụng theo một trình tự nhất định hoặc cũng có khách hàng sử dụng một cách ngẫu nhiên do không biết cách sử dụng, và họ tìm thấy một số vấn đề trong quá trình sử dụng. Vì vậy, chúng ta cần thực hiện một vòng kiểm tra Adhoc một cách ngẫu nhiên để có thể tìm ra nhiều lỗi khác nhau của chương trình.
Hầu hết các công ty và nhóm kiểm thử thông minh hiện đang chạy các dự án quan trọng đều sắp xếp thời gian xác định cho kiểm thử Adhoc.
Khi nào chúng ta thực hiện Adhoc testing
Nếu thời gian cho phép, chúng ta tiến hành thử nghiệm Adhoc khi tất cả các loại kiểm thử chính thức, theo đúng quy trình đã được thực hiện. Tuy nhiên cũng có ý kiến cho rằng Adhoc testing có thể thực hiện tại bất kỳ thời điểm nào cho dù đó là bắt đầu, giữa hay cuối của dự án.
Tầm quan trọng của Adhoc testing
Mục tiêu chính của kiểm tra Adhoc là xác định bất kỳ sai sót nào thường bị bỏ qua khi sử dụng các phương pháp kiểm thử khác.
Thực hiện Adhoc testing sẽ giúp bạn:
- Xác định những sơ hở trong chiến lược kiểm thử của bạn.
- Tránh những thất bại tốn kém.
- Giúp phát hiện những điểm chưa hợp lý trong quá trình kiểm thử theo kịch bản.
- Giúp nhanh chóng phát hiện các sai sót.
Ví dụ về Adhoc testing
Tình huống 1
Hệ thống chỉ cho upload các file có định dạng là “.JPEG”, “.JPG”, “.PNG”. Thử tạo 1 file Excel hoặc 1 file Word sau đó đổi tên bằng cách thêm “.jpg” vào cuối tên file, và thử upload file đó.
- Nếu hệ thống đưa ra lỗi là "Loại file không hợp lệ" thì nó đang hoạt động như mong đợi.
- Nếu hệ thống cho phép tải file lên vì dựa trên “.jpg” ở cuối của tên file thì đó là bug.
Tình huống 2
Login bằng 1 user có quyền admin vào một màn hình Administration, copy URL. Sau đó paste URL đó vào một browser khác với thông tin của một user thường.
- Nếu user thường không thể view được màn hình Administration thì nó đang hoạt động như mong đợi.
- Nếu user thường có thể view được màn hình Administration thì đó là bug.
Tình huống 3
Giả sử chúng ta đang sử dụng hai trình duyệt khác nhau như Google Chrome và Mozilla Firefox và đăng nhập vào Garoon trên cả hai trình duyệt.
Sau đó, thay đổi mật khẩu trong trình duyệt Google Chrome và trong trình duyệt Mozilla Firefox, thực hiện một số hành động như post 1 comment.
- Nếu chuyển đến trang đăng nhập và yêu cầu điền lại thông tin đăng nhập vì thông tin đăng nhập đã được thay đổi trong một trình duyệt khác (Google Chrome), thì nó đang hoạt động như mong đợi.
- Nếu vẫn có thể post được comment mà không yêu cầu đăng nhập lại thì đó là bug.
Các loại Adhoc testing
Buddy Testing
Loại kiểm thử này được thực hiện bởi ít nhất nhất hai thành viên gồm 1 developer và 1 QA. Sau khi code xong một module và hoàn thành Unit test, developer và QA sẽ cùng nhau làm việc trên một module cụ thể để developer hiểu được quan điểm test của QA, nắm bắt tất cả các test case để có thể thay đổi thiết kế sớm trong trường hợp cần thiết. Đồng thời QA sẽ hiểu được thiết kế của module, giúp họ tránh được việc thiết kế các kịch bản không hợp lệ, và hướng đến thiết kế test case tốt hơn.
Pair Testing
Trong loại kiểm thử này, hai QA làm việc cùng nhau trên trên một module. Cả hai sẽ cùng suy nghĩ ra ý tưởng, cũng như chia sẻ kiến thức về sản phẩm và quan điểm test để tìm ra lỗi. Cả hai có thể chia sẻ công việc và tạo ra các tài liệu cần thiết trong quá trình kiểm thử.
Monkey Testing
Trong loại thử nghiệm này, người QA thực hiện kiểm thử ngẫu nhiên một vài chức năng với mục đích phá vỡ hệ thống. QA sẽ sáng tạo ra nhiều tình huống ngẫu nhiên, với các input ngẫu nhiên để tìm ra tất cả các lỗi, hay sự mâu thuẫn trong hành vi mà ở các hình thức kiểm thử khác không phát hiện ra được.
Cách thực hiện Adhoc testing hiệu quả
Nếu bạn không tiếp cận Adhoc testing bằng một cách thích hợp thì việc Adhoc có thể gây lãng phí thời gian. Dưới đây là một số gợi ý để bạn có thể thực hiện Adhoc một cách hiệu quả:
Kiến thức về sản phẩm
Yếu tố quan trọng nhất quyết định hiệu quả của Adhoc testing là người QA hiểu về sản phẩm như thế nào. Người QA thực hiện Adhoc test cần có kiến thức sâu rộng, hiểu biết cặn kẽ về sản phẩm và nhiều kinh nghiệm test đối với sản phẩm. Điều này sẽ giúp người QA có thể dự đoán lỗi thường xảy ra ở tính năng nào, khu vực nào và tìm ra được nhiều lỗi nhất có thể.
Tạo danh mục test
Dựa trên danh sách các tính năng cần kiểm tra, bạn hãy dành một vài phút để phân loại các tính năng đó và xác định cách kiểm tra. Với sản phẩm có nhiều tính năng thì người QA cần thực hiện phân loại để xác định cần tập trung trước vào những tính năng nào. Cần ưu tiên cho các chức năng mà khách hàng thường sử dụng và tương tác, vì nếu xảy ra lỗi nghiêm trọng hoặc nhiều lỗi ở các chức năng đó thì sẽ gây ảnh hưởng đến người dùng. Ngoài ra, bạn nên kiểm thử các tính năng người dùng dễ thấy nhất. Sau đó, bạn hãy xác định thứ tự ưu tiên của các tính năng và thực hiện kiểm tra theo thứ tự đã sắp xếp.
Tìm kiếm nhóm khiếm khuyết
Nhóm khiếm khuyết là khu vực trên hệ thống đang xảy ra bug nhiều nhất. Người QA phân tích để tìm ra nhóm khiếm khuyết dựa trên việc lịch sử phát hiện bug ở các giai đoạn test trước đó.
Lập kế hoạch để đưa ra định hướng để thực hiện Adhoc testing
Tuy loại Adhoc testing không dựa trên bất kì tài liệu nào nhưng nếu QA biết lên kế hoạch trong quá trình kiểm thử thì sẽ tăng tối đa độ bao phủ trong thời gian kiểm thử ngắn hơn.
Quan sát và ghi chép những gì đã tìm được
Nếu QA có thực hiện ghi chép ngắn gọn những tình huống, thao tác mình thực hiện và lỗi hay điểm bất thường mà mình phát hiện được thì sẽ dễ dàng cho việc đăng kí bug sau khi thực hiện Adhoc. Ngoài ra các lỗi tìm được trong Adhoc testing cần được ghi nhận lại để bổ sung vào bộ test case của kiểm thử chính thức. Các QA cần rút kinh nghiệm từ các lỗi được phát hiện từ Adhoc testing vì có thể do test case trước đó chưa bao phủ hết, để cải thiện chất lượng kiểm thử cho những chức năng hoặc đợt release sản phẩm sau.
Chú ý vào sự tác động giữa các module trong hệ thống Trong một sản phẩm có nhiều module thì kịch bản lỗi thường xảy ra ở những thao tác có sự tương tác, tác động qua lại giữa các module. Khi thực hiện Adhoc testing, QA cần hiểu và thực hiện thao tác tác động trên nhiều module để phát hiện ra lỗi còn tiềm ẩn.
Sáng tạo và có thể nghĩ ra những tình huống kiểm thử vượt trội
Nếu người QA có thể áp dụng các phương pháp sáng tạo khác nhau, có những ý tưởng đột phá, và khả năng phán đoán cao trong quá trình test thì có thể tìm thấy nhiều lỗi hơn so với chỉ kiểm thử theo tài liệu.
Biết các sử dụng các công cụ hỗ trợ kiểm thử
Để việc test dễ dàng, người QA cũng cần biết sử dụng các công cụ như debuggers, profiler, task monitors,vv..
Bài giới thiệu về Adhoc testing xin kết thúc ở đây. Hy vọng bạn có thể hiểu hơn về loại hình kiểm thử này và có thể thực hiện kiểm thử một cách hiệu quả trên sản phẩm của mình.
Cám ơn bạn đã theo dõi bài viết này, và hẹn gặp bạn ở những bài viết tiếp theo.