Важный момент: хотя по спеку все три компонента и взаимосвя-
заны, из-за проблем в коде у нас получилось компонентное тес-
тирование в чистом виде. Другими словами, мы тестировали са-
ми компоненты, а не связь между ними.
Тестирование связи между компонентами называется интегра-
ционным тестированием.
ИНТЕГРАЦИОННОЕ ТЕСТИРОВАНИЕ
У нас есть три связи между компонентами:
а) между 1-м и 2-м компонентами;
б) между 2-м и 3-м компонентами;
в) между 1-м и 3-м компонентами.
Подробности:
а. Компонент 1 генерирует файл со списком
• е-мейлов и полных имен подходящих пользователей и
• номерами сертификатов.
Этот список используется компонентом 2, который ответ-
ствен за рассылку е-мейлов.
б. Компонент 2 доставляет пользователю в качестве е-мейла
информацию о подарочном сертификате. Пользователь
может использовать сертификат (компонент 3), только ес
ли он знает правильный номер своего сертификата.
в. Компонент 1 генерирует код сертификата, который ис
пользуется компонентом 3.
Итак, в нашем случае при интеграционном тестировании у нас
есть для проверки 3 связи. Приведем примеры соответствующих
тестов на интеграцию.
а. Здесь можно проверить, совместим ли формат файла, соз-
данного компонентом 1, с программой рассылки компонента 2.
Например, последняя принимает следующий формат файла:
полное имя пользователя, е-мейл, номер сертификата.
164
Значения отделены друг от друга запятой
формация о каждом новом пользователе — на новой строчке.
Сам файл — простой текстовый файл, который можно открыть
программой
Образец файла:
Допустим, программист ошибочно заложил в коде, что значения
файла разделяются не запятой (форматом, принимаемым про-
граммой рассылки), а точкой с запятой:
Когда мы проводим интеграционный тест, мы обнаруживаем, что
программа рассылки не принимает файл неподходящего формата,
и соответственно никакие е-мейлы до пользователей не дойдут,
если этот баг не будет устранен.
б. В данном случае у нас может быть ситуация, когда файл
имеет верный номер сертификата, но из-за бага в программе рас
сылки пользователь получает е-мейл с "неправильным" номером
сертификата.
Интеграционный тест по использованию номера сертификата,
полученного по е-мейлу, может выявить этот баг.
в. Здесь может быть ситуация, когда номер сертификата, сгене
рированный компонентом 1, не принимается компонентом 3.
165