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