Системне тестування
Сист́емне тестув́ання є одним з рівнів тестування програмного забезпечення. Системне тестування тестує інтегровану систему для перевірки відповідності всім вимогам.
[ред.] Тестування всієї системи
Системне тестування якісно відрізняється від інтеграційного й модульного рівнів. Системне тестування розглядає систему, що тестується в цілому й оперує на рівні користувацьких інтерфейсів, на відміну від останніх фаз інтеграційного тестування, що оперує на рівні інтерфейсів модулів. Різні й цілі цих рівнів тестування. На рівні системи часто складно та малоефективно аналізувати проходження тестових траєкторій усередині програми або відслідковувати правильність роботи конкретних функцій. Основне завдання системного тестування — у виявленні дефектів, пов’язаних з роботою системи в цілому, таких як
- невірне використання ресурсів системи,
- непередбачувані комбінації даних користувальницького рівня,
- несумісність із оточенням,
- непередбачувані сценарії використання,
- відсутня або невірна функціональність,
- незручність у застосуванні тощо.
Системне тестування відбувається над проектом у цілому за допомогою методу «чорного ящика». Структура програми не має ніякого значення, для перевірки доступні тільки входи й виходи, видимі користувачеві. Тестуванню підлягають коди та документація користувача.
Категорії тестів системного тестування:
- Повнота рішення функціональних завдань.
- Стресове тестування — на граничних обсягах навантаження вхідного потоку.
- Коректність використання ресурсів (витік пам’яті, повернення ресурсів).
- Оцінка продуктивності.
- Ефективність захисту від спотворення даних і некоректних дій.
- Перевірка інсталяції й конфігурації на різних платформах.
- Коректність документації.
Оскільки системне тестування проводиться на користувацьких інтерфейсах, створюється ілюзія того, що побудова спеціальної системи автоматизації тестування не завжди необхідна. Проте обсяги даних на цьому рівні такі, що звичайно більш ефективним підходом є повна або часткова автоматизація тестування, що приводить до створення тестової системи набагато складнішої, ніж система тестування, що застосовується на рівні тестування модулів або їх комбінацій.
[ред.] Дивіться також
Тестування програмного забезпечення