Nội dung bài học
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ử.
1. Kiểm thử khám phá là gì?
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ử.
2. Nên sử dụng kiểm thử khám phá khi nào?
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.
- Các nhà phát triển có thể sử dụng kỹ thuật này để thực hiện các thử nghiệm đơn vị, trong khi những người thử nghiệm có thể làm quen với ứng dụng bằng cách sử dụng phương pháp thử nghiệm này.
- Kinh nghiệm thu được từ thử nghiệm khám phá có thể có giá trị trong việc chuẩn bị các kịch bản thử nghiệm và thực hiện thử nghiệm bổ sung trong các giai đoạn sau của chu kỳ phát triển phần mềm.
- Trong mô hình phát triển nhanh, có các chu kỳ scrum ngắn và có ít thời gian để phát triển thiết kế và kịch bản thử nghiệm chính thức. Kiểm thử khám phá rất phù hợp với mô hình này vì nó theo kịp các chu kỳ scrum có thời gian ngắn.
- Trong khi thực hiện kiểm tra thăm dò, kế hoạch kiểm tra được phát triển nhanh giúp tiết kiệm nhiều thời gian cho người kiểm tra. Vào cuối mỗi chu kỳ scrum, các kiểm thử khám phá quan trọng có thể được ghi lại cho các scrum tiếp theo.
3. Cách thức thực hiện kiểm thử khám phá
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:
- Phân loại các loại lỗi phổ biến được tìm thấy trong các dự án trước đây
- Phân tích nguyên nhân gốc phân tích các vấn đề hoặc lỗi
- Tìm các rủi ro và phát triển ý tưởng để kiểm tra ứng dụng.
b. Test charter: Điều lệ thử nghiệm
- Điều lệ thử nghiệm nên đề nghị gồm: Kiểm thử những gì; Làm thế nào để kiểm tra chúng;Những gì cần phải được xem xét
- Ý tưởng thử nghiệm là điểm khởi đầu của kiểm thử khám phá
- Điều lệ thử nghiệm giúp xác định cách người dùng cuối có thể sử dụng hệ thống
c. Timebox: Hộp thời gian
- Phương pháp này bao gồm một cặp người thử nghiệm làm việc cùng nhau không dưới 90 phút
- Không nên có bất kỳ thời gian bị gián đoạn trong phiên 90 phút đó
- Timebox có thể được kéo dài hoặc giảm 45 phút
- Phiên này khuyến khích người kiểm tra phản ứng và phản hồi từ hệ thống và chuẩn bị cho kết quả chính xác
d. Đánh giá kết quả
- Đánh giá các khuyết tật
- Rút ra bài học từ thử nghiệm
- Phân tích vùng phủ sóng
e. Trao đổi
- Tổng hợp kết quả đầu ra
- So sánh kết quả với điều lệ
- Kiểm tra xem có cần thử nghiệm bổ sung nào không
Đ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:
- Phạm vi kiểm tra - Cho dù chúng tôi đã ghi chú về phạm vi bảo hiểm của các trường hợp kiểm tra và cải thiện chất lượng của phần mềm
- Rủi ro - Những rủi ro nào cần được bảo hiểm và đó là những rủi ro quan trọng nào?
- Nhật ký thực hiện kiểm tra - Bản ghi về thực hiện kiểm tra
- Các vấn đề / Truy vấn - Ghi chú về câu hỏi và các vấn đề trên hệ thống
4. Phương pháp thực hiện kiểm thử khám phá
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á.
5. Ưu điểm của kiểm thử khám phá
- Thử nghiệm này hữu ích khi các tài liệu yêu cầu không có sẵn hoặc có sẵn một phần
- Nó liên quan đến quá trình Điều tra giúp tìm ra nhiều lỗi hơn so với thử nghiệm thông thường-
- Khám phá các lỗi thường bị bỏ qua bởi các kỹ thuật kiểm tra khác
- Giúp mở rộng trí tưởng tượng của người thử nghiệm bằng cách thực hiện ngày càng nhiều trường hợp thử nghiệm mà cuối cùng cũng cải thiện năng suất
- Thử nghiệm này đi sâu vào phần nhỏ nhất của ứng dụng và bao gồm tất cả các yêu cầu
- Thử nghiệm này bao gồm tất cả các loại thử nghiệm và nó bao gồm các tình huống và trường hợp khác nhau
- Khuyến khích sự sáng tạo và trực giác
- Tạo ra những ý tưởng mới trong quá trình thực hiện thử nghiệm
6. Nhược điểm của kiểm thử khám phá
- Vì các bài kiểm tra được xuất phát và thực hiện ngẫu nhiên, chúng không thể được xem xét trước và khó có thể chỉ ra bài kiểm tra nào phải được thực hiện.
- Kết quả kiểm thử phụ thuộc vào kiến thức, kỹ năng và kinh nghiệm của người kiểm tra.
- Làm quen với một ứng dụng cần có thời gian, do đó, có khả năng các lỗi bị bỏ sót nếu người kiểm tra có ít kiến thức về trang web hoặc ứng dụng
- Không phù hợp với ứng dụng cần thời gian thực hiện lâu
Phương pháp để sử dụng kiểm thử khám phá một cách hiệu quả
Để 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:
- Tập trung vào mục tiêu
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.
- Lập kế hoạch kiểm thử, nhưng không tạo kịch bản cho chúng
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.
- Đừng cố kiểm tra quá nhiều
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
- Kiểm thử khám phá là một hoạt động chuyên nghiệp
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.
- Lưu giữ một bản ghi rõ ràng về những việc đã làm
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.
- Sử dụng kiểm thử khám phá cùng với thử nghiệm tự động
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.
- Hiệu suất và phi chức năng có thể thực hiện kiểm thử khám phá
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 đó.
- Chắc chắn rằng mình có quyền sử dụng các công cụ hỗ trợ
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.
7. Ví dụ về kiểm thử khám phá
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à:
- Click nhanh nút Add Task xem nó có hiện nhiều dialog hay không
- Sau khi mở dialog đang nhập liệu thì click chuột ra ngoài xem có bị tắt dialog hay không
- Click chuột vào nút Save nhanh nhiều lần xem nó có lưu nhiều data của form hiện tại hay không
- Cái dropdown list khi click tắt mở nhanh nhiều lần có bị đơ hay không
- Khi click nút Close rồi click Add Task để mở lại dialog mà làm nhanh nhiều lần xem tốc độ và phản ứng ra sao
...v.v...
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
facebook.com/anhtester
Đườ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