Smoke test và nguyên lý hoạt động của Smoke test
Bất kỳ sản phẩm nào trước khi được đưa đến tay người tiêu dùng đều phải trải qua rất nhiều giai đoạn quan trọng khác nhau, trong đó kiểm thử là khâu không thể bỏ qua. Và Smoke test chính là công cụ cần thiết được sử dụng phổ biến trong phát triển phần mềm với khả năng đảm bảo các chức năng của sản phẩm luôn được hoạt động tốt.
Cùng Bizfly Cloudtìm hiểu bài viết dưới đây để bạn có thể hiểu rõ hơn khái niệm Smoke test là gì cũng như những thông tin thú vị có liên quan nhé!
Smoke test là gì?
Smoke test hay Build Verification là một hình thức kiểm thử phần mềm nâng cao được thực hiện bởi các Build phần mềm với mục đích:
- Kiểm tra các chức năng thiết yếu của sản phẩm
- Đảm bảo các chức năng đó của ứng dụng vẫn đang hoạt động tốt.
Nói theo cách đơn giản, Smoke test giúp người kiểm thử có thể nhìn ra các lỗi nghiêm trọng khiến các kế hoạch release phần mềm bị trì hoãn và xác minh mức độ hoạt động tốt của các tính năng trong ứng dụng chứ không phải một danh mục built bất kỳ đang được test.
Đây là một kiểu kiểm thử hồi quy nhỏ và nhanh đối với các chức năng chính của ứng dụng. Nó không đầy đủ bởi một số các trường hợp kiểm tra nhất định bị hạn chế. Người dùng chỉ có thể kiểm tra thành phần của hệ thống hay chức năng quan trọng nhất để đảm bảo ứng dụng đã sẵn sàng bước vào cuộc kiểm thử chi tiết. Điều này giúp bạn xác định được những sai sót của sản phẩm đồng thời tránh lãng phí được thời gian và nguồn nhân lực cho các giai đoạn sau này.
Nguyên lý hoạt động của Smoke test
Smoke test hoạt động theo nguyên lý như sau:
- Nếu kết quả Smoke test được thông qua thì bản build sẽ được chấp nhận bởi đội ngũ QA và được tiến hành chuẩn bị vào bước kiểm thử chức năng sâu hơn.
- Ngược lại, nếu kết quả Smoke test trả về thất bại (nghĩa là không được thông qua) thì bản Build sẽ bị từ chối bởi các kỹ sư QA. Kết quả Smoke test này chỉ được chấp nhận cho đến khi nó đã được sửa lỗi và hoàn thiện.
Đối tượng thực hiện Smoke test
Smoke test sẽ được thực hiện bởi các kỹ sư QA/QA lead ngay sau khi bản built được release tới môi trường QA. Bất cứ khi nào một bản built mới được xây dựng, đội ngũ QA cùng các kỹ sư QA sẽ xác định các chức năng chính trong ứng dụng để tiến hành thực hiện Smoke test.
Đội ngũ QA này sẽ kiểm tra các danh mục có liên quan tới ứng dụng đang được kiểm thử. Các bài kiểm thử này sẽ được thực hiện trong môi trường dev trên code để tính chính xác của ứng dụng được đảm bảo trước khi bản built được release tới môi trường QA. Điều này được biết đến tương tự như sanity testing bởi nó thường được kiểm tra một cách tỉ mỉ và xác minh được mức độ đáp ứng yêu cầu về chức năng cơ bản của ứng dụng vẫn đang phát triển.
Đối tượng lý tưởng nhất để thực hiện Smoke test là QA lead. Trong một số trường hợp thì các kỹ sư QA cũng có thể thực hiện điều đó. Tuy nhiên, với SCRUM thì điều này là không đúng bởi cấu trúc không có lead sẽ đòi hỏi các kỹ sư QA phải tự mình tiến hành thực hiện điều đó.
Khi nào nên thực hiện Smoke test
Khi các chức năng mới của một phần mềm bất kỳ được phát triển và đưa vào các phiên bản hoạt động trong môi trường QA/ staging thì Smoke test sẽ bắt đầu được thực hiện.
Nhiệm vụ của Smoke test lúc này là đảm bảo mức độ hoạt động chính xác tuyệt đối cho tất cả các chức năng quan trọng của sản phẩm.
Để có thể thực hiện phần kiểm thử Smoke test:
- Việc đầu tiên mà đội phát triển cần làm chính là deploy phần tính năng mới của sản phẩm vào môi trường staging cho QA.
- Sau đó QA sẽ tiến hành mở phần test case cho phần này để thực hiện phần chạy kiểm thử.
- Đội QA sẽ dựa trên những chức năng quan trọng để kiểm tra ứng dụng. Nếu các chức năng có thể đáp ứng và vượt qua bước kiểm thử này thì đội QA sẽ đi tới bước tiếp theo là kiểm thử chức năng.
- Trong bước Smoke testing này, bất kỳ lỗi ứng dụng nào được tìm ra cũng đều cần phải đưa lại cho bộ phận phát triển để họ tiến hành xử lý.
Ngoài ra, bất kỳ khi nào xuất hiện sự thay đổi trong bản build thì đều cần thực hiện bước kiểm thử Smoke test để đảm bảo tính ổn định cho các sản phẩm.
Vai trò của Smoke test
Smoke test giữ vai trò quan trọng trong việc phát triển phần mềm bởi khả năng đảm bảo sự vận hành chính xác của hệ thống ngay từ giai đoạn đầu. Điều này giúp bạn tối ưu được hiệu quả của việc kiểm thử. Ngoài ra, một số vai trò khác của Smoke test có thể thấy như:
- Bạn có thể tiết kiệm được thời gian và nguồn nhân lực lớn trong việc kiểm thử bằng cách thực hiện Smoke test. Bởi chỉ khi hoàn thành kiểm thử Smoke test thì đội ngũ phát triển mới có thể thực hiện phần kiểm thử chức năng.
- Trong quy trình phát triển dự án, Smoke test giúp bạn phát hiện ra tất cả các lỗi gây ra tình trạng trì trệ cho các kế hoạch phát triển.
- Sau khi được đưa đến đội QA, việc triển khai phần mềm kiểm thử Smoke test giúp bạn phát hiện được phần lớn defect có trong dự án ngay từ những giai đoạn đầu của cả quá trình phát triển.
- Khi đã phát hiện được defect, Smoke test sẽ đơn giản hoá việc xử lý những defect này.
- Smoke test giúp đội ngũ QA có thể nhanh chóng tìm kiếm các defect mới trong các chức năng của ứng dụng. Các defect này có thể xuất hiện sau khi được deploy phần code mới.
Hiệu quả khi tối ưu Smoke
Smoke test đối với nhiều đội ngũ phát triển có thể chỉ bao gồm 20% thậm chí là ít hơn tổng số test case nhưng nó có khả năng phát hiện lỗi lên tới 80% thậm chí còn nhiều hơn thế. Do đó, chỉ riêng việc này thôi đã cho thấy Smoke test khi được tối ưu sẽ trở thành một phần công việc cực xứng đáng để các doanh nghiệp, tổ chức hay cá nhân đầu tư thời gian. Ngoài ra, khi Smoke test được tối ưu:
- Hiệu quả đội ngũ QA được nâng cao: Phần mềm kiểm thử Smoke test sẽ giúp tiết kiệm tối đa thời gian và công sức cho đội ngũ QA trong việc thực hiện dự án. Điều này giúp đội ngũ QA có thể sử dụng quỹ thời gian đó cho nhiều việc khác như thực hiện các phần test khác hay bảo trì công cụ kiểm thử tự động thay vì chạy một bộ test suite lớn gây lãng phí.
- Khắc phục bug mới và bug hồi quy: Nhờ mức độ phủ cao và khả năng can thiệp sâu của Smoke test mà nhóm phát triển có thể bắt tay vào việc xử lý các nguyên nhân gốc rễ một cách sớm hơn mà không cần chờ đợi kết quả của toàn bộ test suite.
- Đẩy cao năng suất và mức độ hài lòng của đội ngũ QA: Khi đội ngũ QA có thể tự tin về các bản build với tiềm năng cao và vượt qua được bài kiểm thử Smoke test, họ sẽ có mức độ hài lòng trong công việc cao hơn và làm việc một cách hiệu quả hơn.
- Cải thiện chất lượng hệ thống: Những khuyết điểm tiềm ẩn nghiêm trọng có trong ứng dụng sẽ được Smoke test tìm ra để cải thiện và giảm thiểu tới mức tối đa các vấn đề rủi ro hay đe doạ sản phẩm có thể xảy ra.
- Xác minh issue vô hại với hệ thống: Smoke test khi được tối ưu sẽ giúp xác minh những bản issue đã được sửa chữa sẽ không gây bất kỳ ảnh hưởng nào tới các chức năng chính của hệ thống.
Qua những hiệu quả khi tối ưu Smoke test nói trên, chắc bạn cũng đã tưởng tượng những gì sẽ xảy ra khi Smoke test không được thực hiện trong giai đoạn đầu.
Có thể thấy, Smoke test là một phần mềm kiểm thử được thực hiện trên built với khả năng tìm lỗi nhanh chóng và chính xác trong giai đoạn đầu. Chắc chắn qua bài viết mà Bizfly Cloud đã giúp bạn hiểu rõ Smoke test là gì cũng như những phần kiến thức quan trọng có liên quan khác để bạn có thể áp dụng với mục đích cải thiện chất lượng code trong các dự án phần mềm của mình.
Bizfly Cloud là nhà cung cấp dịch vụ điện toán đám mây với chi phí thấp, được vận hành bởi VCCorp.
Bizfly Cloud là một trong 4 doanh nghiệp nòng cốt trong "Chiến dịch thúc đẩy chuyển đổi số bằng công nghệ điện toán đám mây Việt Nam" của Bộ TT&TT; đáp ứng đầy đủ toàn bộ tiêu chí, chỉ tiêu kỹ thuật của nền tảng điện toán đám mây phục vụ Chính phủ điện tử/chính quyền điện tử.
Độc giả quan tâm đến các giải pháp của Bizfly Cloud có thể truy cập tại đây.
DÙNG THỬ MIỄN PHÍ và NHẬN ƯU ĐÃI 3 THÁNG tại: Manage.bizflycloud