Как сделать интеграционное тестирование? - PullRequest
21 голосов
/ 17 марта 2010

О модульном тестировании написано так много, но я почти не нашел книг / блогов об интеграционном тестировании? Не могли бы вы предложить мне что-нибудь почитать на эту тему?

Какие тесты написать при проведении интеграционного тестирования? Что делает хороший интеграционный тест? и т. д.

Спасибо

Ответы [ 3 ]

5 голосов
/ 17 марта 2010

Все, что написано Кентом Беком , отцом JUnit и SUnit, является отличным местом для начала (для модульных тестов / написания тестов в целом). Я предполагаю, что вы не имеете в виду «непрерывную интеграцию», которая представляет собой подход к сборке на основе процессов (очень круто, когда вы работаете).

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

Я считаю, что интеграционные тесты похожи на лук. У них есть слои.

Некоторые люди предпочитают «интегрировать» все свои компоненты и протестировать «целый» продукт как «интеграционный» тест. Конечно, вы можете сделать это, но я предпочитаю более постепенный подход. Если вы начнете низкоуровневое тестирование, а затем продолжите тестирование на более высоких композиционных уровнях, то вы достигнете интеграционного тестирования.

4 голосов
/ 17 марта 2010

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

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

Но то, что я нашел чрезвычайно полезным, по крайней мере для приложений, ориентированных на данные, - это возможность создавать «консольную» версию приложения, которая принимает входные файлы, которые полностью определяют его состояние (без зависимостей от баз данных, сети ресурсы ...) и выводит результат в виде другого файла. Затем можно поддерживать пары файлов входных данных / ожидаемых результатов и, например, проверять регрессии в рамках ночных сборок. Наличие этой консольной версии упрощает создание сценариев и невероятно упрощает отладку, поскольку можно полагаться на очень стабильную среду, в которой легко воспроизводить ошибки и запускать отладчик.

2 голосов
/ 17 марта 2010

J.B. Рейнсбергер написал о них. Вот ссылка на статью InfoQ с дополнительной информацией.

http://www.infoq.com/news/2009/04/jbrains-integration-test-scam

...