Smoke testing Vs Sanity testing
Smoke testing và Sanity testing là những chủ đề gây hiểu lầm trong kiểm thử phần mềm. Có rất nhiều topic nói về đề tài này, trong bài viết này sẽ cố gắng giúp bạn đọc hiểu rõ hơn về 2 khái niệm này. Software build Nếu bạn đang phát triển một chương ...
Smoke testing và Sanity testing là những chủ đề gây hiểu lầm trong kiểm thử phần mềm. Có rất nhiều topic nói về đề tài này, trong bài viết này sẽ cố gắng giúp bạn đọc hiểu rõ hơn về 2 khái niệm này.
Software build
Nếu bạn đang phát triển một chương trình máy tính đơn giản, chỉ bao gồm 1 tập tin mã nguồn thì bạn chỉ cần biên dịch và liên kết với 1 một tập tin này để tạo ra một tập tin thực thi. Quá trình này rất đơn giản. Nhưng thường thì không có case đó xảy ra. Một dự án phần mềm điển hình bao gồm hàng trăm thậm chí hàng ngàn tập tin mã nguồn. Việc tạo ra chương trình thực thi từ những tập tin mã nguồn đó là một công việc phức tạp và tốn thời gian. Việc bạn cần làm là sử dụng “build” phần mềm để tạo ra chương trình thực thi, quá trình này gọi là “software build”
Smoke testing:
Là một loại kiểm thử phần mềm được thực hiện sau software build để xác định rằng các chức năng quan trọng của chương trình đang hoạt động tốt. Nó được thực thi trước khi bất chức năng hay kiểm thử hồi quy được thực hiện trên software build. Mục đích là để loại bỏ ứng dụng bị hỏng, QA team sẽ không bị lãng phí thời gian cài đặt và kiểm thử phần mềm.
Các thử nghiệm được chọn dựa trên một số chức năng quan trọng hoặc một thành phần của hệ thống. Mục đích không phải là kiểm thử toàn hệ thống, nhưng để chắc rằng các chức năng quan trọng của hệ thống vẫn hoạt động tốt. Ví dụ: verify ứng dụng ra mắt thành công, hay check GUI là đáp ứng yêu cầu,…
Sanity testing:
Sanity testing, một kỹ thuật kiểm thử phần mềm được thực hiện sau khi nhận được software build, với sự thay đổi nhỏ trong mã, hay chức năng, để xác định rằng các lỗi đã được fix và không còn vấn đề do thay đổi này nữa.
Mục đích: bất cứ khi nào bản buil mới cũng được chấp nhận để thử nghiệm. Để xác định rằng các chức năng đã làm việc như mong đợi. Nếu sanity testing đưa ra kết quả fail thì bản build sẽ không được chấp nhận để tiết kiệm thời gian và chi phí trong thử nghiệm. Có thể dùng các kỹ thuật Smoke test hay Buil verification test hay Basic accepptance test để thay thế, nhưng với mỗi kỹ thuật thì kịch bản test lại khác nhau.
Mục tiêu: là không xác minh triệt để các tính năng mới, nhưng để xác định các nhà phát triển đã làm đúng như mong đợi.
- Sanity test: thường không được dàn dựng trước, hỗ trợ việc xác định các chức năng còn thiếu phụ thuộc. Nó được sử dụng để xác định các phần của ứng dụng vẫn hoạt động nếu có một thay đổi nhỉ.
- Sanity test: là một thử nghiệm hồi quy hẹp, tập trung vào một hoặc một vài khu vực chức năng.
Key differences
Smoke testing | Sanity testing |
---|---|
Được thực hiện để xác định rằng các chức năng quan trọng của chương trình đang làm việc tốt | Kiểm tra chức năng mới hay 1 lỗi đã được sửa |
Mục tiêu để xác minh sự ổn định của hệ thống trong quá trình kiểm tra nghiêm ngặt hơn | Đối tượng xác minh là tính hợp lý của hệ thống để tiến hành kiểm thử nghiêm ngặt |
Được thực hiện bởi developers hay tester | Thường được thực hiện bởi tester |
Thường có tài liệu hay kịch bản | Không có tài kiệu hay kịch bản |
Là tập con của Regression testing | Là tập con của Acceptance testing |
Kiểm thử toàn hệ thống | Kiểm thử chỉ thành phần đặc biệt của hệ thống |
Hiểu giống như tổng kiểm tra | Hiểu giống như kiểm tra đặc biệt |
Kết luận:
Sau khi phần mềm được cải tiến, bảo trì, thay đổi chức năng hoặc fix bug thì việc kiểm tra lại các chức năng đã test xong trước đây trên phiên bản vừa sửa xong này là để chắc chắn rằng những thay đổi vừa rồi không làm ảnh hưởng đến phần mềm và phần mềm đã được fix bug, cải tiến hoặc bảo trì đúng yêu cầu.
- Kỹ thuật smoke testing dùng để kiểm tra các chức năng cơ bản của phần mềm/ hệ thống. Độ bao phủ của kỹ thuật này rộng hơn sanity testing, nhưng việc này đồng thời sẽ làm tốn thời gian và chi phí của tester.
- Ngược lại kỹ thuật sanity testing thì dùng để kiểm tra đặc biệt đến 1 thành phần hoặc chức năng không dựa trên kịch bản, độ bảo phủ thì chỉ trên chức năng được fix bug hoặc sửa lỗi. Nhưng việc này không tốn thời gian và có thể giúp tester phát hiện ra bất cứ những điều không ổn trên bản build mới có chưa chức năng mới đó.
Theo như những phân tích bên trên thì trong quá trình bảo trì dự án thì tester nên tiến hành sanity testing trước, sanity testing thành công thì mới nên tiến tời smoke testing, điều này tránh sót và tốn thời gian, chi phí cho những sửa đổi của các dự án bảo trì
Link tham khảo http://www.guru99.com/smoke-sanity-testing.html http://www.softwaretestinghelp.com/smoke-testing-and-sanity-testing-difference/ https://www.tutorialspoint.com/software_testing_dictionary/sanity_testing.htm