Основний обсяг тестування практично будь-якої складної системи зазвичай виконується в автоматичному режимі. Крім того, тестована система зазвичай розбивається на окремі модулі, кожен з яких тестується спочатку окремо від інших, потім в комплексі.
Це означає, що для виконання тестування необхідно створити деяку середу, яка забезпечить запуск і виконання тестового модуля, передасть йому вхідні дані, збере реальні вихідні дані, отримані в результаті роботи системи на заданих вхідних даних. Після цього середовище має порівняти реальні вихідні дані з очікуваними і на підставі даного порівняння зробити висновок про відповідність поведінки модуля заданому (Рис. 9).
Мал. 9 Узагальнена схема середовища тестування
Тестове оточення також може використовуватися для відчуження окремих модулів системи від всієї системи. Поділ модулів системи на ранніх етапах тестування дозволяє більш точно локалізувати проблеми, що виникають в їх програмному коді. Для підтримки роботи модуля у відриві від системи тестове оточення має моделювати поведінку всіх модулів, до функцій або даними яких звертається тестовий модуль.
Оскільки тестове оточення саме є програмою (причому, часто вже не тією мовою програмування, на якому написана система), воно саме повинно бути протестовано. Метою тестування тестового оточення є доказ того, що тестове оточення ніяким чином не спотворює виконання тестового модуля і адекватно моделює поведінку системи.