Kiểm tra khói là gì?
⚡ Tóm tắt thông minh
Kiểm thử khói (Smoke Testing) giúp xác định xem bản dựng mới có đủ ổn định để thử nghiệm hay không. Trang này giải thích khi nào nên chạy kiểm thử khói, ai nên chạy, chu trình hoạt động như thế nào và các bộ công cụ tự động kiểm soát các quy trình phân phối hiện đại ra sao.

Kiểm tra khói là gì?
Kiểm tra khói là một quy trình kiểm thử phần mềm nhằm xác định xem bản dựng phần mềm được triển khai có ổn định hay không. Smoke testing là sự xác nhận để nhóm QA tiến hành thử nghiệm phần mềm tiếp theo. Nó bao gồm một bộ thử nghiệm tối thiểu chạy trên mỗi bản dựng để kiểm tra các chức năng của phần mềm. Thử nghiệm khói còn được gọi là “Thử nghiệm xác minh bản dựng” hoặc “Kiểm tra độ tin cậy”.
Nói một cách đơn giản, kiểm thử khói (smoke testing) nghĩa là xác minh các tính năng quan trọng hoạt động tốt và không có lỗi nghiêm trọng nào trong bản dựng đang được thử nghiệm. Đó là một bài kiểm tra hồi quy nhỏ và nhanh chóng đối với các chức năng chính. Điều này giúp xác định xem bản dựng có lỗi hay không, để tránh việc tiếp tục thử nghiệm thêm trở nên lãng phí thời gian và nguồn lực.
So sánh Kiểm tra khói và vệ sinh
Tại sao chúng ta cần tiến hành thử nghiệm khói?
Kiểm thử khói đóng vai trò quan trọng trong phát triển phần mềm vì nó đảm bảo tính đúng đắn của hệ thống ngay từ giai đoạn đầu. Nhờ đó, chúng ta có thể tiết kiệm công sức kiểm thử. Chỉ sau khi hoàn thành kiểm thử khói, chúng ta mới bắt đầu kiểm thử chức năng.
- Tất cả những vấn đề gây cản trở trong quá trình xây dựng sẽ được xác định thông qua việc thực hiện thử nghiệm khói.
- Nhờ phương pháp kiểm tra bằng khói, hầu hết các khuyết tật được phát hiện ở giai đoạn đầu. phát triển phần mềm.
- Với thử nghiệm khói, chúng tôi đơn giản hóa việc phát hiện và sửa các lỗi lớn.
- Bằng cách kiểm tra khói, nhóm QA có thể tìm thấy các lỗi đối với chức năng ứng dụng có thể xuất hiện trong mã mới.
- Kiểm tra khói tìm thấy các khiếm khuyết nghiêm trọng lớn.
Ví dụ 1: Cửa sổ ghi nhật ký: Có thể chuyển sang cửa sổ tiếp theo với tên người dùng và mật khẩu hợp lệ khi nhấp vào nút gửi.
Ví dụ 2: Người dùng không thể đăng xuất khỏi trang web.
Khi nào chúng ta tiến hành kiểm tra khói?
Những lợi ích đó chỉ được hiện thực hóa nếu quá trình kiểm tra được thực hiện đúng lúc. Kiểm thử khói (Smoke Testing) được thực hiện bất cứ khi nào các chức năng mới của phần mềm được phát triển và tích hợp với bản dựng hiện có được triển khai trong môi trường QA/staging. Nó đảm bảo rằng tất cả các chức năng quan trọng đều hoạt động chính xác hay không. Sơ đồ bên dưới cho thấy cách một bản dựng được đưa đến môi trường QA trước khi quá trình kiểm thử khói bắt đầu.
Trong phương pháp kiểm thử này, nhóm phát triển triển khai bản dựng cho bộ phận QA. Một tập hợp con các trường hợp kiểm thử được chọn và chạy bởi các chuyên viên kiểm thử đối với các chức năng quan trọng của bản dựng. Chuỗi các trường hợp kiểm thử này được thiết kế để phát hiện các lỗi có trong bản dựng. Nếu các bài kiểm thử này đạt, nhóm QA sẽ tiếp tục với các bước tiếp theo. Thử nghiệm chức năng.
Bất kỳ lỗi nào cho thấy cần phải xử lý hệ thống lại cho nhóm phát triển. Bất cứ khi nào có thay đổi trong bản dựng, chúng tôi thực hiện Smoke testing để đảm bảo tính ổn định.
Ví dụ: -Nút đăng ký mới được thêm vào cửa sổ đăng nhập và bản dựng được triển khai với mã mới. Chúng tôi thực hiện thử nghiệm khói trên bản dựng mới.
Các bài kiểm tra sơ bộ (smoke test) đánh giá chất lượng bản dựng trước khi tiến hành các bài kiểm tra chính thức tiếp theo và được thiết kế để chứng minh tính ổn định của hệ thống và sự phù hợp với các yêu cầu. Mục tiêu chính là phát hiện sớm các vấn đề lớn. Một bản dựng bao gồm tất cả các tệp dữ liệu, thư viện, mô-đun có thể tái sử dụng, các thành phần kỹ thuật cần thiết để thực hiện một hoặc nhiều chức năng của sản phẩm.
Điều gì sẽ xảy ra nếu chúng ta không thực hiện kiểm tra khói (Smoke Testing)?
Nếu không tiến hành kiểm tra khói ở giai đoạn đầu, các lỗi có thể phát sinh ở giai đoạn sau, gây tốn kém chi phí sửa chữa. Khiếm khuyết Những lỗi phát hiện ở giai đoạn sau có thể gây cản trở nghiêm trọng, ảnh hưởng đến việc bàn giao sản phẩm.
Ai sẽ thực hiện việc kiểm tra khói?
Sau khi phát hành bản dựng sang môi trường QA, Kiểm tra khói được thực hiện bởi các kỹ sư QA/trưởng nhóm QA. Bất cứ khi nào có bản dựng mới, nhóm QA sẽ xác định chức năng chính trong ứng dụng để thực hiện thử nghiệm khói. Nhóm QA kiểm tra các showstopper trong ứng dụng đang được thử nghiệm.
Làm thế nào để thực hiện thử nghiệm khói?
Smoke testing thường được thực hiện thủ công mặc dù có khả năng thực hiện điều tương tự thông qua tự động hóa. Nó có thể khác nhau tùy theo tổ chức.
Kiểm tra khói thủ công
Kiểm thử khói được thực hiện để đảm bảo việc điều hướng các đường dẫn quan trọng diễn ra như mong đợi và không gây cản trở chức năng. Các trường hợp kiểm thử chức năng ưu tiên cao được lựa chọn và kiểm tra để tìm ra các lỗi nghiêm trọng trong hệ thống. Nếu kiểm thử thành công, chúng ta sẽ tiếp tục kiểm thử chức năng. Nếu kiểm thử thất bại, bản dựng sẽ bị từ chối và gửi lại cho nhóm phát triển để sửa chữa.
Nhóm QA lại bắt đầu kiểm thử sơ bộ (smoke testing) với phiên bản build mới. Kiểm thử sơ bộ được thực hiện trên bản build mới và sẽ được tích hợp với các bản build cũ để duy trì tính chính xác của hệ thống. Trước khi thực hiện kiểm thử sơ bộ, nhóm QA cần kiểm tra xem phiên bản build có chính xác hay không.
Kiểm thử khói bằng tự động hóa
Kiểm tra tự động hóa được sử dụng để Kiểm tra hồi quyTuy nhiên, chúng ta cũng có thể sử dụng một bộ các trường hợp kiểm thử tự động để chạy thử nghiệm Smoke Test. Với sự trợ giúp của các bài kiểm thử tự động, các nhà phát triển có thể kiểm tra bản dựng ngay lập tức, bất cứ khi nào có bản dựng mới sẵn sàng để triển khai.
Thay vì thực hiện kiểm tra lặp lại theo cách thủ công bất cứ khi nào bản dựng phần mềm mới được triển khai, các trường hợp kiểm thử khói được ghi lại sẽ được thực thi đối với bản dựng. Nó xác minh xem các chức năng chính có còn hoạt động bình thường hay không. Nếu thử nghiệm thất bại thì họ có thể sửa bản dựng và triển khai lại bản dựng ngay lập tức. Bằng cách này, chúng tôi có thể tiết kiệm thời gian và đảm bảo chất lượng xây dựng cho môi trường QA.
Sử dụng một công cụ tự động, kỹ sư kiểm tra ghi lại tất cả các bước thủ công được thực hiện trong quá trình xây dựng phần mềm.
Chu kỳ thử nghiệm khói
Sơ đồ dưới đây thể hiện quy trình thực hiện kiểm thử khói (Smoke Testing). Sau khi bản dựng được triển khai trong môi trường QA và các bài kiểm thử khói đều đạt, chúng ta sẽ tiến hành kiểm thử chức năng. Nếu bài kiểm thử khói thất bại, chúng ta sẽ dừng quá trình kiểm thử cho đến khi vấn đề trong bản dựng được khắc phục.
Các phương pháp tốt nhất để thiết kế các trường hợp kiểm thử khói
Hiểu được chu kỳ là một chuyện; tiếp tục duy trì...ping Yếu tố tạo nên sự tin cậy của bộ dụng cụ tạo khói lại là một yếu tố khác. Một bộ dụng cụ tạo khói chỉ xứng đáng được sử dụng khi nó nhỏ gọn, nhanh chóng và có thể lặp lại.
- Trước tiên hãy lập bản đồ các đường găng: Liệt kê các quy trình làm việc giúp sản phẩm có thể sử dụng được về mặt thương mại, chẳng hạn như đăng nhập, tìm kiếm, nhập dữ liệu, thanh toán và đăng xuất. Nếu một trong số đó bị lỗi, bản dựng sẽ không có giá trị đối với người thử nghiệm.
- Giữ cho phòng suite có diện tích nông nhưng rộng: Hãy chỉ kiểm tra sơ lược từng module chính thay vì đi sâu vào từng module riêng lẻ. Giá trị biên, dữ liệu âm và cách diễn đạt thông báo lỗi thuộc về kiểm thử chức năng, chứ không phải ở đây.
- Giới hạn thời gian thực thi: Hầu hết các đội giữ nhịp chạy từ mười đến mười lăm phút và giới hạn thời gian tập luyện trong khoảng hai mươi đến ba mươi phút. trường hợp thử nghiệmMột đoạn đường chạy mất một giờ không còn là cổng kiểm soát nữa mà trở thành điểm nghẽn.
- Hãy chạy cùng một trường hợp trên mọi bản dựng: Tính nhất quán cho phép bạn quy kết lỗi cho mã nguồn chứ không phải do thay đổi lựa chọn kiểm thử.
- Loại bỏ các trường hợp không ổn định và phụ thuộc nhiều vào các thư viện khác nhau: Một trường hợp vượt qua và thất bại mà không cần thay đổi mã sẽ phá hủy niềm tin vào cổng kiểm thử. Hãy tạo các đối tượng giả lập hoặc mô phỏng các dịch vụ bên thứ ba không ổn định trong trường hợp này. khung tự động hóa kiểm thử cho phép.
- Ghi lại một phán quyết rõ ràng: Mỗi trường hợp cần một kết quả mong đợi duy nhất để bản dựng có thể được chấp nhận hoặc từ chối mà không cần tranh luận.
- Cập nhật phiên bản bộ phần mềm cùng với bản dựng: Lưu trữ các trường hợp lỗi (smoke cases) trong cùng kho lưu trữ với mã ứng dụng để đảm bảo cổng kiểm thử luôn khớp với phiên bản đang được kiểm thử.
RevXem xét lại bộ công cụ trong mỗi bản phát hành: loại bỏ các trường hợp cho các tính năng không còn quan trọng và thêm các quy trình làm việc mới quan trọng.
Kiểm thử sơ bộ trong quy trình CI/CD
Một bộ kiểm thử được thiết kế theo cách này đủ rẻ để chạy trên mỗi lần commit, điều mà quy trình phân phối hiện đại yêu cầu. tích hợp liên tục máy chủ chẳng hạn như Jenkins Công cụ này biên dịch mã, triển khai lên môi trường thử nghiệm, và sau đó kích hoạt bộ kiểm thử sơ bộ (smoke suite) như giai đoạn tự động đầu tiên. Nếu thành công, mã sẽ được chuyển sang giai đoạn kiểm thử chức năng và hồi quy, trong khi nếu thất bại, quy trình sẽ bị lỗi và thông báo cho nhà phát triển thực hiện commit trong vòng vài phút.
Thông thường có hai bước kiểm tra. Bước kiểm tra trước khi hợp nhất (pre-merge run) bảo vệ nhánh chính bằng cách xác thực mọi yêu cầu kéo (pull request), và bước kiểm tra sau khi triển khai (post-deployment run) xác nhận rằng môi trường đã triển khai có thể truy cập được và được cấu hình chính xác. Các nhóm thực hành triển khai liên tục thường thêm bước kiểm tra thứ ba, được tinh chỉnh, đối với môi trường sản xuất ngay sau khi phát hành.
Vì quy trình thực thi bộ kiểm thử nhiều lần mỗi ngày, các trường hợp kiểm thử phải không tương tác, tự làm sạch và độc lập. Bất kỳ trường hợp nào chờ quyết định của con người hoặc để lại dữ liệu kiểm thử sẽ làm tắc nghẽn quy trình.
Ưu điểm của thử nghiệm khói
Dưới đây là một số lợi ích được liệt kê cho Smoke testing.
- Dễ sử dụng và chạy nhanh
- Các lỗi và khiếm khuyết nghiêm trọng rất dễ phát hiện và khắc phục ở giai đoạn đầu.
- Cải thiện chất lượng của hệ thống
- Giảm rủi ro
- Việc đánh giá tiến độ sẽ dễ dàng hơn.
- Tiết kiệm công sức và thời gian kiểm tra
- Giảm thiểu rủi ro tích hợp
⚠ Lưu ý hạn chế: Việc chạy thử nghiệm (smoke run) chỉ cho biết bản dựng có thể kiểm thử được. Nó chỉ kiểm tra sơ bộ các chức năng chính, vì vậy các lỗi nhỏ, trường hợp ngoại lệ và các tính năng ít được sử dụng vẫn bị ẩn cho đến khi chạy kiểm thử chức năng và kiểm thử hồi quy. Đừng bao giờ coi kết quả chạy thử nghiệm (smoke run) màu xanh lá cây là dấu hiệu cho thấy bản dựng không có lỗi.
Kiểm thử khói so với kiểm thử cơ bản so với kiểm thử hồi quy
Cả ba chương trình đều chạy sau khi mã nguồn thay đổi, đó là lý do tại sao chúng thường bị nhầm lẫn. Chúng khác nhau về phạm vi, độ sâu và câu hỏi mà mỗi chương trình trả lời.
Việc kiểm thử được thực hiện trên mã nguồn trong môi trường phát triển để đảm bảo tính chính xác của ứng dụng trước khi phát hành bản dựng cho bộ phận QA, quá trình này được gọi là kiểm thử cơ bản (Sanity testing). Đó là một quy trình xác minh rằng ứng dụng đang được phát triển đáp ứng các yêu cầu chức năng cơ bản của nó.
Sanity testing xác định việc hoàn thành giai đoạn phát triển và đưa ra quyết định có vượt qua hay không chuyển sản phẩm phần mềm cho giai đoạn thử nghiệm tiếp theo.
| NỀN TẢNG | KIỂM TRA KHÓI | KIỂM TRA TÍNH HỢP LÝ | KIỂM TRA HỒI QUY |
|---|---|---|---|
| Phạm vi | Rộng và nông | Hẹp và sâu | Rộng và sâu |
| Câu hỏi đã được trả lời | Liệu bản dựng này đã đủ ổn định để thử nghiệm chưa? | Liệu cách khắc phục cụ thể này có hiệu quả không? | Có thứ gì trước đây vẫn hoạt động tốt giờ lại bị hỏng không? |
| Trình tự | Đầu tiên, trong mỗi lần xây dựng | Sau khi vượt qua bài kiểm tra khói. | Sau khi kiểm tra tính hợp lý |
| thời lượng điển hình | 10 đến 15 phút | 30 đến 60 phút | Hours đến ngày |
| Tự động hóa phù hợp | Rất cao | Mức độ vừa phải, thường là thao tác bằng tay. | Rất cao |
Trên thực tế, chúng được chạy theo trình tự: kiểm thử sơ bộ để chấp nhận bản dựng, kiểm thử cơ bản để xác minh thay đổi đã được triển khai và kiểm thử hồi quy khi lịch trình cho phép.
Ví dụ về các trường hợp thử nghiệm khói mẫu
Bảng dưới đây mô tả quá trình kiểm tra sơ bộ bằng phương pháp tấn công khói, mỗi hàng tương ứng với một đường găng.
| T.ID | KỊCH BẢN THỬ NGHIỆM | MÔ TẢ | BƯỚC KIỂM TRA | KẾT QUẢ MONG ĐỢI | KẾT QUẢ THỰC TẾ | TÌNH TRẠNG |
|---|---|---|---|---|---|---|
| 1 | Thông tin đăng nhập hợp lệ | Kiểm tra chức năng đăng nhập của ứng dụng web để đảm bảo rằng người dùng đã đăng ký được phép đăng nhập bằng tên người dùng và mật khẩu | 1.Khởi chạy ứng dụng 2.Điều hướng trang đăng nhập 3.Nhập tên người dùng hợp lệ 4.Nhập mật khẩu hợp lệ 5.Click vào nút đăng nhập |
Đăng nhập phải thành công | như mong đợi | Qua |
| 2 | Thêm chức năng mục | Có thể thêm sản phẩm vào giỏ hàng | 1.Chọn danh sách danh mục 2.Thêm sản phẩm vào giỏ hàng |
Mặt hàng sẽ được thêm vào giỏ hàng | Mặt hàng không được thêm vào giỏ hàng | Fail |
| 3 | Chức năng đăng xuất | Kiểm tra chức năng đăng xuất | 1. chọn nút đăng xuất | Người dùng sẽ có thể đăng xuất. | Người dùng không thể đăng xuất | Fail |


