По степени изолированности тестируемых компонентов



компонентноетестирование (component testing);

интеграционноетестирование (integration testing);

системное (или энд-ту-энд) тестирование (system or end-to-end testing).

Сначала краткие и емкие определения, а затем иллюстрации.


Классификация видов тестирования


161


Компонентноетестирование (component testing) — это тестиро­вание на уровне логического компонента. И это тестирование самого логического компонента.

Интеграционноетестирование (integration testing) — это тести­рование на уровне двух или больше компонентов. И это тестиро­вание взаимодействияэтих двух или больше компонентов.

Системное(или энд-ту-энд) тестирование (system or end-to-end testing) — это проверка всей системы от начала до конца.

Теперь иллюстрации кратких и емких определений.

Допустим, программисту поставлена задача написать код, который бы находил полные имена и е-мейлы пользователей,потра­тивших больше 1000 долл. в нашем онлайн-магазине с момента регистрации. Таким пользователям должен быть отправлен е-мейл с подарочным сертификатом,использование которого до 17 но­ября включительно предоставит 5%-ю скидку на любую разовую покупку.

Кстати, для добротного тестирования данной функциональности нужно написать гораздо больше тест-кейсов, чем я приведу, но сейчас наша задача — это понять

суть каждого из трех рассматриваемых видов тестирования и разницу между ними.

КОМПОНЕНТНОЕ ТЕСТИРОВАНИЕ

Для начала выделим три компонента, которые мы протестиро­вали бы:

1. Создание файла с полными именами, е-мейлами и номера­ми сертификатов.

2. Рассылка пользователям е-мейлов.

3. Правильное предоставление скидки вышеуказанным поль­зователям.

Проверяем. Компонент 1

Проверяем, что создается файл нужного формата

• с полными именами и е-мейлами пользователей, потратив­ших > 1000 долл., и

• номером сертификата для каждого из этих пользователей.


162


Тестирование Дот Ком. Часть 2


Это позитивное тестирование.

Мы также должны проверить, не затесались ли в наш файл пользователи, потратившие < 1000 долл.

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

Компонент 2

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

• е-мейлами,

• полными именами пользователей и

• номерами подарочных сертификатов.

Этот файл мы "скармливаем" программе рассылки е-мейлов и проверяем, что правильные е-мейлы доходят до пользователей из файла(позитивное тестирование).

Компонент 3

Как мы помним, компонент 1 не работает. Что делать?

Сертификат — это как некий код, например "UYTU764587657". который нужно ввести во время оплаты, и если сертификат дей­ствительный, то итоговая сумма к оплате уменьшается.

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

до 17 ноября (позитивное тестирование), 17 ноября (позитивное тестирование) и

после 17 ноября (негативное тестирование, воспроизводя­щее ошибку пользователя, использующего просроченный сер­тификат).


Классификация видов тестирования


163


Кстати, в случаях когда тестирование связано со сроками (например, сроком истечения сертификата), мы, естественно, не ждем до 17 но­ября, а просто меняем системное время тест-машины на нужное время или меняем значение времени в базе данных. Естественно, что такие изменения вы должны предварительно согласовать с коллегами, кото­рые работают на той же тест-машине или с той же базой данных.

Важный момент:хотя по спеку все три компонента и взаимосвя­заны, из-за проблем в коде у нас получилось компонентное тес­тированиев чистом виде. Другими словами, мы тестировали са­ми компоненты, а не связьмежду ними.

Тестирование связи между компонентами называется интегра­ционным тестированием.

ИНТЕГРАЦИОННОЕ ТЕСТИРОВАНИЕ

Унас есть три связи между компонентами:

а) между 1-м и 2-м компонентами;

б) между 2-м и 3-м компонентами;

в) между 1-м и 3-м компонентами.

Подробности:

а. Компонент 1 генерирует файл со списком

• е-мейлов и полных имен подходящих пользователей и

• номерами сертификатов.

Этот список используется компонентом 2, который ответ­ствен за рассылку е-мейлов.

б. Компонент 2 доставляет пользователю в качестве е-мейла
информацию о подарочном сертификате. Пользователь
может использовать сертификат (компонент 3), только ес­
ли он знает правильный номер своего сертификата.

в. Компонент 1 генерирует код сертификата, который ис­
пользуется компонентом 3.

Итак, в нашем случае при интеграционном тестировании у нас есть для проверки 3 связи. Приведем примеры соответствующих тестов на интеграцию.

а. Здесь можно проверить, совместим ли формат файла, соз­данного компонентом 1, с программой рассылки компонента 2. Например, последняя принимает следующий формат файла:


Дата добавления: 2018-05-02; просмотров: 1292; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!