Kiểm thử tích hợp – integration testing là gì?

Đinh Thao

Mỗi phần mềm hay hệ điều hành trước khi cung cấp đến tay người dùng đều trải qua quá trình kiểm thử. Những bài kiểm tra quan trọng cho các phần mềm đó được gọi là integration testing? Vậy Integration testing là gì? Các phương pháp thực hiện ra bài test này ra sao? Hãy cùng Testerpro đi tìm câu trả lời trong bài viết sau đây nhé!

Integration-testing-là-gì

Định nghĩa integration testing

  • Integration testing hay còn gọi là kiểm thử tích hợp là một trong những giai đoạn của quá trình kiểm thử phần mềm. Các Module phần mềm riêng biệt đều sẽ được kết hợp lại để thực hiện quá trình kiểm thử theo nhóm.
  • Kiểm thử tích hợp được thực hiện trước kiểm thử xác nhận và sau kiểm thử đơn vị (Unit Test). Integration testing bắt đầu từ việc tiếp nhận các module đầu vào đã được kiểm thử đơn vị. Tiếp đó nhóm chúng thành những tập hợp lơn rồi áp dụng các ca kiểm thử được định nghĩa trong kế hoạch kiểm thử tích hợp vào tập hợp đó rồi cung cấp đầu ra cho hệ thống tích hợp.
  • Mục đích của kiểm thử tích hợp là cho ra 2 ứng dụng tốt và mượt nhất mà người dùng cần đến. Đồng thời loại bỏ các Bug cùng nguy cơ gây lỗi cho hệ điều hành trước khi đưa đến tay người dùng.
  • Bất kỳ hệ điều hành hành nào được tạo thì chúng ta đều mong muốn nó đạt được chất lượng tốt nhất. Để hiện thực hóa mong muốn đó thì cần trải qua 3 bài test đánh giá quan trọng và nó được gọi chung là integration testing. Đây là quá trình trung gian giữa Unit Testing các thủ tục sử dụng và vận hành cho công ty nguồn hoặc Acceptance test.
Định nghĩa integration testing

Tại sao cần thực hiện integration testing?

Sau khi tìm hiểu integration testing là gì thì chúng ta cùng nhau khám phá về các ý do cần thực hiện kiểm thử tích hợp. Mặc dù mỗi module đã trải qua quá trình Unit test nhưng vẫn còn tồn tại nhiều lỗi. Vì vậy chúng ta cần tiến hành integration testing để khắc phục lỗi do một số lý do như sau:

  • Một module nói chung được tạo ra bởi một lập trình viên có am hiểu sâu rộng và tư duy logic sẽ khác so với lập trình viên khác. Do đó việc thực hiện kiểm thử là điều tất yếu để đảm bảo sự hợp nhất của phần mềm.
  • Ở thời điểm phát triển Module thì sẽ có sự thay đổi trong Spec của khách hàng. Những thay đổi này thì không thực hiện trong quá trình unit test trước đó.
  • Giao diện cùng cơ sở dữ liệu của những module chưa có sự hoàn hảo khi lắp ghép lại.
  • Trong quá trình tích hợp hệ thống các module thì có thể không tương thích với cấu hình chung của hệ thống hoặc thiếu các xử lý ngoại lệ gây ra.
tại sao cần phải thực hiện Integration testing

Các phương pháp tiếp cận và chiến lược của integration testing

Big-Bang Integration Testing

Định nghĩa

Đây là phương pháp mà tất cả thành phần hoặc module trong Integration Testing đều được tích hợp đồng thời. Sau đó mọi thứ được tiến hành kiểm thử một cách tổng thể.

Big-Bang Integration Testing

Ưu điểm

Thuận tiện cho người dùng trong quá trình làm việc với các dự án nhỏ. Mọi thứ trước đó có thể kết thúc trước khi quá trình kiểm thử bắt đầu.

