
Класифікація тестування Рівні тестування
Модульне тестування (англ. Unit testing) — це метод тестування програмного забезпечення, який полягає в окремому тестуванні кожного модуля програми. Модулем називають найменшу частину програми, яку може бути протестованою.
Вхідні вимоги - Архітектура компонентів або модель "нижнього рівня" системи (Component Design або Low Level Design) Об'єкт тестування - Розроблені компоненти Визначення: На даному рівні тестуються окремо невеликі елементи системи, максимально відокремлені від інших елементів і, в той же час, придатні для тестування. Таке тестування зазвичай проводиться відразу ж слідом за розробкою кожного з елементів і направлено на оцінку відповідності функціональності кожного з компонентів спроектованої "моделі компонентів".
Інтеграційне тестування (англ. Integration testing) — це фаза тестування програмного забезпечення, під час якої окремі модулі програми комбінуються та тестуються разом, у взаємодії.
Вхідні вимоги - Архітектура системи або модель "верхнього рівня" системи (System Design або High Level Design) Об'єкт тестування - Зібрана з компонентів система або підсистема Визначення: На даному рівні тестуються об'єднані елементи (компоненти або підсистеми) загальної системи, найчастіше деяка взаємодіюча між собою група елементів. Комплексне тестування спрямоване не на перевірку функціонування кожного з компонентів, а на перевірку взаємодії компонентів відповідно до «Архітектурою системи». Тести даного рівня зазвичай перевіряють всі інтерфейси взаємодії між компонентами, визначені в системній архітектурі, до тих пір, поки всі компоненти не будуть розроблені, налагоджені і проинтегрировал один з одним в єдину систему.
Системне тестування (англ. System testing) тестує інтегровану систему для перевірки відповідності всім вимогам. Виявляє наступні дефекти:
невірне використання ресурсів системи,
непередбачувані комбінації даних користувальницького рівня,
несумісність із оточенням,
непередбачувані сценарії використання,
відсутня або невірна функціональність,
незручність у застосуванні тощо.
Вхідні вимоги - Системні специфікації (System Specification) Об'єкт тестування - Розроблена система Визначення: Після того, як система зібрана зі складових компонентів, вона повинна бути протестована на відповідність "Системним специфікаціям" - реалізовані чи всі функціональні і нефункціональні вимоги до розроблюваної системі. На даному рівні тестується додаток або система (одне або більше додатків) цілком. Приймальне тестування (приймально-здавальних тестування або acceptance testing) Вхідні вимоги - Вимоги (Requirements) Об'єкт тестування - Розроблена система Визначення: На даному рівні завершене додаток (система) тестується Замовником, кінцевими користувачами або відповідними уповноваженими з метою визначення відповідності системи "Вимогам Замовника" і готовності системи до впровадження. Проектні випробування оформляють процес передачі продукту від Розробника Замовнику. Залежно від особливостей продукту і від вимог Замовника вони можуть проводитися в різній формі. Наприклад, у вигляді альфа-або бета-тестування.
Приймальне тестування (англ. Acceptance testing) – формальний процес тестування, який перевіряє відповідність системи вимогам і проводиться з метою визначення чи задовільняє система приймальним критеріям замовника.
Приймальне тестування схоже з системним тестуванням, але з наступним розходженням: Системне тестування перевіряє, що розроблена система відповідає специфікованою вимогам; Приймальне тестування перевіряє, що розроблена система задовольняє замовленим вами Замовником вимогам з упором на потреби кінцевих користувачів в даній предметній області. Операційне тестування (Release Testing) Вхідні вимоги - Бізнес модель (Business Case або Business Model) Об'єкт тестування - Розроблена система Визначення: Навіть якщо система задовольняє всім вимогам, важливо переконатися в тому, що вона задовольняє потребам користувача і виконує свою роль в середовищі своєї експлуатації, як це було визначено в бізнес-моделі системи. Слід врахувати, що і Бізнес модель може містити помилки. Тому так важливо провести операційне тестування як фінальний крок Валідації. Крім цього, тестування в середовищі експлуатації дозволяє виявити і нефункціональні проблеми, такі як: конфлікт з іншими системами, суміжними в області бізнесу або в програмних та електронних оточеннях; недостатня продуктивність системи в середовищі експлуатації та ін. Очевидно, що знаходження подібних речей на стадії впровадження - критична й дорога проблема. Тому так важливо проведення не тільки верифікації, а й валідації, з самих ранніх етапів розробки ПЗ.