(Bài dịch) - Là một kỹ sư kiểm thử phần mềm (QC Engineer), bạn có thể đã nghe về Smoke testing, Sanity testing, RetestingRegression testing. Rất có thể, nhiều trong số chúng là các hoạt động kiểm thử mà bạn thường thực hiện hàng ngày. Tuy nhiên, đối với các kỹ sư kiểm thử mới (Fresher QC) (và ngay cả đối với những kỹ sư có kinh nghiệm), phân biệt những thuật ngữ này có thể là một thách thức thực sự.


Trong nhiều trường hợp, bạn vẫn có thể thực hiện công việc đúng ngay cả khi không thể phân biệt chúng. Tuy nhiên, với tư cách là một kỹ sư kiểm thử chuyên nghiệp, việc biết bạn đang làm gì và tại sao bạn làm những điều đó luôn là điều đúng đắn và thật sự cần thiết.


Trong bài viết hôm nay, mình muốn giúp bạn làm rõ sự khác biệt định nghĩa giữa Smoke testing, Sanity testing, RetestingRegression testing để giải quyết mọi sự nhầm lẫn mà bạn có thể gặp phải... và Go a head !
Được rồi, chúng ta hãy làm điều đó.


Dưới đây, tôi sẽ đi vào chi tiết, nhưng trước đó, đây là một định nghĩa nhanh về từng thuật ngữ:
- Smoke Testing: Chúng ta thực hiện smoke test khi nhận được một phiên bản mới tương đối không ổn định để đảm bảo rằng các chức năng quan trọng của ứng dụng hoạt động tốt. Ý tưởng của kiểm thử này là tìm ra các vấn đề quan trọng càng sớm càng tốt và từ chối phiên bản để không mất thời gian kiểm thử thêm (phiên bản lỗi).
- Sanity Testing: Chúng ta thực hiện sanity test khi nhận được một phiên bản mới tương đối ổn định để xác định các chức năng phụ thuộc bị thiếu. Nói cách khác, bạn sẽ xác nhận các chức năng chính của hệ thống một cách chi tiết hơn.
Cả Sanity test và Smoke test đều là cách để tránh lãng phí thời gian và công sức bằng cách xác định nhanh chóng liệu ứng dụng có quá nhiều khuyết điểm để xứng đáng với bất kỳ kiểm thử nghiêm ngặt nào.


- Retesting: Chúng ta thực hiện retesting cho một tính năng/chức năng đã có lỗi và những lỗi đó đã được sửa gần đây.
- Regression Testing: Chúng ta thực hiện regression testing cho ứng dụng khi có sự thay đổi bao gồm các tính năng mới/bug đã được sửa để đảm bảo không ảnh hưởng đến các chức năng hiện có.


Để hiểu rõ hơn, hãy để tôi giới thiệu cho bạn bảng so sánh như sau:

Smoke Testing Sanity Testing Regression Testing Re-testing
Smoke testing được thực hiện để xác định xem các chức năng quan trọng của ứng dụng (AUT) hoạt động tốt hay không. Sanity testing được thực hiện để xác định xem phần của ứng dụng (AUT) vẫn hoạt động như thiết kế sau một số thay đổi nhỏ hoặc sửa lỗi. Regression testing được thực hiện để xác nhận rằng một chương trình hoặc thay đổi mã nguồn gần đây không gây ảnh hưởng tiêu cực đến các tính năng hiện có. Re-testing được thực hiện để xác nhận rằng các trường hợp kiểm thử đã thất bại trong quá trình thực thi cuối cùng đã thành công sau khi lỗi đã được sửa chữa.
Mục đích của smoke testing là xác minh "tính ổn định" của hệ thống để tiếp tục với kiểm thử chi tiết hơn. Mục đích của sanity testing là xác minh "tính hợp lý" của hệ thống để tiếp tục với kiểm thử chi tiết hơn. Mục đích của regression testing là đảm bảo rằng các thay đổi mới không có bất kỳ tác động phụ nào đến các chức năng hiện có. Re-testing được thực hiện dựa trên các sửa chữa lỗi.
Xác nhận lỗi không phải là một phần của smoke testing. Xác nhận lỗi không phải là một phần của sanity testing. Xác nhận lỗi không phải là một phần của regression testing. Xác nhận lỗi là một phần của re-testing.
Smoke testing được thực hiện trước kiểm thử hồi quy. Sanity testing được thực hiện trước kiểm thử hồi quy, sau kiểm thử smoke. Dựa trên dự án và sự có sẵn của tài nguyên, regression testing có thể được thực hiện song song với re-testing. – Re-testing được thực hiện trước khi chúng ta bắt đầu sanity testing.
– Ưu tiên của re-testing cũng cao hơn so với regression testing, vì vậy nó được thực hiện trước regression testing.
Smoke test có thể được thực hiện thủ công hoặc tự động. Sanity test thường được thực hiện thủ công. Bạn có thể thực hiện tự động hóa regression testing, kiểm thử thủ công có thể tốn kém và tốn thời gian. Bạn không thể tự động hóa các trường hợp kiểm thử cho re-testing.
Smoke testing là một phần con của kiểm thử hồi quy. Sanity testing là một phần con của kiểm thử chấp nhận (Acceptance testing) Regression testing chỉ được thực hiện khi có bất kỳ sửa đổi hoặc thay đổi nào trở nên bắt buộc trong dự án hiện tại. Re-testing thực hiện kiểm tra một lỗi với cùng dữ liệu và môi trường nhưng với đầu vào khác nhau và phiên bản mới.
Các trường hợp kiểm thử của smoke test là một phần của kiểm thử hồi quy, chỉ bao gồm các chức năng quan trọng. Sanity test có thể được thực hiện mà không cần các trường hợp kiểm thử nhưng yêu cầu hiểu biết về lĩnh vực liên quan. Các trường hợp kiểm thử cho regression testing có thể được lấy từ các quy định chức năng, hướng dẫn sử dụng của người dùng và tài liệu, và báo cáo lỗi liên quan đến các vấn đề đã được sửa chữa. Các trường hợp kiểm thử cho re-testing có thể được tái sử dụng từ các trường hợp kiểm thử đã thực hiện trước đó.

  

Tổng kết
Hy vọng sau khi đọc bài viết này, bạn đã có kiến thức cơ bản về Smoke testing, Sanity testing, RetestingRegression testing. Như tôi đã nói ở đầu, sẽ không vấn đề gì nếu bạn không thể phân biệt được giữa những thuật ngữ và kỹ thuật này. Thuật ngữ và kỹ thuật thường rất rối rắm không dễ phân biệt. Tuy nhiên, bằng cách biết bạn đang làm gì và gọi nó bằng đúng tên là cách mà một tester chuyên nghiệp nên làm.

Hãy chia sẻ ý kiến của bạn dưới đây.

Nguồn: asktester.com




Các thành viên đã like bài viết: