Tìm hiểu về Smoke Testing

Tìm hiểu về Smoke Testing

Smoke test là gì

Smoke Testing là 1 quá trình để kiểm tra liệu build đã triển khai ổn định hay không? Để xác nhận liệu QA team có thể tiếp tục với further testing hay không? Các Smoke Testing là 1 thiết lập các bài test tối thiểu chạy trên mỗi bản build.

Smoke Testing là quá trình mà phần mềm build đã được triển khai tới môi trường QA và đã được kiểm tra độ ổn định của ứng dụng. Nó cũng được gọi là “Build verification testing”.

Nói 1 cách đơn giản, chúng ta đang xác minh liệu các tính năng quan trọng có đang hoạt động chứ không có danh mục nào trong build mà đang được test.

Nó là 1 bài test hồi quy nhỏ và nhanh của các chức năng chính. Nó là 1 bài test đơn giản cho thấy sản phẩm đã sẵn sàng cho việc test chưa. Điều này giúp xác định xem build có thiếu sót gì không để làm các further testing tránh lãng phí thời gian và tài nguyên.

Các Smoke Test xác định chất lượng của build cho further formal testing. Mục đích chính của Smoke Test là để phát hiện sớm các vấn đề chính. Các Smoke Test được thiết kế để chứng minh sự ổn định của hệ thống và sự phù hợp của các yêu cầu.

Một bản build bao gồm tất cả các file data, các thư viện, các reusable mô đun, các thành phần thiết kế được yêu cầu để thực hiện 1 hay nhiều các chức năng sản phẩm.

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 build hiện hành mà đượ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 đang hoạt động chính xác hay không.

Trong phương thức test này, team dev triển khai build trong QA. Các tập con của các test case được thực hiện, và sau đó các tester chạy các test case trên build. QA team kiểm tra các ứng dụng xung đột với các chức năng quan trọng. Loạt test case này được thiết kế để tìm ra các lỗi trong build. Nếu các bào test này pass, QA team tiếp tục với việc test chức năng.

Bất cứ lỗi nào xuất hiện cần được xử lý hệ thống sẽ trả ngược về cho dev team. Bất cứ khi nào có 1 sự thay đổi trong bản build, chúng ta thực hiện Smoke Testing để đảm bảo sự ổn định. Ví dụ: Nút đăng ký mới được bổ sung vào màn hình đăng nhập và bản build được triển khai với code mới. Chúng ta thực hiện Smoke Tesing trên 1 bản build mới.

Sau khi release bản build tới môi trường QA, Smoke Testing được thực hiện bởi các kỹ sư QA/QA lead. 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. Các bài test được thực hiện trong môi trường dev trên code để đảm bảo tính chính xác của ứng dụng trước khi release bản build tới QA, điều này được biết đến như sanity testing. Nó thường kiểm tra tỉ mỉ. Nó là 1 quá 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 chỉ ra sự hoàn thành của giai đoạn dev và đưa ra quyết định liệu có pass hay không để đưa sản phẩm phần mềm tới giai đoạn further 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 khuyết điểm đượ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 khuyết điểm đố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 Test 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.

Smoke Testing thường được thực hiện thủ công mặc dù nó có thể thực hiện tương tự qua automation. Nó có thể khác nhau từ organization tới organization khác.

Nhìn chung, Smoke Testing được thực hiện thủ công. Nó tiếp cận khác nhau từ 1 organization này tới organization khác. Smoke Testing được thực hiện để đảm bảo điều hướng các path quan trọng như mong đợi và không làm tổn hại các chức năng. Khi build được release tới QA, các test case của các chức năng có độ ưu tiên cao được thực hiện và kiểm tra để tìm ra các lỗi quan trọng trong hệ thống. Nếu các test pass, chúng ta sẽ tiếp tục với functional testing. Nếu các bài test fail, build sẽ bị hủy bỏ và gửi ngược lại dev team để chỉnh sửa. Smoke Testing được thực hiện trên build mới và sẽ được tích hợp với các build cũ để duy trì sự chính xác của hệ thống. Trước khi thực hiện Smoke Testing, QA team sẽ kiểm tra tính chính xác của các phiên bản build.

Automation testing được sử dụng để kiểm tra hồi quy. Tuy nhiên, chúng ta cũng có thể sử dụng 1 thiết lập các test case tự động để chạy dựa vào Smoke Test. Với sự giúp đỡ của các bài Test Automation, các developer có thể kiểm tra build ngay tức khắc, bất cứ khi nào có 1 build mới sẵn sàng cho triển khai.

Thay vì việc phải lặp đi lặp lại các bài test thủ công khi software build mới được triển khai, các smoke test case được ghi lại được thực hiện lại với build. Nó xác định xem các chức năng chính vẫn hoạt động đúng hay không. Nếu bài test fail, sau đó họ có thể chỉnh sửa build và triển khai build lại ngay lập tức. Bằng cách này chúng ta có thể tiết kiệm thời gian và đảm bảo chất lượng build tới môi trường QA.

Sử dụng 1 công cụ test tự động, các tester cần lưu lại tất cả các bước thủ công được thực hiện trong software build.

Biểu đồ dưới hiển thị làm thế nào Smoke Testing được thực hiện. Khi build được triển khai trong QA, và các Smoke Testing đã pass chúng ta sẽ thực hiện functional testing. Nếu Smoke Testing fail, chúng ta sẽ thoát bài test cho đến khi vấn đề trong build được fix. **Smoke Testing cycle **

Ở đây là 1 vài ưu điểm của Smoke Testing được liệt kê:

  • Dễ dàng thực hiện việc test
  • Các lỗi sẽ được nhận diện trong giai đoạn đầu
  • Cải thiện chất lượng của hệ thống
  • Giảm thiểu rủi ro
  • Tiến trình dễ dàng truy cập
  • Tối ưu hiệu quả và thời gian của việc test
  • Dễ dàng phát hiện các lỗi quan trọng và sửa chữa các lỗi
  • Nó chạy rất nhanh
  • Giảm thiểu các rủi ro phát sinh

Nếu chúng ta không thực hiện Smoke Testing trong giai đoạn đầu, các lỗi có thể gặp phải trong giai đoạn sau mà có thể ảnh hưởng lớn đến chi phí. Và các lỗi được tìm ra trong các giai đoạn sau có thể ảnh hưởng đến việc release các sản phẩm.

T.ID TEST SCENARIOS DESCRIPTION TEST DATA TEST STEP EXPECTED RESULT ACTUAL RESULT STATUS 1 Valid login credentials Test the login functionality of the web application to ensure that a registered user is allowed to login with username and password http:// example.com 1.Launch the application http://example.com Login Application should get launched Application launched successfully Pass 2.Navigate the login page Login page should be displayed with user id and password fields, login button login page loaded successfully. Pass Username: GURU99 password : XYZ123 3.Enter valid username User id field should be editable and should accept input Input accepted Pass 4.Enter valid password Login field should be editable and should accept input Input accepted Pass 5.Click on login button The user should be able to login and see the home page window Home page is Displayed after clicking on submit button Pass 2 Adding item functionality Able to add item to the cart 1.Select categories list Categories list should get displayed Categories list is displayed Pass 2.Add the item to cart User Should be able to select items from the list. User is able to select the item from the cart Pass TeItem should get added to the cart xt Item is not getting added to the cart Fail 3 Sign out functionality Check sign out functionality 1. select sign out button The user should be able to sign out. User is not able to sign out Fail

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.

Tham khảo: http://www.guru99.com/smoke-testing.html