Інтеграційне тестування - частина великого проекту

Інтеграційне тестування - частина великого проекту

Жодна розробка програмного забезпечення не обходиться без тестування виконуваного коду. Фактично, на це йде половина всього часу, витраченого на розробку, і більше половини вартості проекту. Однак це невід 'ємна частина процесу створення нових додатків, програм, систем.

Інтеграційне тестування як частина великої роботи

Один із способів контролю якості програмного забезпечення - інтеграційне тестування, на вхід якого подаються окремо взяті модулі, протестовані на попередньому етапі.

На відміну від модульного варіанту, в ході якого виявляються помилки, локалізовані в кожній окремо взятій функції або класі, інтеграційне тестування - це пошук дефектів, пов 'язаних з реалізацією взаємодії між окремими частинами створюваного продукту. Інтеграційне функціональне тестування використовує метод "білої скриньки", тобто інженеру за якістю доступні і відомі тексти кожного окремого модуля, а також принципи взаємодії між ними.

Методи збирання додатків

Монолітний метод означає, що всі модулі, які в майбутньому будуть піддані інтеграційному тестуванню, збираються воєдино одночасно. Майже напевно виникають ситуації, коли частина тестованого комплексу ще не готова.

У такому випадку її замінюють додатково розробленими "" заглушками ", або драйверами.

Поряд з монолітним методом виділяють інкрементальний (його ще називають покроковим), оскільки обсяг тестованого коду нарощується поступово, даючи локалізувати ділянки з дефектами у взаємозв 'язках між окремими частинами.

Інкрементальний метод включає два способи додавання додатків:

  • зверху-вниз або висхідний,
  • знизу-вгору - спадний.

Особливості монолітного та інкрементального тестування

Головний недолік монолітного виду складання - велика кількість часу і трудовитрат йде на імітацію відсутніх частин тестованого комплексу. Здавалося б, заглушки - досить зручний інструмент тестування, однак виникають ситуації, коли в процесі доводиться створювати заново імітаційні частини програми. Наприклад, у разі зміни складу тестованих модулів. Крім того, ефективність пошуку дефектів не така висока, коли робота ведеться не з реальним продуктом, а лише з фіктивним компонентом. Цей же недолік супроводжує й інкрементальне тестування зі висхідним способом складання.


Водночас одним з недоліків покрокового методу є необхідність організації та створення середовища для виконання модулів у заданій послідовності. А також практично неможлива паралельна розробка верхніх і нижніх рівнів.

Звичайно ж, обидва способи складання, монолітний та інкрементальний, мають не тільки недоліки, а й гідності. У першому випадку з 'являються відмінні можливості для паралельної розробки всіх класів і функцій, що беруть участь у тестуванні, як на початковому етапі, так і після доопрацювання. Покроковий же метод менш працевитратний: модулі приєднуються поступово, і так само поступово виявляються помилки і дефекти. Це, як відомо, дозволяє скоротити час на пошук таких.

Переваги проведення інтеграційного тестування

На цьому етапі проводиться колосальна робота перевірки взаємозв 'язків усіх рівнів, без чого, звичайно ж, неможливе подальше тестування.

Інтеграційне тестування програмного забезпечення має ряд переваг:

  • перевірка інтерфейсу взаємодії між окремими додатками програми;
  • контроль взаємозв 'язків тестованого комплексу зі сторонніми програмними рішеннями;
  • тестування роботи зовнішніх компонентів вирішення;
  • контроль відповідності документації по проекту в частині взаємодії окремих модулів.

Виправлення дефектів

Інтеграційне тестування завершено, проте це ще не все. Знайдені помилки фіксуються і відправляються розробнику для виправлення, після чого процес починається заново.

По-перше, необхідно перевірити, чи були усунені виявлені дефекти. По-друге, під час зміни вихідного коду могли виникнути нові помилки в роботі програми і взаємодії зі стороннім ПЗ.

Хоча в даний час і існує велика кількість методів контролю якості, як і раніше важливу роль відіграє інтеграційне тестування. Приклад такого виду перевірки може наочно продемонструвати "вузькі" місця при розробці програмного забезпечення та документації.


Автоматизація тестування

Залежно від обсягу вихідного комплексу даних та предметної галузі розробки може вставати проблема часу тестування та трудомісткості заходу в цілому.

Для найбільш ефективної перевірки розробки необхідно використовувати величезну кількість вхідних даних і умов, з чим "вручну" впоратися неможливо. Для вирішення цієї проблеми використовується автоматизація тестування. Як і інші види, інтеграційне тестування також може бути автоматизоване. Це дозволить скоротити час розробки в цілому, а також підвищить ефективність процесу виявлення помилок.

Однак автоматизація тестування не може повністю замінити працю інженера за якістю, а лише доповнити його.

Отже, інтеграційне тестування - це невід 'ємна частина розробки будь-якого програмного забезпечення і один з етапів всього процесу перевірки якості продукту. Як і будь-який метод, він має ряд переваг і недоліків, але без його застосування стає неможливою якісна розробка ПЗ.