Tìm hiểu về Smoke Testing

1. Thế nào là Smoke Testing?

Smoke testing là một loại kiểm thử phần mềm giúp đảm bảo rằng các chức năng chính của ứng dụng hoạt động tốt. Loại thử nghiệm này còn được gọi là "Build Verification testing". Nó là một kiểu thử nghiệm không đầy đủ với các trường hợp kiểm tra rất hạn chế bao gồm chức năng quan trọng nhất hoặc thành phần của hệ thống nhằm đảm bảo những tính năng quan trọng hoạt động đúng và sẵn sàng để test chi tiết.

Smoke testing được thực hiện "trước" bất kỳ kiểm tra chức năng hoặc hồi quy chi tiết nào được thực thi trên bản dựng phần mềm. Mục đích là để từ chối một ứng dụng bị hỏng nặng, vì vậy mà nhóm QA sẽ không mất nhiều thời gian cài đặt và thử nghiệm ứng dụng phần mềm

Ví dụ một Smoke test điển hình sẽ là: Xác minh rằng ứng dụng chạy thành công, Kiểm tra xem GUI có đáp ứng không... v.v.

2. Vòng đời của Smoke Testing

Sơ đồ dưới đây giải thích vòng đời của Smoke testing. Mỗi khi một bản build được release cho QA, vòng đời cơ bản là:

  • Nếu smoke test pass, bản build sẽ được chấp nhận bởi đội QA để test sâu hơn,
  • Nếu smoke test fail, bản build sẽ bị reject cho đến khi các vấn đề report được fix.

3. Ai là người thực hiện Smoke testing?

Bất cứ khi nào có 1 bản build mới, QA team xác định chức năng chính trong ứng dụng để thực hiện Smoke Testing. QA team kiểm tra các danh mục liên quan trong ứng dụng mà đang được test. Tuy nhiên không phải cả team cùng tham gia vào loại thử nghiệm này để tránh lãng phí thời gian của tất cả các QA.

Smoke test được thực hiện lý tưởng bởi QA lead - người quyết định bản build pass để có thể test sâu hơn hay sẽ reject nó. Hoặc trong trường hợp QA lead vắng mặt, bản thân các QA có thể thực hiện smoke testing.

Đôi lúc, khi một dự án có quy mô lớn, một group QA có thể thực hiện loại test này. Nhưng điều này không đúng với SCRUM vì SCRUM là một cấu trúc không có LEAD hoặc Manager và mỗi QA có trách nhiệm riêng với stories của họ. Do dó, cá nhân QA sẽ thực hiện việc test này cho stories của họ.

4. Khi nào sử dụng Smoke testing?

Smoke test được sử dụng trong các kịch bản dưới đây:

  • Nó được thực hiện bởi developers trước khi đưa bản build cho QA team
  • Nó được thực hiện bởi QA trước khi họ thực hiện test chi tiết hơn
  • Smoke testing được thực hiện để đảm bảo rằng những tính năng cơ bản của ứng dụng hoạt động đúng như mong đợi

5. Tại sao chúng ta thực hiện Smoke testing?

Smoke Testing đóng 1 vai trò quan trọng trong phát triển software vì nó đảm bảo sự chính xác của hệ thống trong giai đoạn đầu. Bằng cách này, chúng ta có thể tối ưu hiệu quả của việc test. Như một hệ quả, các Smoke Testing đưa hệ thống tới 1 trạng thái tốt. Một khi chúng ta hoàn thành Smoke Testing, sau đó chúng ta chỉ việc bắt đầu test chức năng.

  • Tất cả các nút thắt xuất hiện trong build sẽ được nhận diện bằng cách thực hiện Smoke testing.
  • Smoke testing được thực hiện sau khi build được release tới QA. Với sự giúp đỡ của Smoke testing, hầu hết issue được nhận diện ở giai đoạn đầu của quá trình phát triển phần mềm.
  • Với Smoke testing, chúng ta đơn giản hóa việc phát hiện và sửa chữa các lỗi chính.
  • Bằng Smoke testing, QA team có thể tìm thấy các issue đối với các chức năng của ứng dụng mà có thể phải đối mặt trong code mới.
  • Smoke testing tìm ra các lỗi quan trọng.

Ví dụ 1: của sổ đăng nhập: Có thể di chuyển đến cửa sổ tiếp theo với user/pass hợp lệ khi click vào nút submit.

Ví dụ 2: Người dùng không thể đăng xuất khỏi web.

6. Ưu và nhược điểm của Smoke testing

6.1. Ưu điểm

  • Dễ dàng thực hiện việc test
  • Các lỗi sẽ được phát hiện ở giai đoạn đầu của thử nghiệm
  • Phát hiện các issue khi tích hợp các thành phân
  • Xác minh các issue đã được sửa không ảnh hưởng đến các chức năng chính của hệ thống
  • Giảm thiểu rủi ro
  • Chạy nhanh nếu chạy automation
  • Tiết kiệm effort, thời gian và tiền bạc
  • Cải thiện chất lượng toàn bộ hệ thống

6.2. Nhược điểm:

  • Smoke test không thể thay thế cho kiểm thử chi tiết
  • Ngay cả sau khi smoke test pass, bạn vẫn có thể tìm thấy nghiêm trọng bug
  • Loại kiểm thử này phù hợp nhất nếu bạn có thể tự động hóa thời gian dành cho việc test thủ công các test case, đặc biệt là các project lớn có đến 700-800 test case.

Kết luận

Smoke Testing được thực hiện trên mỗi build, nó giúp tìm ra các lỗi trong cac giai đoạn đầu. Smoke Testing là bước cuối cùng trước khi software build đi vào giai đoạn system. Các Smoke Testing phải được thực hiện trên mỗi build mà được chuyển sang testing.

Trước khi thực hiện Smoke Testing, QA team phải đảm bảo phiên bản chính xác của build của ứng dụng đang test. Nó là 1 quá trình đơn giản mà tối ưu quá trình test tính ổn định của ứng dụng.

Các Smoke Test có thể tối ưu hiệu quả test, và có thể cải thiện chất lượng của ứng dụng. Smoke Testing có thể được thực hiện không chỉ thủ công mà còn automation, phụ thuộc vào client và organization.

Tài liệu tham khảo

http://tryqa.com/what-is-smoke-testing-when-to-use-it-advantages-and-disadvantages-2/

All Rights Reserved