Nhược điểm

  • Có những khó khăn nhất định trong việc phát hiện ra các bug.
  • Đôi khi bạn có thể bỏ qua các bug có giao diện nhỏ hơn trong quá trình tìm kiếm Bug.
  • Bạn sẽ mất nhiều thời gian hơn cho việc tích hợp các hệ thống dẫn đến thời gian dành cho quá trình kiểm thử bị giảm đi.
  • Vì các module thường được kiểm thử trong cùng một thời gian dẫn đến các Module này có thể bị cô lập trong khi integration testing.
  • Quá trình tích hợp muộn nên việc phát hiện và theo dõi các nguyên nhân thất bại gặp khá nhiều khó khăn.

Bottom-Up Integration Testing

Định nghĩa

Những Module ở mức thấp hơn được thử nghiệm cùng các module cao hơn cho đến khi tất cả module đều được kiểm tra. Phương pháp Integration Testing này được sử dụng cho Driver testing.

Bottom-Up Integration Testing

Ưu điểm

Tiết kiệm thời gian đáng kể bởi không cần chờ đợi tất cả các module được tích hợp. Đồng thời phạm vi Bug được thu gọn dễ dàng hơn.

Nhược điểm

Các module quan trọng của hệ thống có thể dễ mắc lỗi hơn. Nguyên mẫu đầu tiên của hệ thống không có khả năng giữ được.

Top-Down Integration Testing

Định nghĩa

Phương pháp kiểm thử này được triển khai từ trên xuống dưới theo dòng điều khiển hoặc cấu trúc. Nó được dùng cho Stub testing và để theo dõi dòng kiểm soát của các phần mềm hệ thống.

Top-Down Integration Testing

Ưu điểm

  • Có khả năng thu gọn được phạm vi bug dễ dàng hơn
  • Phương pháp này về cơ bản được tiến hành trong một môi trường gần tương tự với môi trường thực tế. Từ đó cho ra các sản phẩm kiểm thử tốt nhất.
  • Các modules quan trọng được kiểm thử trên mức ưu tiên. Một số lỗi lớn trong thiết kế có thể được tìm thấy và cố định dễ dàng.

Nhược điểm

  • Module có những mức độ thấp hơn thì sẽ không được kiểm tra đầy đủ.
  • Cần có sự hỗ trợ của nhiều Stub
  • Những chức năng cơ bản của phần mềm phải đợi đến cuối chu kỳ mới được kiểm tra.

Mixed Integration Testing

Định nghĩa

  • Là phương pháp kiểm thử được thực hiện bằng cách kết hợp 2 hoặc nhiều Module liên quan một cách hợp lý. Tiếp đó các phân hệ liên quan khác được thêm vào và thực hiện kiểm tra sự hoạt động đúng đắn.
  • Lúc này Integration Testing diễn ra tiếp tục cho đến khi các module được tham gia và thử nghiệm thành công. Quá trình được tiến hành dựa trên việc dùng các chương trình giả lập Stub and Driver. Những thông tin sơ khai và trình điều khiển không thể thực hiện được toàn bộ logic của lập trình.
  • Các module chỉ có thể mô phỏng giao tiếp dữ liệu với các module được gọi khác. Trong đó Stub được gọi bởi Module dưới Test và Driver thì gọi Module để được kiểm tra.
Mixed Integration Testing

Ưu điểm

Phát hiện các khiếm khuyết nhanh chóng và dễ dàng tìm ra các nguyên nhân gây lỗi cho hệ thống.

Nhược điểm

Tuy nhiên quá trình thực hiện tốn nhiều thời gian bởi Stubs và Driver phải được phát triển và dùng trong thử nghiệm

Sandwich Testing

Định nghĩa

  • Là sự kết hợp giữa 2 phương pháp kiểm thử Top-Down (từ trên xuống) và Bottom-Up (từ dưới lên). Đây được gọi là kiểm thử tích hợp lai hoặc kiểm thử tích hợp hỗn hợp và hệ thống được tạo từ các lớp gồm:
  • Lớp ở giữa là mục tiêu của kiểm thử còn một lớp bên đích và lớp bên dưới đích thử nghiệm bắt đầu từ lớp ngoài và hội tụ ở lớp giữa.
