Kiểm thử khám phá giúp những người kiểm tra chất lượng và những người khác tham gia vào lĩnh vực thử nghiệm đảm bảo các hệ thống và ứng dụng hoạt động vừa đúng với mong muốn của người dùng vừa đảm bảo các trường hợp khác thường.
Kiểm thử khám phá bao gồm các hoạt động về khám phá, thăm dò, điều tra và học tập. Nó nhấn mạnh sự tự do cá nhân và trách nhiệm của người thử nghiệm cá nhân trong quá trình kiểm thử.
Kiểm thử khám phá (Exploratory Testing) là một phương pháp kiểm thử phần mềm mà các nhà kiểm thử sử dụng để khám phá, tìm kiếm và kiểm tra các tính năng, lỗi hoặc vấn đề trong ứng dụng một cách tự do và không cần có kế hoạch kiểm thử trước đó. Trong kiểm thử khám phá, nhà kiểm thử sẽ tập trung vào việc tự do làm việc với ứng dụng như một người dùng thực tế và cố gắng tìm ra lỗi và vấn đề mà không cần tuân theo một kịch bản kiểm thử cụ thể.
Kiểm thử khám phá là một loại thử nghiệm trong đó các trường hợp thử nghiệm không được tạo ra từ trước, nhưng người thử nghiệm có thể kiểm tra hệ thống một cách nhanh chóng. Họ có thể ghi lại những ý tưởng về những cái cần kiểm tra trước khi thực hiện kiểm tra. Trọng tâm của kiểm tra khám phá tập trung nhiều hơn vào kiểm tra như một hoạt động "tư duy" khám phá những case mới mẽ không theo luồng hoạt động chính thống.
Bình thường thử nghiệm theo kịch bản, cần thiết kế các trường hợp thử nghiệm trước và sau đó tiến hành thực hiện thử nghiệm. Ngược lại, kiểm thử khám phá là một quá trình đồng thời, thiết kế thử nghiệm và thực hiện thử nghiệm được thực hiện cùng một lúc.
Thực thi thử nghiệm theo kịch bản thường là một hoạt động không suy nghĩ trong đó người kiểm tra thực hiện các bước kiểm tra và so sánh kết quả thực tế với kết quả mong đợi. Hoạt động thực hiện kiểm tra như vậy có thể được tự động hóa không đòi hỏi nhiều kỹ năng nhận thức.
Các đặc điểm của kiểm thử khám phá bao gồm:
Tính sáng tạo: Kiểm thử khám phá khuyến khích sự sáng tạo và đòi hỏi các nhà kiểm thử sử dụng trí tưởng tượng và khả năng suy luận để tìm ra các tình huống kiểm thử tiềm năng.
Không có kế hoạch trước: Trong kiểm thử khám phá, không có kế hoạch kiểm thử chi tiết trước. Nhà kiểm thử sẽ tự do thử nghiệm ứng dụng dựa trên kiến thức và kinh nghiệm của họ.
Không được tự động hóa: Kiểm thử khám phá thường không được tự động hóa. Thay vào đó, các nhà kiểm thử tập trung vào việc thử nghiệm bằng tay để phát hiện các vấn đề không thể thấy qua việc tự động hóa.
Ghi chép: Để đảm bảo tính toàn vẹn của quá trình kiểm thử, các nhà kiểm thử thường ghi chép các bước thực hiện và kết quả kiểm thử để có thể tái tạo các lỗi đã tìm thấy.
Sự khác nhau giữa thử nghiệm theo kịch bản và kiểm thử khám phá
Thử nghiệm theo kịch bản | Kiểm thử khám phá |
---|---|
Đưa ra từ yêu cầu | Đưa ra từ yêu cầu và khám phá trong quá trình thử nghiệm |
Xác định các trường hợp thử nghiệm trước khi quá trình thử nghiệm diễn ra | Xác định các trường hợp thử nghiệm trong quá trình thử nghiệm |
Mục đích để xác nhận thử nghiệm so với các yêu cầu | Mục đích để điều tra, tìm hiểu hệ thống hoặc ứng dụng |
Nhấn mạnh dự đoán và ra quyết định | Nhấn mạnh khả năng thích ứng và học tập |
Liên quan đến thử nghiệm đã được xác nhận | Liên quan đến điều tra |
Tập trung kiểm soát thử nghiệm | Tập trung cải tiến thiết kế thử nghiệm |
Kiểm soát bởi kịch bản | Kiểm soát bởi tâm trí của người kiểm thử |
Mặc dù xu hướng hiện nay trong kiểm thử phần mềm là thúc đẩy tự động hóa, tuy nhiên kiểm thự tự động cũng có giới hạn của nó. Kiểm thử khám phá, thăm dò là một cách suy nghĩ mới và thực sự cần thiết đối với người kiểm thử.
Trong giai đoạn đầu của vòng đời phát triển phần mềm, khi mà có sự thay đổi nhanh chóng của mã lập trình, việc sử dụng kiểm thử khám phá có thể có hiệu quả cao.
Chuẩn bị kiểm thử khám phá trải qua 5 giai đoạn chi tiết dưới đây và nó còn được gọi là quản lý kiểm tra dựa trên phiên:
a. Tạo một nguyên tắc phân loại lỗi (phân loại)
Việc phân loại này dựa vào các yếu tố sau:
b. Test charter: Điều lệ thử nghiệm
c. Timebox: Hộp thời gian
d. Đánh giá kết quả
e. Trao đổi
Điều quan trọng của cách thức thực hiện là lập tài liệu theo dõi những điều sau đây:
a. Dự đoán
Đoán được sử dụng để tìm một phần của chương trình có khả năng có nhiều lỗi hơn. Kinh nghiệm trước đây khi làm việc trên một sản phẩm / phần mềm / công nghệ tương tự giúp dự đoán tốt hơn
b. Sơ đồ kiến trúc và trường hợp sử dụng
Sơ đồ kiến trúc mô tả các tương tác và mối quan hệ giữa các thành phần và mô-đun khác nhau. Các trường hợp sử dụng cung cấp cho sự hiểu biết về việc sử dụng sản phẩm từ quan điểm của người dùng cuối. Kỹ thuật thăm dò có thể sử dụng các sơ đồ này và các trường hợp sử dụng để kiểm tra sản phẩm.
c. Khiếm khuyết quá khứ
Nghiên cứu các khiếm khuyết được báo cáo trong các bản phát hành trước giúp hiểu được các tính năng của phần mềm được dự kiến sẽ có các khiếm khuyết tối đa.
d. Xử lý lỗi
Xử lý lỗi là một phần của mã hóa thực hiện các hành động thích hợp trong trường hợp có lỗi. Kiểm thử khám phá có thể được thực hiện bằng các kịch bản khác nhau để kiểm tra xử lý lỗi.
e. Thảo luận
Kiểm thử khám phá cũng có thể được lên kế hoạch dựa trên sự hiểu biết về phần mềm trong các cuộc thảo luận và họp dự án.
f. Câu hỏi và danh sách kiểm tra
Những câu hỏi như thế là gì, khi nào, như thế nào, ai và tại sao có thể cung cấp manh mối cho việc kiểm tra phần mềm khám phá.
Để việc áp dụng kiểm thử khám phá một cách hiệu quả nhất, chúng ta nên tham khảo 1 số phương pháp sau:
Kiểm tra thăm dò giúp bạn thực hiện hệ thống như một người dùng trong khi chủ động tìm kiếm để xác định lỗi. Tập trung vào các mục tiêu này để tối đa hóa giá trị của các bài kiểm tra. Hãy nhớ rằng kiểm thử khám phá có thể bổ sung cho các phương pháp thử nghiệm khác để kiểm tra các hệ thống theo những cách khác nhau.
Không kiểm thử khám phá nếu bạn đang đi theo một kịch bản. Tuy nhiên, kiểm thử khám phá không có nghĩa là thử nghiệm mà không kiểm soát hoặc thực hành tốt. Ta vẫn cần lập kế hoạch kiểm tra trước. Lập kế hoạch giúp làm rõ các khía cạnh cụ thể của hệ thống mà bạn muốn kiểm tra bao gồm các yêu cầu dữ liệu đặc biệt hoặc mong muốn hệ thống.
Mục đích của kiểm thử khám phá không phải là phạm vi bảo đảm chất lượng, đây là việc tìm ra các khiếm khuyết và vấn đề trong hệ thống mà ta sẽ không tìm thấy thông qua các hình thức thử nghiệm khác. Thông thường những khiếm khuyết này phát sinh thông qua các trường hợp thử nghiệm biên, nhưng điều đó không có nghĩa là chúng có tác động thấp. Bản chất của kiểm thử khám phá là tập trung vào các bộ phận của hệ thống nằm ngoài mô hình sử dụng thông thường và ít có khả năng được kiểm thử kỹ càng
Thông thường, thử nghiệm khám phá cần kỹ năng và kinh nghiệm thử nghiệm cao hơn so với các kỹ thuật thử nghiệm khác. Hoạt động dựa vào kỹ năng của người thực hiện bài kiểm tra, chắc chắn rằng người thực hiện thử nghiệm khám phá là người giỏi nhất và đáng tin tưởng.
Hãy ghi lại rõ ràng về những gì bạn đã làm, cách bạn đã làm và những vấn đề bạn phát hiện ra. Điều này giúp ích cho việc tối ưu hóa quy trình trong tương lai.
Kiểm tra tự động kiểm tra hệ thống thực hiện theo nhu cầu đã xác định, kiểm tra thăm dò kiểm tra hệ thống thực hiện như người dùng có thể mong đợi. Do đó quan trọng là phối hợp cả hai loại thử nghiệm để đảm bảo các giá trị của cả kiểm thử khám phá và thử nghiệm tự động được thực hiện, ví dụ: khi kiểm thử khám phá tìm thấy lỗi, bạn có thể thêm thử nghiệm tự động để ngăn sự cố xảy ra lần nữa.
Kiểm tra hiệu năng và phi chức năng cũng có thể là thăm dò, ví dụ như theo dõi tải ngày càng tăng trên hệ thống hoặc đo thời gian cần sử dụng để hoàn thành đầy đủ từ đầu đến cuối. Mặc dù hiệu suất và các thử nghiệm phi chức năng khác có phạm vi hạn chế, chúng vẫn có thể được thăm dò
Chọn các kỹ thuật Kiểm tra thăm dò đáp ứng nhu cầu của bạn Chúng ta cần nghiên cứu kỹ thuật kiểm thử khám phá hiện tại; Thiết lập sự hiểu biết chung về các kỹ thuật sẽ sử dụng và chia sẻ điều này với tất cả các bên liên quan; Xác định phạm vi (bao gồm cả thời gian, quy trình và khi thử nghiệm sẽ được sử dụng); Đảm bảo hệ thống được xây dựng để hỗ trợ kiểm thử khám phá
Đừng nhầm lẫn giữa kiểm thử khám phá với thử nghiệm chấp nhận của người dùng
Sự chấp nhận của người dùng là một hoạt động thử nghiệm có thể được thực hiện theo cách kiểm thử khám phá. Đừng nhầm lẫn cách làm việc với loại thử nghiệm cần thiết.
Kiểm thử khám phá không phải là một giai đoạn của vòng đời phát triển; đó là một cách tiếp cận và kỹ thuật nên sử dụng trong suốt vòng đời của dự án. Ngay khi các module của một hệ thống đang được phát triển có một luồng có thể kiểm tra thông qua tham dò, bạn phải kiểm tra luồng đó.
Có nhiều công cụ khác nhau mà bạn có thể sử dụng để thực hiện kiểm tra khám phá, từ các công cụ ghi và ghi video hoàn toàn tự động, đến các công cụ lập kế hoạch, đến sơ đồ quy trình và mô tả tính năng với các kế hoạch thời gian đi kèm. Tuy nhiên, công cụ duy nhất bạn thực sự cần để thực hiện thử nghiệm khám phá là một cây bút và một ít giấy để ghi chép đánh dấu.
Các công cụ đều rất tốt, nhưng đừng bỏ qua việc bắt đầu thử nghiệm khám phá nếu bạn không có quyền truy cập vào chúng hay nói cách nôm na là nếu công cụ mà chưa thực sự cần thiết và không có tác dụng thì đừng dùng phí thời gian và tiền bạc. Khám phá tập trung chính bản thân con người là chính.
An cho một ví dụ cụ thể để các bạn dễ hình dung hơn nhé. Bên dưới là một form để Add Task.
Các case kiểm thử khám phá có thể là:
Trên đây là một số kiến thức về Kiểm thử khám phá mình đúc kết được và tham khảo dịch thêm từ những bài viết khác trên mạng, có thể chưa được đầy đủ hoặc sai sót. Các bạn có thể đóng góp ý kiến với mình ở dưới bình luận hoặc inbox riêng nhé.
Anh Tester
Đường dẫu khó chân vẫn cần bước đi
Đời dẫu khổ tâm vẫn cần nghĩ thấu