× Giới thiệu Lịch khai giảng Tin tức Sản phẩm học viên

Sanity Testing Là Gì? "Liều Thuốc Thử" Nhanh Chóng Cho Chất Lượng Phần Mềm Sau Mỗi Thay Đổi

03/04/2025 07:53

Bài viết này sẽ đi sâu vào giải thích sanity testing là gì, mục đích, quy trình thực hiện và sự khác biệt của nó so với các loại kiểm thử khác

Trong vòng đời phát triển phần mềm, việc kiểm thử đóng vai trò then chốt để đảm bảo chất lượng và tính ổn định của sản phẩm. Bên cạnh các phương pháp kiểm thử chuyên sâu và toàn diện, có một loại hình kiểm thử nhanh chóng và hiệu quả được gọi là sanity testing. Vậy, sanity testing là gì? Tại sao nó lại quan trọng và khi nào thì chúng ta nên áp dụng sanity testing? Bài viết này sẽ đi sâu vào giải thích sanity testing là gì, mục đích, quy trình thực hiện và sự khác biệt của nó so với các loại kiểm thử khác.

1. Định Nghĩa Sanity Testing: Bản Chất và Mục Đích

Sanity testing là gì? Sanity testing, hay còn gọi là kiểm thử tỉnh táo, là một loại hình kiểm thử phần mềm được thực hiện sau khi một bản build mới hoặc một bản cập nhật (patch) được triển khai. Mục đích chính của sanity testing là nhanh chóng xác định xem các chức năng quan trọng nhất của phần mềm có hoạt động bình thường hay không. Nói cách khác, sanity testing giúp trả lời câu hỏi: "Liệu bản build này có đủ 'tỉnh táo' để tiến hành các giai đoạn kiểm thử nghiêm ngặt hơn hay không?".

Sanity testing thường tập trung vào các khu vực cốt lõi của ứng dụng, đặc biệt là những phần đã được thay đổi hoặc sửa lỗi trong bản build mới. Nó không nhằm mục đích kiểm tra toàn bộ hệ thống mà chỉ tập trung vào việc đảm bảo rằng những thay đổi gần đây không gây ra những lỗi nghiêm trọng làm ảnh hưởng đến các chức năng chính.

1.1. Mục Tiêu Của Sanity Testing

Mục tiêu hàng đầu của sanity testing là gì? Đó là:

  • Kiểm tra nhanh chóng tính ổn định cơ bản: Đảm bảo rằng các chức năng quan trọng nhất của phần mềm vẫn hoạt động như mong đợi sau khi có thay đổi.
  • Tiết kiệm thời gian và nguồn lực: Bằng cách phát hiện sớm các lỗi nghiêm trọng, sanity testing giúp tránh lãng phí thời gian và nguồn lực cho việc kiểm thử sâu rộng trên một bản build không ổn định.
  • Cung cấp phản hồi nhanh chóng cho đội ngũ phát triển: Nếu sanity testing phát hiện ra các vấn đề nghiêm trọng, đội ngũ phát triển có thể nhanh chóng khắc phục chúng trước khi chuyển sang các giai đoạn kiểm thử khác.

1.2. Tính Chất Không Chính Thức

Sanity testing thường được thực hiện một cách nhanh chóng và không chính thức. Các test case trong sanity testing thường không được ghi lại chi tiết như trong các loại kiểm thử khác. Người thực hiện sanity testing thường là các tester hoặc thậm chí là các developer, dựa trên kinh nghiệm và hiểu biết của họ về hệ thống để chọn ra các kịch bản kiểm thử quan trọng nhất.

2. Tại Sao Cần Thực Hiện Sanity Testing?

Việc thực hiện sanity testing là gì mang lại nhiều lợi ích thiết thực cho quá trình phát triển phần mềm:

2.1. Tiết Kiệm Thời Gian và Nguồn Lực

Nếu một bản build mới có những lỗi nghiêm trọng ở các chức năng cốt lõi, việc tiến hành kiểm thử toàn diện sẽ rất tốn thời gian và nguồn lực. Sanity testing giúp phát hiện ra những vấn đề này ngay từ đầu, cho phép đội ngũ phát triển sửa lỗi trước khi các tester phải mất nhiều thời gian để kiểm thử các phần khác của ứng dụng.

