Функціональне та нефункціональне тестування — це два основні типи тестування програмного забезпечення, які відрізняються метою перевірки: що система робить і як добре вона це робить.
| Функціональне тестування (Functional Testing) |
| Що це: Тестування, яке перевіряє, чи виконує система свою функціональність відповідно до вимог. Орієнтоване на: Поведінку системи Коректність обробки даних Результати виконання функцій Приклади функцій, які тестуються: Авторизація Реєстрація Обробка транзакцій Робота кнопок і форм Питання, на які відповідає: «Чи робить програма те, що має робити?» |
| Нефункціональне тестування (Non-functional Testing) |
| Що це: Тестування, яке перевіряє якість, продуктивність і інші нефункціональні характеристики системи. Орієнтоване на: Швидкість Надійність Безпеку Зручність використання Сумісність Приклади характеристик, які тестуються: Час відгуку системи Стійкість під навантаженням Захист даних Підтримка різних браузерів або пристроїв Питання, на які відповідає: «Наскільки добре програма працює» |
Основна різниця:
| Критерій | Функціональне тестування | Нефункціональне тестування |
| Що перевіряє | ЩО система робить | ЯК система це робить |
| Орієнтація | Поведінка, функціональність | Продуктивність, безпека, зручність, надійність |
| Засноване на | Функціональних вимогах | Нефункціональних вимогах або критеріях якості |
| Приклади | Вхід/вихід, логін, пошук | Навантаження, час відгуку, UX, захист паролів |
Підсумки:
Обидва типи є необхідними для повного тестового покриття.
- Без функціонального тестування — програма може не працювати як задумано.
- Без нефункціонального тестування — програма може працювати, але повільно, небезпечно або незручно.