Sandwich Testing

Ưu điểm

Những lớp trên cùng và dưới cùng đều được tiến hành kiểm thử đồng thời.

Nhược điểm

Quá trình kiểm tra và phát triển các hệ thống con không được tiến hành trước khi tích hợp.

Các bước thực hiện integration testing

Để quá trình kiểm thử được diễn ra một cách hiệu quả thì bạn cần thực hiện các bước sau:

  • Bước 1: Trước tiên bạn cần xác định chiến lược kiểm thử được xét duyệt rồi chọn module hay thành phần bất kỳ để tiến hành việc kiểm tra.
  • Bước 2: Kế tiếp bạn thực hiện kiểm thử đơn vị (Unit Test)
  • Bước 3: Ở đây bạn tiến hành thiết kế các kịch bản thử nghiệm, trường hợp, và Script (Test Scenarios, Cases, and Scripts ). Chú ý cần nghiên cứu kiến trúc của phần mềm dựa trên bản thiết kế và xác định các module quan trọng cần được ưu tiên kiểm thử trong bước này.
  • Bước 4: Triển khai việc kiểm thử theo các kịch bản được thiết kế. Lấy các thiết kế giao diện từ nhóm Kiến trúc và tạo các trường hợp kiểm thử để xác định chi tiết của các giao diện. Ứng dụng phần cứng và phần mềm cùng giao diện với cơ sở dữ liệu phải trải qua quá trình kiểm thử chi tiết.
  • Bước 5: Tiến hành theo dõi và kiểm thử lại tất cả kịch bản thử nghiệm có lỗi. Sau khi các thành phần, module được kiểm tra thì dữ liệu kiểm tra có vai trò rất quan trọng và bạn cần lưu lại để theo dõi.
  • Bước 6: Lặp lại các bước trên cho đến khi hệ thống được hoàn thiện và được kiểm thử tích hợp đầy đủ. Chú ý là bạn luôn cần phải chuẩn bị dữ liệu giả lập trước khi kiểm tra. Tuyệt đối không chuẩn bị dữ liệu kiểm thử khi các trường hợp tiến hành kiểm thử.
Các bước thực hiện integration testing

Tiêu chí bắt đầu và kết thúc của integration testing

Tiêu chí bắt đầu

Để bắt đầu triển khai integration testing cần đáp ứng các yêu cầu:

  • Các module hay thành phần đã được tiến hành kiểm thử đơn vị
  • Những lỗi có mức độ ưu tiên cao đã được sửa chữa.
  • Tất cả module được hoàn chỉnh và tích hợp trong hệ thống phần mềm đầy đủ.
  • Cần có kế hoạch kiểm thử tích hợp, kịch bản thử nghiệm cùng các trường hợp kiểm tra và các tài liệu đã được thông qua.
  • Môi trường kiểm thử được tạo lập đáp ứng được những yêu cầu của integration testing
Tiêu chí bắt đầu của integration testing

Tiêu chí kết thúc

  • Integration test thành công.
  • Lưu lại những trường hợp kiểm thử đã được thực thi.
  • Tất cả lỗi có mức độ ưu tiên cao đã được sửa chữa hết cùng tài liệu kỹ thuật đã được bàn giao.

Đến đây thì bạn đọc đã gỡ bỏ được những khúc mắc về vấn đề integration testing là gì. Không thể phủ nhận được tầm quan trọng của kiểm thử trong lĩnh vực thiết kế phần mềm hay hệ điều hành. Kiểm thử tích hợp đảm bảo chất lượng, sự vận hành của phần mềm đáp ứng mong muốn người dùng. Nếu bạn đam mê với lĩnh vực này hãy nỗ lực học hỏi và phát triển bản thân hơn nữa nhé!

5/5 - (2 bình chọn)
Từ khóa:
Bình luận
Icon Phone