Рівні тестування (модульний, інтеграційний, системний, валідаційний)
Розділ: Інженерія систем і програмного забезпечення
📌 Про що ця тема
Тестування програмного забезпечення — це перевірка того, чи працює система правильно й відповідає вимогам. Рівні тестування показують, НА ЯКОМУ етапі розробки і ЩО саме ми перевіряємо: від окремого шматка коду до готового продукту в руках замовника. Ключове поняття — чотири послідовні рівні: модульний → інтеграційний → системний → валідаційний.
📖 Головне
• Тестування загалом — процес виявлення дефектів (помилок) і перевірки відповідності вимогам. Воно НЕ доводить відсутність помилок, лише виявляє їх наявність.
• Модульний (unit) рівень — перевірка найменших окремих частин: функцій, методів, модулів ІЗОЛЬОВАНО від решти. Мета — переконатися, що кожна деталь працює сама по собі. Зазвичай виконують розробники.
• Інтеграційний рівень — перевірка ВЗАЄМОДІЇ між модулями: чи правильно вони передають дані один одному, чи сумісні інтерфейси. Помилки тут — у «стиках», навіть коли кожен модуль окремо справний.
• Системний рівень — перевірка системи ЦІЛКОМ як єдиного продукту на відповідність технічним вимогам (специфікації). Тестують не частини, а всю функціональність разом, часто у середовищі, близькому до робочого.
• Валідаційний рівень (приймальне, acceptance) — перевірка, чи задовольняє готовий продукт ПОТРЕБИ замовника/користувача. Відповідає на питання «чи ту систему ми побудували?».
• Різниця верифікації і валідації: верифікація — «чи правильно робимо продукт» (відповідність специфікації); валідація — «чи правильний продукт робимо» (відповідність реальним потребам).
• Порядок рівнів відображає рух від дрібного до цілого: спершу деталі, потім їх зв'язки, далі вся система, наприкінці — оцінка замовником.
🔢 Як це працює на прикладі
Розробляють інтернет-магазин.
• Модульний: тестують функцію підрахунку знижки — подають число 100 і 20%, очікують 80. Окремо, без бази даних.
• Інтеграційний: перевіряють, що модуль «кошик» правильно передає суму модулю «оплата».
• Системний: проходять увесь сценарій — реєстрація, вибір товару, оплата, лист на пошту — у всій системі разом.
• Валідаційний: замовник перевіряє, чи магазин справді вирішує його задачу (зручно продавати товар), і приймає роботу.
⚠️ Типові помилки
• Плутають інтеграційний і системний рівні: інтеграційний — про взаємодію ПАР/груп модулів, системний — про всю систему як ціле.
• Плутають верифікацію і валідацію: верифікація — проти специфікації, валідація — проти потреб користувача.
• Вважають, що модульне тестування перевіряє зв'язки між модулями — ні, воно ІЗОЛЬОВАНЕ.
• Думають, що тестування доводить, що помилок немає — воно лише виявляє наявні.
• Плутають порядок рівнів або вважають, що валідація = системне тестування.
🎯 Що завчити напам'ять
• Порядок: модульний → інтеграційний → системний → валідаційний.
• Модульний — окрема частина; інтеграційний — взаємодія; системний — уся система; валідаційний — потреби замовника.
• Верифікація = відповідність специфікації; валідація = відповідність потребам.
🧠 Перевір себе
1. Який рівень перевіряє взаємодію між двома модулями?
2. Чим валідація відрізняється від верифікації?
3. На якому рівні тестують готовий продукт цілком проти технічних вимог?
4. Хто зазвичай виконує модульне тестування?
Відповіді: 1 — інтеграційний; 2 — валідація перевіряє відповідність потребам користувача, верифікація — відповідність специфікації; 3 — системний; 4 — розробники.