tестирование dot com
Шрифт:
на себя вести система при ошибках/дефектах. Следователь
но, все тестирование такого спека будет негативным.
160
Тестирование Дот Ком. Часть 2
д. Два полезных термина:
• обращение с ошибкой/дефектом (error handling /failure
handling) — это то, как система реагирует на ошиб-
ку/дефект;
• сообщение об ошибке (error message) — это информа-
ция (как
вателю в случае ошибки/сбоя.
Маленький примерчик вдогонку
Правильность сообщений об ошибке является намного более серьез-
ной вещью, чем может показаться, при рассуждениях об этом в теории.
Например, сегодня я попытался купить по Интернету новую книгу Хару-
ки Мураками:
• добавил книгу в корзину на одном из сайтов,
• вбил номер кредитки в соответствующие поля веб-страницы и
• нажал кнопку "Купить".
Мне выдается сообщение об ошибке: так, мол, и так, проверьте, пожа-
луйста, номер своей кредитной карты, дорогой пользователь. Я про-
веряю — все в порядке: и номер карты, и срок действия. Нажимаю
"Купить" еще раз — го же сообщение об ошибке. Пробую вбить инфор-
мацию по другой карте — то же самое. Начиная с этого момента,
успешное осуществление акции покупки новой книги Харуки Мура-
ками стало для меня делом принципа. Звоню в службу поддержки, и
мне говорят
— А вы, кстати, поставили галочку в чек-бокс (check box), что
согласны
с нашим соглашением?
– Нет.
— А вы поставьте и попробуйте нажать на кнопку "Купить".
— Ставлю, пробую, работает.
— Ну вот и славненько. Чем-нибудь еще можем быть полезны?
— Ничем. Thank you.
В итоге я потерял 15 минут своего времени, а веб-сайт потерял меня
как пользователя, так как "ложечки нашлись, а осадок остался". Все
из-за неверного сообщения об ошибке.
6. По степени изолированности
тестируемых компонентов
• компонентное тестирование (component testing);
• интеграционное тестирование (integration testing);
• системное (или
энд-ту-энд) тестирование (system orend-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 долл.
Это негативное тестирование, связанное с потенциальным дефек-