Kiểm thử cơ bản so với kiểm thử sơ bộ: Sự khác biệt chính, ví dụ và khi nào nên sử dụng từng loại.
⚡ Tóm tắt nhanh
Kiểm thử cơ bản so với kiểm thử sơ bộ Đây là hai phương pháp kiểm thử phần mềm thiết yếu tập trung vào việc xác thực tính ổn định và tính hợp lý của hệ thống sau khi biên dịch. Cả hai đều nhằm mục đích ngăn chặn sự lãng phí công sức của bộ phận kiểm thử chất lượng bằng cách xác định các bản dựng không ổn định hoặc có lỗi ngay từ giai đoạn đầu của chu kỳ kiểm thử.

Bảng so sánh giữa kiểm thử khói và kiểm thử tính hợp lệ.
| Yếu tố | Kiểm tra khói | Kiểm tra vệ sinh |
|---|---|---|
| Mục tiêu chính | Kiểm tra tính ổn định của bản dựng | Kiểm tra tính năng của các thay đổi |
| Phạm vi | Phạm vi rộng (áp dụng toàn diện) | Hẹp (các mô-đun cụ thể) |
| Độ sâu | Kiểm tra nông cạn | Kiểm thử chuyên sâu (có mục tiêu) |
| Được thực hiện bởi | Nhà phát triển hoặc người kiểm thử | Chỉ dành cho người thử nghiệm |
| Xây dựng trạng thái | Các bản dựng ban đầu/chưa ổn định | Các bản dựng tương đối ổn định |
| Tài liệu | Đã được viết kịch bản và ghi chép lại. | Thường không có kịch bản sẵn |
| Tập hợp con thử nghiệm | Kiểm tra chấp nhận | Kiểm tra hồi quy |
| Tự động hóa | Rat khuyen khich | Có thể vận hành thủ công hoặc tự động. |

