Если проект покрывает 100% модульных тестов, все еще нужны интеграционные тесты? - PullRequest
8 голосов
/ 17 февраля 2009

Если проект покрывает 100% модульных тестов, все еще нужны интеграционные тесты?

Я никогда не работал над проектом со 100% охватом модульных тестов, но мне интересно, получил ли ваш проект это (или 90%), был ли у вас опыт, что вам все еще нужны интеграционные тесты? (тебе нужно меньше?)

Я спрашиваю, потому что интеграционные тесты кажутся неудачными. Они часто медленны, хрупки (легко ломаются), непрозрачны (когда сломан, кто-то должен пройти через все слои, чтобы выяснить, что не так) и заставляют наш проект замедляться ... Я начинаю думать, что имея Только юнит-тесты (и, возможно, небольшая кучка тестов на дым) - это путь.

В долгосрочной перспективе кажется, что интеграционные тесты (по моему опыту) стоят больше, чем они экономят.

Спасибо за внимание.

Ответы [ 13 ]

0 голосов
/ 17 февраля 2009

Этот точный вопрос был просто задан день назад. См. этот вопрос , где вы найдете множество ошибок, с которыми вы можете столкнуться даже при 100% покрытии кода.

0 голосов
/ 17 февраля 2009

Я регулярно вижу все виды проблем, обнаруженных при хорошем интеграционном тестировании, особенно если вы можете автоматизировать некоторые из ваших интеграционных тестов.

Модульные тесты - это хорошо, но вы можете достичь 100% покрытия кода без 100% релевантности в ваших модульных тестах. Вы действительно пытаетесь проверить разные вещи, верно? В модульных тестах вы обычно ищете крайние случаи для конкретной функции, тогда как интеграционное тестирование покажет вам проблемы на более высоком уровне, поскольку все эти функции взаимодействуют.

Если вы встраиваете API в свое программное обеспечение, вы можете использовать его для автоматизированного интеграционного тестирования - в прошлом я многому из этого помог. Я не знаю, насколько далеко я бы сказал, что я дам дамп-тесты в пользу интеграционных тестов, но когда все сделано правильно, это действительно мощное дополнение.

0 голосов
/ 17 февраля 2009

Да, потому что функциональность вашего программного обеспечения зависит от того, как оно взаимодействует. Модульные тесты зависят от того, поступите ли вы с входными данными и определите ли вы ожидаемый результат. Это не гарантирует, что оно будет работать с остальной частью вашей системы.

Да. Интеграционное тестирование - это трудная задача, когда вы вводите изменения кода, которые намеренно изменяют вывод. С нашим программным обеспечением мы минимизируем это, концентрируясь на сравнении результата сохранения интеграционного теста с сохраненным правильным результатом.

У нас есть инструмент, который можно использовать, когда мы уверены, что производим правильные результаты. Он загружает старые сохраненные правильные результаты и модифицирует их для работы с новой настройкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...