Kiểm thử tích hợp và kiểm thử hệ thống: Sự khác biệt và Tầm quan trọng
Nội Dung Bài Viết
Giới thiệu
Kiểm thử tích hợp và kiểm thử hệ thống là 2 cấp độ kiểm thử khác nhau được thực hiện để xác minh hệ thống có đáp ứng yêu cầu đưa ra hay không. Việc kiểm thử này có vai trò quan trọng trong quá trình hoàn thiện sản phẩm, giúp sản phẩm đạt chất lượng và hiệu quả tốt nhất. Đồng thời khi thực hiện kiểm thử theo cách này cũng sẽ giúp giảm chi phí sửa chữa, gỡ lỗi sẽ được xác định trong giai đoạn đầu phát triển phần mềm. Trong bài viết này, chúng ta sẽ cùng tìm hiểu về hai cấp độ kiểm thử này.
Kiểm thử tích hợp là gì?
Kiểm thử tích hợp (Integration Testing) là một giai đoạn trong kiểm thử phần mềm. Thực hiển kiểm tra các module riêng biệt, thực hiện kết hợp lại kiểm tra theo các nhóm. Việc kiểm thử tích hợp (integration testing) được thực hiện sau khi kiểm thử đơn vị (unit testing) và kiểm thử chức năng. Kiểm thử tích hợp giúp chúng ta xác định, khắc phục sự cố và đảm bảo các module chức năng của phần mềm hoạt động như mong đợi.
Xem thêm: Kiểm thử tích hợp là gì và phương pháp thực hiện
Kiểm thử hệ thống là gì?
Kiểm thử hệ thống (System Testing) là việc kiểm tra lại toàn bộ chức năng hệ thống sau khi thực hiện tích hợp các chức năng hay module riêng lẻ, có thể nói là kiểm thử toàn bộ hệ thống với tính năng mới hoặc tính năng hiện có nhằm đảm bảo đúng yêu cầu đưa ra. Việc kiểm thử hệ thống (system testing) được thực hiện sau khi kiểm thử tích hợp (integration testing) các nhóm chức năng/module.
Xem thêm: Kiểm thử hệ thống là gì? Đặc điểm của system testing
So sánh kiểm thử tích hợp và kiểm thử hệ thống
Ví dụ về kiểm thử tích hợp và kiểm thử hệ thống Cơ sở | Kiểm thử tích hợp (Integration testing) | Kiểm thử hệ thống(System testing) |
Mục đích | Kiểm tra các module riêng lẻ hoạt động đúng không, sau khi tích hợp | Tìm lỗi khi toàn bộ các module chức năng hệ thống được đưa vào kiểm thử. |
Giai đoạn thực hiện | Sau khi thực hiện Unit testing (có thể gồm cả function testing) và trước System testing | Sau khi thực hiện Integration testing |
Yêu cầu | – Hiểu về nghiệp vụ các module – Có kiến thức và biết lập trình | – Hiểu nghiệp vụ hệ thống, biết sử dụng công cụ kiểm thử – Có kiến thức lập trình và cài đặt hệ thống |
Thành phần kiểm tra | Thường chỉ tập trung về kiểm tra chức năng | Cần kiểm tra chức năng và phi chức năng |
Trường hợp kiểm thử | Thực hiện kiểm tra các trường hợp module nhỏ kết hợp như trên môi trường thực tế | Kiểm tra hoạt động tương tác của toàn bộ các module chức năng có liên quan với nhau khi đã hoàn thiện các module theo nhóm |
Ví dụ về kiểm thử tích hợp và kiểm thử hệ thống
Ví dụ khi trong dự án có 03 module được phát triển. Việc kiểm tra sẽ thực hiện unit test riêng lẻ từng module. Sau đó, cần kiểm tra khi kết hợp với nhau theo module 1 & 2, module 2 & 3 hoặc module 3 & 1, quá trình kiểm thử như vậy được gọi là kiểm thử tích hợp (integration testing). Khi đã thực hiện kiểm thử theo nhóm các module với nhau, chúng ta sẽ đồng thời kiểm tra kết hợp 03 module với nhau và chạy các trường hợp kiểm thử như hệ thống hoàn chỉnh để khách hàng dùng, kiểm tra như vậy được gọi là kiểm thử hệ thống (system testing).
Ví dụ về kiểm thử tích hợp
Giả sử khi thiết kế một website thương mại điện tử. Sau khi đã có yêu cầu, đã hiểu phân tích thiết kế và đã chốt một số chức năng (module) sau:
- Đăng ký / Đăng nhập
- Danh mục sản phẩm
- Giỏ hàng
- Thanh toán
- Đặt hàng và vận chuyển
- Thống kê sản phẩm / đơn hàng
Sau khi đã thống nhất các chức năng thiết kế, sẽ được gắn cho dev. Và xem chức năng đã có gì, xây dựng phần nào kể từ khi bắt đầu vào phát triển chức năng. Khi chức năng được xây dựng, dev sẽ thực hiện unit test và thực hiện chỉnh sửa nếu phát hiện ra lỗi và hoạt động đúng yêu cầu đưa ra.
Sau đó sẽ thực hiện kiểm tra tích hợp nhằm đảm bảo các chức năng chạy đúng và hoạt động tốt. Với một số chức năng trên khi thực hiện kiểm thử tích hợp như sau:
- Đăng ký tài khoản thành công. Và đăng nhập thành công với tài khoản vừa tạo
- Có thể xem danh mục sản phẩm, chi tiết sản phẩm sau khi đăng nhập thành công
- Có thể xem sản phẩm và chọn đưa vào giỏ hàng
- Thanh toán sản phẩm trong giỏ hàng, với nhiều hình thức có thể lựa chọn
- Có thể theo dõi trạng thái đơn sau khi đặt hàng thành công
Quá trình như vậy gọi là kiểm thử tích hợp, nhằm đảm bảo các module có thể hoạt tốt và đúng thiết kế khi tích hợp các module với nhau.
Ví dụ về kiểm thử hệ thống
Với bài toán thiết kế website thương mại điện tử như trên. Khi đã sản phẩm đã hoàn thiện, đã thực hiện kiểm thử các module với nhau. Và cần thực hiện kiểm hệ thống để golive cho khách hàng. Lúc này chúng ta sẽ thực hiện kiểm thử website trên môi trường UAT, y hệt như môi trường cho khách hàng.
Khi tất cả các chức năng (module) được dựng hoàn thiện, có phải website đã sẵn sàng public lên internet không? Thực ra cũng chưa có gì để đảm điều đó.
Với website thương mại đã hoàn thiện các chức năng theo yêu cầu. Với mục tiêu đặt hàng thành công, sẽ thỏa mãn một số yêu cầu như: đăng ký – đăng nhập đúng tài khoản, có thể chọn một hay nhiều sản phẩm, có thể cho sản phẩm vào giỏ hàng hay không? Có thể thêm/sửa/xóa sản phẩm trong giỏ hàng hay không? Có thể thanh toán thành công không? Đặt hàng thành công không? Có thể thống kê số lượng hàng hay đơn hàng hay không? …v..v..
Toàn bộ quá trình kiểm thử này gọi là kiểm thử hệ thống, nhằm đảm bảo tất cả luồng chức năng có thể chạy được và đúng theo yêu cầu thiết kế đưa ra. Ngoài ra, tester cũng cần kiểm tra với các trường hợp ngược lại nhằm kiểm tra các trường invalid (sai/thiếu) khi thực hiện kiểm thử hệ thống.
Kết luận
Việc kiểm thử tích hợp và kiểm thử hệ thống cần có kế hoạch để tích hợp và thực hiện kiểm tra lại hệ thống sau khi thực hiện tích hợp trong giai đoạn đầu, trước khi đưa tới tay khách hàng. Tuy nhiên, người thực hiện tích hợp hay kiểm thử tích hợp nên có kiến thức lập trình và hiểu về vận hành hệ thống, điều đó khác với người thực hiện kiểm thử hệ thống.
Do vậy, việc kiểm thử hệ thống là quá trình kiểm tra chức năng, trong đó toàn bộ chức năng của hệ thống sau khi tích hợp sẽ được kiểm tra. Ngược lại, trong quá trình tích hợp, các module được tích hợp sẽ được tích hợp với nhau bởi các thành phần chức năng riêng biệt.
Đạt.Nđ
Leave a Comment