Xây dựng phần mềm là gì?
Nếu bạn đang phát triển một chương trình máy tính đơn giản chỉ bao gồm một tệp mã nguồn duy nhất, bạn chỉ cần biên dịch và liên kết tệp này để tạo ra một tệp thực thi. Quá trình này khá đơn giản. Tuy nhiên, thông thường thì không phải vậy. Một dự án phần mềm điển hình bao gồm hàng trăm hoặc thậm chí hàng nghìn tệp mã nguồn. Việc tạo ra 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 sử dụng phần mềm "xây dựng" để tạo ra một chương trình thực thi, và quá trình này được gọi là "Xây dựng phần mềm".
Kiểm tra khói là gì?
Kiểm thử khói (Smoke Testing) là một kỹ thuật kiểm thử phần mềm được thực hiện sau khi phần mềm được biên dịch xong để xác minh rằng các chức năng quan trọng của phần mềm hoạt động tốt. Nó được thực hiện trước khi bất kỳ kiểm thử chức năng hoặc kiểm thử hồi quy chi tiết nào được tiến hành. Mục đích chính của kiểm thử khói là loại bỏ một ứng dụng phần mềm có lỗi để nhóm QA không lãng phí thời gian kiểm thử một ứng dụng phần mềm bị lỗi.
Trong kiểm thử khói (Smoke Testing), các trường hợp kiểm thử được chọn bao gồm 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à kiểm thử toàn diện mà là đảm bảo các chức năng chính của ứng dụng phần mềm hoạt động chính xác. Ví dụ, một bài kiểm thử khói điển hình sẽ xác minh rằng ứng dụng khởi chạy thành công, giao diện người dùng (GUI) phản hồi nhanh, v.v.
Kiểm tra vệ sinh là gì?
Kiểm thử tính hợp lệ (Sanity testing) là một loại kiểm thử phần mềm được thực hiện sau khi nhận được bản dựng phần mềm, với những thay đổi nhỏ về mã hoặc chức năng, để xác định xem các lỗi đã được sửa chữa và không phát sinh thêm vấn đề nào khác do những thay đổi này. Mục tiêu là để xác định rằng chức năng được đề xuất hoạt động gần như đúng như mong đợi. Nếu kiểm thử tính hợp lệ thất bại, bản dựng sẽ bị từ chối để tránh lãng phí thời gian và nguồn lực vào việc kiểm thử sâu hơn.
Mục tiêu “không phải” là kiểm tra toàn diện chức năng mà là để xác định xem nhà phát triển đã áp dụng một số nguyên tắc hợp lý (sự tỉnh táo) trong quá trình sản xuất phần mềm hay chưa. Ví dụ, nếu máy tính khoa học của bạn cho kết quả 2 + 2 = 5! thì không cần thiết phải kiểm tra các chức năng nâng cao như sin 30 + cos 50.
Lịch sử và nguồn gốc của các thuật ngữ
Thuật ngữ “kiểm thử khói” (smoke testing) bắt nguồn từ ngành công nghiệp phần cứng và điện tử. Khi các kỹ sư cấp nguồn cho một bo mạch mới lần đầu tiên, họ sẽ quan sát xem nó có bốc khói hay không – một dấu hiệu tức thời của một lỗi cơ bản. Nếu không có khói xuất hiện, quá trình kiểm thử cơ bản có thể tiếp tục. Khái niệm này đã được các chuyên gia kiểm thử phần mềm áp dụng vào những năm 1980 để mô tả quá trình xác minh bản dựng ban đầu.
Mặt khác, "kiểm thử tính hợp lý" đề cập đến việc kiểm tra tính "hợp lý" hay tính logic của những thay đổi cụ thể. Thuật ngữ này nhấn mạnh việc xác minh rằng phần mềm hoạt động một cách hợp lý, logic sau khi sửa đổi — về cơ bản là đặt câu hỏi, "Điều này có hợp lý không?"
Kiểm thử khói so với kiểm thử cơ bản so với kiểm thử hồi quy
Hiểu cách ba loại kiểm thử này hoạt động cùng nhau là điều vô cùng quan trọng đối với một chiến lược đảm bảo chất lượng hiệu quả:
- Kiểm tra khói Bước đầu tiên là xác minh rằng bản dựng đủ ổn định để tiến hành thử nghiệm.
- Kiểm tra vệ sinh (Nếu có) thì nó xác nhận rằng các thay đổi hoặc sửa lỗi cụ thể hoạt động chính xác.
- Kiểm tra hồi quy Đây là phương pháp toàn diện nhất — nó đảm bảo rằng những thay đổi mới không làm hỏng bất kỳ chức năng hiện có nào.
Hãy hình dung nó như một cái phễu: Kiểm thử khói là phần mở rộng giúp nhanh chóng lọc ra các bản dựng không ổn định, kiểm thử cơ bản thu hẹp phạm vi tập trung vào các thay đổi cụ thể, và kiểm thử hồi quy cung cấp phạm vi bao quát toàn diện cho toàn bộ hệ thống.
Tình huống thực tế: Ứng dụng thương mại điện tử
Hãy xem xét một trang web thương mại điện tử nhận được bản cập nhật mới với bản vá lỗi giỏ hàng:
Kiểm tra khói: Bộ phận QA trước tiên kiểm tra xem trang web có tải được không, người dùng có thể đăng nhập, sản phẩm hiển thị chính xác, chức năng tìm kiếm hoạt động và quá trình thanh toán được bắt đầu. Quá trình này mất khoảng 15-30 phút.
Kiểm tra tính hợp lý: Sau khi vượt qua kiểm thử sơ bộ, người kiểm thử sẽ tập trung cụ thể vào chức năng giỏ hàng—thêm mặt hàng, cập nhật số lượng, xóa mặt hàng và xác minh các phép tính. Bài kiểm tra có mục tiêu này mất khoảng 30-60 phút.
Nếu cả hai đều đạt, nhóm sẽ tiến hành kiểm thử hồi quy toàn diện, quá trình này có thể mất vài giờ hoặc vài ngày tùy thuộc vào độ phức tạp của ứng dụng.
Khi nào nên sử dụng kiểm thử khói so với kiểm thử thông thường?
Sử dụng phương pháp kiểm thử khói khi:
- Phiên bản phần mềm mới được triển khai lên môi trường thử nghiệm.
- Bạn cần nhanh chóng xác minh các chức năng quan trọng như đăng nhập, điều hướng và luồng dữ liệu.
- Xác định xem bản dựng có đủ ổn định để tiến hành thử nghiệm chi tiết hơn hay không.
- Tích hợp vào các quy trình CI/CD để tự động xác minh bản dựng.
Sử dụng phương pháp kiểm thử tính hợp lý khi:
- Các thay đổi nhỏ về mã nguồn, sửa lỗi hoặc cải tiến tính năng được thực hiện.
- Xác minh rằng các thay đổi cụ thể hoạt động như mong muốn.
- Phiên bản này đã khá ổn định dựa trên các thử nghiệm trước đó.
Ưu điểm và Hạn chế
Ưu điểm
- Nhanh chóng xác định các vấn đề quan trọng: Cả hai phương pháp đều nhanh chóng xác định các vấn đề có thể làm gián đoạn quá trình thử nghiệm.
- Hiệu quả tài nguyên: Các nhóm không lãng phí thời gian vào việc thử nghiệm chi tiết các bản dựng bị lỗi nghiêm trọng.
- Phát hiện lỗi sớm: Việc phát hiện vấn đề sớm trong vòng đời sản phẩm sẽ giúp giảm chi phí sửa chữa tổng thể.
- Chu kỳ phát hành nhanh hơn: Quy trình kiểm soát hiệu quả cho phép lặp lại và triển khai nhanh hơn.
Hạn chế
- Phạm vi bảo hiểm hạn chế: Cả hai loại kiểm thử đều không cung cấp phạm vi bao quát toàn diện cho toàn bộ ứng dụng.
- Có thể bỏ sót các lỗi ẩn: Các vấn đề về tích hợp hoặc các trường hợp ngoại lệ có thể không được phát hiện.
- Không thể thay thế cho việc kiểm tra toàn diện: Chúng đóng vai trò như những bộ lọc nhanh, chứ không phải là sự thay thế cho kiểm thử hồi quy.
Thực hành tốt nhất để thực hiện
Dùng để kiểm tra khói:
- Tự động hóa các bài kiểm tra cơ bản (smoke test) và tích hợp chúng vào quy trình CI/CD cho mỗi bản dựng.
- Hãy tập trung bộ kiểm thử khói vào các chức năng quan trọng – đừng để nó trở nên quá lớn.
- Cập nhật các bài kiểm tra khói mỗi khi có tính năng quan trọng được thêm vào hoặc sửa đổi.
Để kiểm tra tính hợp lý:
- Luôn xem lại tài liệu về thay đổi trước khi tạo các kịch bản kiểm thử tính hợp lệ.
- Tập trung nỗ lực kiểm thử vào các khu vực đã thay đổi và các chức năng liền kề.
- Sử dụng các kỹ thuật kiểm thử thăm dò để phát hiện các vấn đề không lường trước được.
Những sai lầm phổ biến cần tránh
- Nhầm lẫn giữa hai loại bài kiểm tra: Kiểm tra sơ bộ (smoke testing) có phạm vi rộng và không chi tiết; kiểm tra tính hợp lý (sanity testing) thì chi tiết và chuyên sâu hơn.
- Bỏ qua bước kiểm tra khói để tiết kiệm thời gian: Điều này thường dẫn đến lãng phí công sức vào các bản dựng không ổn định.
- Thực hiện các bài kiểm tra khói quá toàn diện: Điều này làm mất đi mục đích của việc xác minh nhanh chóng.
- Tiếp tục tiến hành sau khi thất bại: Nếu bất kỳ loại kiểm tra nào thất bại, hãy dừng lại và khắc phục sự cố trước khi tiếp tục.
Các công cụ được đề xuất cho kiểm thử khói và kiểm thử tính hợp lệ
- Selenium Trình điều khiển Web: Tiêu chuẩn ngành cho tự động hóa kiểm thử ứng dụng web
- TestNG/JUnit: Các khung kiểm thử để tổ chức và thực hiện các bài kiểm thử tự động
- Các thao tác trên Jenkins/GitHub: Công cụ CI/CD để tự động hóa quá trình xây dựng và thực thi kiểm thử.
- Cypress: Khung kiểm thử đầu cuối hiện đại, thân thiện với nhà phát triển
- Postman/REST Assured: Công cụ kiểm thử API cho kiểm thử sơ bộ phía máy chủ (backend smoke tests)
