Hay còn gọi là Kiểm thử khói, là một loại kiểm thử phần mềm nhanh chóng, tập trung vào việc xác minh các chức năng cốt lõi và quan trọng nhất của ứng dụng có hoạt động ổn định hay không. Mục đích chính là để kiểm tra xem bản dựng (build) mới của phần mềm có đủ “lành lặn” để tiếp tục các giai đoạn kiểm thử chuyên sâu hơn hay không.
Mục đích của Smoke Testing
- Tìm lỗi sớm: Nhanh chóng phát hiện các lỗi nghiêm trọng, ví dụ như ứng dụng bị treo, không thể đăng nhập, hoặc các chức năng cốt lõi không hoạt động.
- Tiết kiệm thời gian và chi phí: Ngăn chặn việc lãng phí tài nguyên của đội kiểm thử khi phải làm việc trên một bản dựng không ổn định.
- Đảm bảo chất lượng ban đầu: Xác minh rằng các tính năng chính đã được triển khai đúng cách và sẵn sàng cho các giai đoạn kiểm thử tiếp theo.
Ưu điểm của Smoke Testing
- Giúp phát hiện lỗi và khiếm khuyết của phần mềm sớm, ngay trong giai đoạn đầu thử nghiệm để từ đó tìm cách khắc phục sớm các vấn đề, tránh việc lỗi lan rộng và ảnh hưởng nghiêm trọng đến sản phẩm.
- Hạn chế rủi ro phát sinh khi tích hợp nhiều tính năng phần mềm, đảm bảo rằng các tính năng quan trọng hoạt động chính xác trước khi tích hợp các tính năng khác.
- Giúp nâng cao chất lượng phần mềm.
- Giúp tiết kiệm thời gian và công sức cho người thử nghiệm và bộ phận QA.
- Cho phép phát hiện và khắc phục lỗi mới cũng như lỗi hồi quy. Điều này giúp đảm bảo rằng các lỗi đã được sửa chữa không tái xuất hiện trong quá trình phát triển phần mềm.
- Có thể được tự động hóa, giảm sự can thiệp thủ công, từ đó, giúp tăng hiệu suất làm việc.
Nhược điểm của Smoke Testing
- Tập trung vào các chức năng quan trọng nhưng không đảm bảo kiểm tra toàn bộ các chức năng chi tiết. Do đó, quy trình có thể bỏ qua các lỗi nhỏ mà chỉ có thể được phát hiện thông qua các bài thử nghiệm chi tiết.
- Vì số lượng thử nghiệm trong Smoke Testing ít, nên không thể kiểm tra toàn bộ các khía cạnh và chức năng của phần mềm.
Vai trò của Smoke Testing trong kiểm thử phần mềm
- Hiệu quả trong việc phát hiện sớm các bug
- Một trong những ưu điểm quan trọng của Smoke Testing là khả năng phát hiện và sửa tới 80% lỗi mà người dùng cuối có thể gặp phải. Nguyên tắc Pareto 80/20 sẽ được áp dụng trong trường hợp này, nghĩa là khoảng 80% lỗi của phần mềm có thể được phát hiện ra thông qua việc kiểm tra những chức năng mang tính cần thiết và quan trọng.
- Với số lượng cần testing ít hơn tổng số test case được đưa ra, Smoke Testing sẽ tập trung vào những thành phần thiết yếu và các bản thử nghiệm có khả năng phát hiện lỗi nhiều nhất. Điều này giúp tiết kiệm thời gian và công sức, đồng thời, gia tăng mức độ đáng tin cậy trong việc tìm lỗi sai của phần mềm.
- Nâng cao hiệu quả của đội QA
- Việc chạy một bộ test suite lớn trong quá trình kiểm thử có thể phí phạm thời gian và công sức của đội QA. Nếu phần lớn các vấn đề có thể được phát hiện và xử lý thông qua Smoke Testing, thì việc sử dụng Smoke Testing sẽ giúp tiết kiệm thời gian xử lý công việc để đội QA tập trung vào các vấn đề quan trọng hơn.
- Thay vì dành thời gian xử lý bộ test case lớn, đội QA có thể dành công sức đó để thực hiện các phần test khác hoặc bảo trì các bộ công cụ kiểm thử tự động. Điều này giúp nâng cao hiệu quả và hiệu suất làm việc của đội QA cũng như tạo ra một quy trình kiểm thử tự động có khả năng hoạt động mạnh mẽ hơn.
- Nhanh chóng khắc phục bug mới và bug hồi quy
- Một ưu điểm đáng kể khác của Smoke Testing đó là khả năng nhanh chóng khắc phục các lỗi mới và lỗi hồi quy. Nếu có lỗi được phát hiện trong quá trình Smoke Testing, nhóm QA có thể ưu tiên xử lý và phân tích nguyên nhân gốc rễ sớm hơn. Điều này giúp giảm thiểu thời gian chờ đợi kết quả của toàn bộ test suite, hỗ trợ đội QA mau chóng tìm cách khắc phục các vấn đề quan trọng nhanh nhất có thể.
- Nhờ có độ phủ cao và mức can thiệp hệ thống không sâu, Smoke Testing có thể xác định các lỗi cơ bản và quan trọng từ giai đoạn đầu của quy trình kiểm thử. Sau khi xử lý các lỗi này, đội phát triển có thể tiếp tục với việc kiểm thử hồi quy để tìm ra những lỗi khác và đảm bảo rằng ứng dụng hoạt động một cách ổn định và chất lượng.
- Nuôi dưỡng đội QA với năng suất cao và hài lòng hơn
- Khi đội QA dựa vào kết quả của Smoke Testing để làm việc, họ sẽ tiết kiệm được thời gian và công sức trong quá trình kiểm tra các chức năng quan trọng của phần mềm và tìm ra các lỗi quan trọng. Điều này giúp tăng năng suất và hiệu quả của đội QA. Vì thông qua đó, họ có thể tập trung vào các khía cạnh khác của công việc, chẳng hạn như kiểm thử hồi quy hoặc phát triển các công cụ tự động hóa.
- Ngoài ra, nếu đội QA đảm bảo rằng các bản build đã vượt qua Smoke Testing, họ sẽ có mức độ hài lòng cao hơn với công việc của mình. Điều này có thể khiến họ cảm thấy tự tin và thành công hơn trong việc đảm bảo chất lượng của phần mềm, từ đó, góp phần quan trọng vào sự thành công của dự án.
Quy trình thực hiện Smoke Testing
Bước 1: Nhóm phát triển triển khai các hồ sơ thử nghiệm và gửi cho nhóm QA.
Bước 2: Kỹ thuật viên QA sẽ sử dụng các thông tin từ các tài liệu thử nghiệm để thiết kế các trường hợp cần test. Những test case này phải nhằm mục đích đảm bảo các chức năng quan trọng được kiểm tra kỹ càng.
Bước 3: Một bộ thử nghiệm nhỏ sẽ được tạo ra, bao gồm một số bài kiểm tra Smoke Testing tích hợp với nhau. Bộ thử nghiệm này sẽ phải đủ số lượng bài kiểm tra và phải tập trung kiểm tra những yếu tố quan trọng một cách toàn diện.
Bước 4: Để tăng hiệu suất và tiết kiệm thời gian, các bài kiểm tra trong Smoke Testing thường được tự động hóa. Các công cụ và khung cài đặt sẵn có có thể được sử dụng để thực hiện tự động hóa các bài kiểm tra.
Bước 5: Các trường hợp thử nghiệm được thực hiện và môi trường thử nghiệm được dọn dẹp để chuẩn bị cho các test case tiếp theo. Điều này có thể bao gồm các bước như dừng máy chủ, xóa tệp tin hoặc làm trống cơ sở dữ liệu.