System Testing (системне тестування)

System Testing (Системне тестування) — це рівень тестування, під час якого тестується повністю зібрана, інтегрована система, яка складається з усіх компонентів (модулів), але ще не включає зовнішніх систем або середовищ.

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

Контекст у рівнях тестування

Згадаємо рівні тестування та місце System Testing:

Рівні тестування (Test Levels)

Рівень тестуванняЩо тестуєтьсяОсновна мета
1. Unit TestingОкремі компоненти (класи, методи, функції)Перевірка правильності логіки окремих одиниць
2. Component Integration TestingВзаємодія між компонентами системиПеревірка коректної інтеграції модулів
3. System TestingУся система як цілісний продуктПеревірка відповідності вимогам
4. System Integration TestingВзаємодія системи з іншими зовнішніми системамиПеревірка інтеграції на рівні міжсистемному
5. Acceptance TestingГотовий продукт з точки зору користувачаПеревірка прийнятності продукту для релізу

Коли проводиться?

System Testing виконується після успішного завершення Component Integration Testing, коли всі окремі компоненти вже інтегровані та працюють разом. Система на цьому етапі вважається функціонально повною, але ще не взаємодіє з зовнішніми системами (API, сторонні сервіси, інші підсистеми тощо).

Ціль System Testing

Перевірити, чи відповідає вся система вимогам, зазначеним у:

  • функціональній специфікації
  • технічному завданні
  • бізнес-вимогах
  • документації користувача

Хто виконує

System Testing зазвичай проводиться незалежною командою тестувальників. Часто використовується техніки “чорної скриньки, коли тестувальник не має знань про внутрішню реалізацію системи, а перевіряє лише зовнішню поведінку.

Що саме тестується

System Testing охоплює повний набір функціональних і нефункціональних тестів:

Функціональне тестування:

  • Перевірка бізнес-логіки
  • Перевірка обробки помилок
  • Валідація даних
  • Тестування ролей користувачів
  • Перевірка навігації та взаємодії

Нефункціональне тестування:

  • Performance Testing (тестування продуктивності)
  • Security Testing (перевірка безпеки)
  • Usability Testing (юзабіліті-тестування)
  • Compatibility Testing (сумісність із ОС, браузерами, пристроями)
  • Localization Testing (перевірка перекладів, форматів дат тощо)
  • Accessibility Testing (відповідність стандартам WCAG для користувачів з обмеженими можливостями)

Відмінність від суміжних рівнів

Порівняння з Component Integration Testing:

ПараметрComponent Integration TestingSystem Testing
Що перевіряєтьсяВзаємодія між компонентамиПовна система як єдине ціле
Рівень деталізаціїСередній (компоненти)Високий (усі фічі, як бачить користувач)
ПідхідЧасто “білого ящика”Зазвичай “чорного ящика”
ФокусІнтерфейси, обмін даними між модулямиПовна відповідність системи вимогам

Порівняння з System Integration Testing:

ПараметрSystem TestingSystem Integration Testing
ФокусВнутрішня цілісність системиВзаємодія з іншими системами
Включає зовнішні системи?НіТак
ПрикладРеєстрація користувача, додавання товару до кошикаІнтеграція з платіжною системою, ERP
Залежність від середовищаВ основному автономне середовищеІнтегроване середовище з іншими системами

Приклади System Testing

  • Ви тестуєте CRM-систему: перевіряєте реєстрацію клієнта, створення лідів, створення угоди, зміну статусу, генерацію звіту.
  • Ви тестуєте e-commerce платформу: проходите повний шлях користувача — від перегляду товарів до оформлення замовлення.

Переваги System Testing

  • Дозволяє виявити дефекти, що проявляються лише на рівні взаємодії всіх компонентів.
  • Імітує поведінку реального користувача.
  • Перевіряє виконання вимог замовника.

Недоліки System Testing

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

Підсумки

System Testing — це тестування повної системи на відповідність вимогам, яке виконується після того, як окремі компоненти були зібрані та протестовані разом (Component Integration Testing), але ще до взаємодії із зовнішніми системами (System Integration Testing).

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

Leave a Reply

Your email address will not be published. Required fields are marked *