Впровадження практики модульного тестування базується на двох ключових принципах: створення ефективного тестового набору та вибір способу об’єднання модулів у виконувану програму. Другий принцип є дуже важливим, оскільки він визначає формат написання модульних тестів, типи інструментів, що використовуються при тестуванні, порядок кодування та тестування модулів, вартість генерації тестів та вартість налагодження (тобто локалізації та виправлення помилок). Зараз ми розглянемо два підходи до об’єднання модулів: інкрементне та монолітне тестування.

Виникає питання: що краще - тестувати кожен модуль окремо, а потім об’єднати їх в програму виконання, або підключити кожен тестовий модуль до набору раніше протестованих модулів? Перший підхід зазвичай називають методом монолітного тестування або методом “великого впливу”, який використовується для тестування та збірки програми; другий підхід відомий як інкрементне тестування або конфігурація. Послуги з контролю якості використовуються для покращення якості програмних додатків під час їхньої розробки.
Як приклад, розглянемо програму на наведеному вище рис. Прямокутники - це шість програмних модулів (підпрограм або процедур). Лінії показують ієрархію управління: модуль A викликає модулі B, C і D, модуль B викликає модуль E і так далі. При традиційному монолітному підході тестування виконується наступним чином. Спочатку тестуються шість модулів, що входять до складу програми, причому кожен тестується ізольовано від інших. Залежно від умов (пакетна обробка або інтерактивний режим) та кількості акторів, модулі можуть тестуватися послідовно або паралельно. Потім модулі можуть бути зібрані і об’єднані в єдину програму (наприклад, шляхом редагування посилань).
Щоб протестувати будь-який модуль, вам потрібен спеціальний модуль-драйвер і один або кілька модулів-заглушок. Наприклад, якщо тестується модуль B, то спочатку потрібно розробити тести, а потім написати невелику програму, яка буде передавати модулю B вхідні тестові дані, необхідні для його виконання (запускати для нього тест). (Для цього також можна використовувати засоби налагодження.) Драйвер також повинен показувати програмісту деяку інформацію про результати роботи модуля B. Крім того, оскільки модуль B може викликати модуль E, рекомендується створити модуль-заглушку, який буде отримувати управління при виклику модуля E. Модулю-заглушці, який використовується замість модуля E під час тестування, також присвоюється ім’я “E”, і він повинен імітувати функції цього модуля. Після завершення тестування всіх шести модулів вони збираються в єдину програму.










0 коментарів