Phân biệt Smoke Testing và Sanity Testing
Smoke Testing và Sanity Testing là những dạng kiểm thử bị hiểu sai nhiều nhất trong kiểm thử phần mềm. Có một lượng lớn tài liệu về chủ đề này, nhưng hầu hết chúng đều khó hiểu. Bài viết sau này sẽ giúp bạn phân biệt được 2 khái niệm này.
1. Software Build là gì?
Nếu bạn đang phát triển một phần mềm đơn giản chỉ bao gồm một tệp mã nguồn, bạn chỉ cần biên dịch và liên kết tệp này và tạo một chương trình thực thi tệp. Quá trình này rất đơn giản. Nhưng trong thực tế, trường hợp này không xảy ra. Một dự án phần mềm thông thường bao gồm hàng trăm hoặc thậm chí hàng ngàn tệp mã nguồn. Tạo một chương trình thực thi từ các tệp nguồn này là một nhiệm vụ phức tạp và tốn thời gian.
Bạn cần build phần mềm để tạo chương trình thực thi và quá trình này được gọi là Software Build.
2. Smoke Testing là gì?
Smoke Testing là một loại kiểm thử phần mềm được thực hiện sau khi xây dựng phần mềm để xác định rằng các chức năng quan trọng của chương trình đang hoạt động tốt. Nó được thực thi trên bản build, trước kiểm thử chức năng hoặc kiểm thử hồi quy. Mục đích là để loại bỏ ứng dụng phần mềm có nhiều lỗi, để nhóm QA không lãng phí thời gian cài đặt và kiểm thử ứng dụng phần mềm.
Bài viết này được đăng tại [free tuts .net]
Trong Smoke Testing, các trường hợp kiểm thử đã chọn bao gồm các chức năng hoặc thành phần quan trọng nhất của hệ thống. Mục tiêu không phải là để thực hiện kiểm thử toàn diện, mà là để xác minh rằng các chức năng quan trọng của hệ thống đang hoạt động tốt.
Ví dụ: một Smoke Testing điển hình sẽ là - Xác minh rằng ứng dụng khởi động thành công, kiểm thử xem GUI có đáp ứng được yêu cầu hay không, v.v.
3. Sanity testing là gì?
Sanity testing là một loại Kiểm thử phần mềm được thực hiện sau khi nhận bản build của phần mềm, với các thay đổi nhỏ trong code hoặc chức năng, để xác định rằng các lỗi đã được sửa và không có lỗi nào được đưa ra do những thay đổi này nữa. Mục tiêu là để xác định rằng các chức năng được đề xuất hoạt động như mong đợi. Nếu Sanity testing không thành công, bản build sẽ không được chấp nhận để tiết kiệm thời gian và chi phí kiểm thử.
Mục tiêu là không xác minh kỹ lưỡng chức năng mới nhưng để xác định rằng nhà phát triển đã áp dụng một số tính toán hợp lý trong khi sản xuất phần mềm.
4. Sự khác biệt chính giữa Smoke Testing và Sanity testing
Sự khác biệt chính giữa Smoke Testing và Sanity Testing thể hiện trong sơ đồ sau:
Smoke Testing | Sanity Testing |
Smoke Testing được thực hiện để xác định rằng các chức năng quan trọng của chương trình đang hoạt động tốt | Sanity Testing được thực hiện để kiểm thử các chức năng hay lỗi mới đã được sửa |
Mục tiêu của Smoke Testing là xác minh tính ổn định của hệ thống để tiến hành kiểm thử nghiêm ngặt hơn | Mục tiêu của Sanity testing là xác minh tính hợp lý của hệ thống để tiến hành kiểm thử nghiêm ngặt hơn |
Smoke Testing được thực hiện bởi các developers hoặc tester | Sanity Testing thường được thực hiện bởi tester |
Smoke Testing thường có tài liệu hoặc kịch bản | Sanity Testing thường không có tài liệu hoặc kịch bản |
Smoke Testing là một tập hợp con của kiểm thử chấp nhận (Acceptance testing) | Sanity Testing là một tập hợp con của Kiểm thử hồi quy (Regression testing) |
Smoke Testing kiểm thử toàn bộ hệ thống từ đầu đến cuối | Sanity Testing chỉ kiểm thử thành phần đặc biệt trong toàn bộ hệ thống |
Smoke Testing giống như kiểm tra tổng quát | Sanity Testing giống như kiểm tra chuyên sâu |
5. Điểm cần lưu ý
- Cả Sanity Testing và Smoke Testing đều là những cách để tránh lãng phí thời gian và công sức bằng cách nhanh chóng xác định nếu một ứng dụng có quá nhiều lỗi sẽ không được đưa sang giai đoạn kiểm thử tiếp theo.
- Sanity testing còn được gọi là Kiểm thử hồi quy (Regression testing).
- Smoke Testing được thực hiện trên một bản build cụ thể còn được gọi là kiểm thử xác minh bản build.
- Một trong những thói quen tốt là tiến hành tạo các bản build hàng ngày và thực hiện Smoke Testing trong các dự án phần mềm.
- Cả Smoke Testing và Sanity Testing đều có thể được thực hiện thủ công hoặc sử dụng một công cụ tự động hóa. Khi các công cụ tự động được sử dụng, kiểm thử thường được bắt đầu bởi cùng một quá trình tạo ra bản build.
- Theo nhu cầu kiểm thử, bạn có thể phải thực hiện cả Smoke Testing và Sanity Testing trong bản build phần mềm, trước tiên bạn sẽ thực hiện các Smoke Testing và sau đó tiếp tục với Sanity Testing. Trong ngành công nghiệp phần mềm, các trường hợp kiểm thử Sanity Testing thường được kết hợp với các trường hợp Smoke Testing để tăng tốc độ thực hiện kiểm thử. Do đó, hai thuật ngữ này thường bị nhầm lẫn và được sử dụng thay thế cho nhau.