2.2. Đảm Bảo Tính Ổn Định Cơ Bản

Sanity testing đảm bảo rằng những thay đổi mới không làm hỏng các chức năng quan trọng nhất của hệ thống. Điều này giúp duy trì tính ổn định cơ bản của phần mềm và mang lại trải nghiệm tốt hơn cho người dùng (nếu bản build này được triển khai).

2.3. Tăng Hiệu Quả Của Các Giai Đoạn Kiểm Thử Sau

Khi sanity testing thành công, đội ngũ kiểm thử có thể tự tin hơn khi tiến hành các giai đoạn kiểm thử chức năng, kiểm thử tích hợp và kiểm thử hệ thống một cách chi tiết hơn, зная (knowing) rằng các chức năng cốt lõi đang hoạt động tốt.

2.4. Phản Hồi Nhanh Chóng Cho Đội Ngũ Phát Triển

Nếu sanity testing phát hiện ra lỗi, đội ngũ phát triển sẽ nhận được thông báo sớm và có thể bắt đầu quá trình sửa lỗi ngay lập tức. Điều này giúp rút ngắn chu kỳ phát triển và cải thiện chất lượng tổng thể của phần mềm.

2.5. Xác Nhận Các Thay Đổi Quan Trọng

Sau khi một lỗi quan trọng được sửa hoặc một tính năng mới được thêm vào, sanity testing giúp nhanh chóng xác nhận rằng những thay đổi này đã được thực hiện đúng và không gây ra các tác dụng phụ không mong muốn cho các chức năng quan trọng khác.

3. Các Bước Thực Hiện Sanity Testing

Quy trình thực hiện sanity testing là gì thường bao gồm các bước sau:

3.1. Xác Định Các Chức Năng Quan Trọng Nhất

Bước đầu tiên là xác định những chức năng nào là cốt lõi và quan trọng nhất đối với ứng dụng. Đây thường là những chức năng mà nếu có lỗi sẽ ảnh hưởng nghiêm trọng đến khả năng sử dụng của người dùng.

3.2. Chọn Các Test Case Đại Diện

Dựa trên các chức năng quan trọng đã xác định, người thực hiện sanity testing sẽ chọn ra một số test case đại diện để kiểm tra nhanh chóng. Các test case này thường là những kịch bản phổ biến nhất mà người dùng sẽ thực hiện.

3.3. Thực Hiện Test Case

Tiến hành chạy các test case đã chọn trên bản build mới hoặc bản cập nhật. Quá trình này thường được thực hiện thủ công và nhanh chóng.

3.4. Ghi Nhận Kết Quả

Ghi lại kết quả của từng test case (thành công hay thất bại). Nếu có bất kỳ lỗi nào được phát hiện, cần mô tả chi tiết lỗi đó.

3.5. Đưa Ra Quyết Định

Dựa trên kết quả của sanity testing, đội ngũ kiểm thử sẽ đưa ra quyết định liệu bản build này có đủ ổn định để tiếp tục các giai đoạn kiểm thử khác hay cần phải trả lại cho đội ngũ phát triển để sửa lỗi. Nếu các chức năng quan trọng hoạt động tốt, quá trình kiểm thử có thể tiếp tục. Ngược lại, nếu phát hiện ra các lỗi nghiêm trọng, bản build có thể bị từ chối.

4. Sự Khác Biệt Giữa Sanity Testing và Smoke Testing

Nhiều người thường nhầm lẫn giữa sanity testing là gì và smoke testing. Mặc dù cả hai đều là các loại kiểm thử ban đầu được thực hiện trên một bản build mới, nhưng chúng có những khác biệt quan trọng:

Đặc Điểm

Sanity Testing

Smoke Testing

Mục Đích

Kiểm tra tính hợp lý và ổn định của các chức năng quan trọng sau một thay đổi.

Kiểm tra tính ổn định cơ bản của toàn bộ hệ thống sau một bản build mới.

Phạm Vi

Tập trung vào các khu vực bị ảnh hưởng bởi thay đổi hoặc sửa lỗi.

Bao quát các chức năng chính của toàn bộ hệ thống.

Độ Sâu

