1) Ad - Hoc Testing là gì ?
Bạn kiểm thử phần mềm dựa theo kinh nghiệm hoặc " tùy hứng" - không theo một kế hoạch hoặc một tài liệu nào thì đó là bạn đang kiểm thử theo Ad-Hoc testing
2) Đặc điểm của kỷ thuật Ad-Hoc testing
- Ad-hoc testing là phương pháp kiểm thử phần mềm được thực hiện một cách rất ngẫu hứng, không theo bất kỳ một kế hoạch hay tài liệu nào. Và nó cũng dự định chỉ được chạy một lần, trừ khi có lỗi xảy ra.
=> Kiểm thử viên có thể tùy hứng, tha hồ test theo ý của mình, phán đoán các case hóng búa nhất, hay xảy ra lỗi nhất tuy nhiên không thể chắc chắn bao phủ hết các trường hợp và cũng không thể ghi nhớ hết các case mình đã test do đó rất khó để tái hiện lỗi. Tuy nhiên - ưu điểm của phương pháp kiểm thử này là nhanh chóng - không bị ràng buộc-Ad-hoc testing là phương pháp kiểm thử phần mềm ít chính thức nhất vì bị chỉ trích là không có cấu trúc, khó tái hiện lỗi vì không có test cases và khó kiểm soát .
- Ad-hoc testing yêu cầu kiểm thử viên thực hiện phải có kiến thức tốt về hệ thống, về ứng dụng đang test, vì bản thân cách kiểm thử này gần giống như là việc đoán lỗi.
- Ad-hoc testing được dùng nhiều nhất trong kiểm thử ứng dụng hoặc trò chơi. Bất cứ ứng dụng hay trò chơi nào cũng cần đến việc kiểm thử ngẫu nhiên nhằm đoán được đến mức tối đa hành vi của users mà test cases dù có viết kỹ thế nào cũng không thể lường được hết.
3. Cách tiếp cận Ad-hoc testing
Không có một định nghĩa hay cách tiếp cận chính xác nào cho Ad-hoc testing, vì đây là việc thực hiện kiểm thử một cách ngẫu hứng. Nó phụ thuộc vào kinh nghiệm, quan điểm, cách suy nghĩ của người thực hiện kiểm thử trước một hệ thống, một ứng dụng hay trò chơi. Các tester có kinh nghiệm có thể tìm ra nhiều khiếm khuyết của hệ thống thông qua Ad-hoc testing bởi họ hiểu được những scenario thông dụng và cái gì có thể gây ra lỗi cho hệ thống mà họ kiểm thử. Tuy nhiên, người muốn tìm hiểu về Ad-hoc testing cũng có thể tiếp cận nó qua những tóm tắt sau đây:3.1 Tiếp cận Ad-Hoc testing bằng cách -Tìm kiếm nhóm khiếm khuyết
Nhóm khiếm khuyết là một khu vực trên hệ thống, nơi có khả năng xảy ra số lượng lỗi lớn nhất. Khi thực hiện Ad-hoc testing, tester có thể thử kịch bản xem có thể tìm thấy lỗi ở những khu vực khác nhau hay không. Có người có thể tìm ra nhóm khiếm khuyết bằng cách phân tích lịch sử kiểm thử bằng test case đã được thực hiện trước đó, cũng có người tìm ra bằng cách dự đoán nơi có khả năng xảy ra lỗi.3.2 Chú ý Sự tác động qua lại giữa các bộ phận cấu thành
Sự tác động qua lại, ảnh hưởng lẫn nhau giữa các chức năng con trên hệ thống là một kịch bản thường thấy khi có lỗi xảy ra. Khi thực hiện Ad-hoc testing, tester có thể chỉ ra sự ảnh hưởng đó giữa các module với nhau, từ đó tìm ra những trạng thái bất bình thường của hệ thống.3.3 Suy nghĩ như một developer
Khi thực hiện Ad-hoc testing, nếu suy nghĩ như một developer, nhìn vào hệ thống và thử nghĩ xem mình có thể làm gì, làm như thế nào khi phải phát triển chức năng này, và tester sẽ biết được liệu có phần nào của chức năng hoặc một yêu cầu nào đó đối với chức năng đó có bị thiếu không. Sau đó kiểm tra code và có thể sẽ tìm ra lỗi.3.4 Phải hiểu rõ về hệ thống
Tester phải có sự hiểu biết thật rõ về hệ thống để đảm bảo người đó có thể nghĩ ra và thử nhiều kịch bản khác nhau đối với hệ thống. Ad-hoc testing yêu cầu càng nhiều kịch bản càng tốt, và càng thực hiện được nhiều kịch bản thì khả năng tìm ra lỗi càng cao.3.5 Kinh nghiệm của bản thân tester
Trong Ad-hoc testing, tester có kinh nghiệm bao giờ cũng tìm ra được nhiều lỗi hơn là người mới vì người đó đã từng test nhiều hệ thống khác nhau, cũng có thể là đã test những hệ thống tương tự nên thu thập được kinh nghiệm và sự hiểu biết để thực hiện Ad-hoc testing. Ghi chú, góp nhặt là phương pháp tốt để tích lũy kinh nghiệm3.6 Test theo session
Hãy kiểm thử ứng dụng hay một phần mềm theo từng phần, tức là mỗi lần chỉ test một chức năng, nó sẽ giúp cho tester có thể chú trọng và lý giải được những vấn đề xảy ra (nếu có).3.7 Học cách sử dụng những công cụ khác
Hiện nay có một số công cụ giúp tìm ra khiếm khuyết như công cụ debug, profilers hay task monitors, vì vậy học cách sử dụng những công cụ này có thể khiến cho vấn đề trở nên đơn giản hơn rất nhiều.3.8 Ghi lại những gì đã tìm được
Hãy ghi lại những lỗi, khiếm khuyết mà mình tìm ta được, ghi rõ cả chức năng, khi nào thì lỗi xảy ra…Những record này sẽ giúp cho developer và cả tester trong tương lai khi họ phát triển những hệ thống hoặc ứng dụng khác. Cũng nên ghi lại những lỗi do người khác tìm ra chứ không phải mình tìm ra, để có cơ sở tham khảo về sau.4. Kết luận:
Mặc dù thực hiện Ah-hoc testing là hoàn toàn ngẫu hứng nhưng người thực hiện cần phải có đủ kiến thức cũng như kinh nghiệm để phán đoán các kịch bản khác nhau có thể xảy ra với hệ thống hoặc ứng dụng, hoặc game đang cần test. Người thực hiện test cũng cần phải có hiểu biết chính xác và sâu sắc về đối tượng đang test để biết trường hợp nào là lỗi, khiếm khuyết do developer, do hành vi của người dùng, trường hợp nào là hạn chế của hệ thống (không thể khắc phục)…để có phương án cải thiện.(st)