2010-03-16 3 views
21

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

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

Благодаря

ответ

4

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

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

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

5

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

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

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

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

Смежные вопросы