По степени изолированности тестируемых компонентов
• компонентноетестирование (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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!