Thường sâu hơn smoke testing, kiểm tra kỹ hơn các chức năng quan trọng.

Thường nông hơn, chỉ kiểm tra các chức năng cơ bản có hoạt động hay không.

Thời Điểm Thực Hiện

Sau khi nhận được bản build có các thay đổi hoặc sửa lỗi cụ thể.

Thường được thực hiện ngay sau khi một bản build mới được triển khai.

Người Thực Hiện

Thường là tester, đôi khi là developer.

Thường là tester.

Tính Chính Thức

Thường không chính thức, ít tài liệu.

Có thể chính thức hoặc không chính thức, tùy thuộc vào quy trình của từng dự án.

Xuất sang Trang tính

Ví dụ: Nếu bạn sửa một lỗi trong chức năng đăng nhập, sanity testing sẽ tập trung vào việc kiểm tra kỹ lưỡng chức năng đăng nhập với các trường hợp khác nhau. Trong khi đó, smoke testing sẽ kiểm tra xem ứng dụng có khởi động được không, các trang chính có hiển thị đúng không, và chức năng đăng nhập có hoạt động ở mức cơ bản hay không.

5. Sự Khác Biệt Giữa Sanity Testing và Regression Testing

Một sự nhầm lẫn khác thường xảy ra giữa sanity testing là gì và regression testing (kiểm thử hồi quy). Đây là hai loại kiểm thử có mục đích và thời điểm thực hiện khác nhau:

  • Sanity Testing: Như đã đề cập, tập trung vào việc kiểm tra nhanh chóng các chức năng quan trọng sau một thay đổi cụ thể.
  • Regression Testing: Đảm bảo rằng các thay đổi mới (sửa lỗi hoặc thêm tính năng) không gây ra các tác dụng phụ không mong muốn cho các chức năng đã hoạt động ổn định trước đó.

Điểm khác biệt chính: Sanity testing tập trung vào những gì mới hoặc đã thay đổi, trong khi regression testing tập trung vào việc đảm bảo những thứ cũ vẫn hoạt động tốt. Regression testing thường được thực hiện một cách toàn diện hơn và có thể bao gồm nhiều test case đã được thực hiện trong các chu kỳ kiểm thử trước đó.

 Đọc thêm:

6. Ví Dụ Về Sanity Testing

Để hiểu rõ hơn về sanity testing là gì, hãy xem xét một vài ví dụ:

  • Ví dụ 1: Sau khi đội ngũ phát triển sửa một lỗi trong module thanh toán của một trang web thương mại điện tử, tester sẽ thực hiện sanity testing bằng cách thử thực hiện một vài giao dịch mua hàng thành công với các phương thức thanh toán khác nhau để đảm bảo rằng lỗi đã được khắc phục và không gây ra vấn đề gì khác cho quy trình thanh toán.
  • Ví dụ 2: Sau khi thêm một tính năng mới là tải ảnh lên hồ sơ người dùng, tester sẽ thực hiện sanity testing bằng cách thử tải lên một vài loại ảnh khác nhau để đảm bảo rằng tính năng này hoạt động đúng như mong đợi và không làm ảnh hưởng đến các chức năng quan trọng khác như xem hồ sơ hoặc cập nhật thông tin cá nhân.
  • Ví dụ 3: Trong một ứng dụng quản lý dự án, sau khi có một bản cập nhật liên quan đến việc tạo và chỉnh sửa task, sanity testing sẽ tập trung vào việc kiểm tra nhanh chóng các chức năng tạo task mới, chỉnh sửa task hiện có và đảm bảo rằng các thông tin cơ bản của task được lưu trữ chính xác.

Kết Luận

Sanity testing là gì là một bước quan trọng và hiệu quả trong quy trình kiểm thử phần mềm, giúp nhanh chóng xác định tính ổn định cơ bản của các chức năng quan trọng sau mỗi thay đổi. Bằng cách thực hiện sanity testing một cách thường xuyên và hiệu quả, các đội ngũ phát triển và kiểm thử có thể tiết kiệm thời gian, nguồn lực và đảm bảo chất lượng phần mềm một cách tốt hơn. Hy vọng bài viết này đã giúp bạn hiểu rõ hơn về sanity testing là gì và cách áp dụng nó vào thực tế dự án của mình.