Задачи модульного тестирования возникают на разных этапах разработки программного обеспечения: от первоначальной реализации проекта до его обслуживания и последующих доработок. Эти задачи различаются по своей сложности и назначению и соответственно по-разному подходят разным разработчикам. Широкий спектр задач в проблемной области приводит к тому, что многие требования (иногда противоречивые) размещаются в рамках модульного тестирования. К ним относятся:
Рамки должны позволять продвинутым пользователям выполнять нетривиальные тесты.
Тестовый модуль должен иметь много небольших тестовых корпусов, а разработчик должен иметь возможность сгруппировать их в тестовые наборы.
В начале разработки пользователи хотят видеть многословные и описательные сообщения об ошибках.
Во время регрессионного тестирования пользователи просто хотят знать, провалились ли какие-либо тесты.
Для небольших тестовых модулей их время выполнения должно преобладать над временем компиляции: пользователь не хочет ждать минуту, чтобы составить тест, который занимает секунду для запуска.
Для длительных и сложных тестов пользователи хотят видеть прогресс тестирования.
Простейшие тесты не требуют наличия внешней библиотеки.
Для долгосрочного использования пользователи Unit Test Framework должны иметь возможность создавать его как отдельную библиотеку.
Unit Test Framework удовлетворяет вышеуказанным требованиям и обеспечивает универсальные возможности для:
Хотя вы можете написать программу тестирования самостоятельно с нуля, фреймворк предлагает следующие преимущества:
Вы получаете сообщение об ошибке в текстовом формате. Отчеты об ошибках унифицированы, и вы можете легко их анализировать.
Отчетность об ошибках отделена от тестового кода. Вы можете легко изменить формат отчета об ошибке, не влияя на код тестирования.
Фреймворк автоматически обнаруживает исключения, выбрасываемые тестируемыми компонентами и тайм-ауты, и сообщает о них наряду с другими ошибками.
Вы можете легко отфильтровать тестовые кейсы, а назвать только нужные. Это не требует изменения тестового кода.
Статья Design rationale раздела Boost.Test Introduction может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.