tестирование dot com
Шрифт:
том в коде, отвечающем за выбор правильных пользователей.
Компонент 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.
Например, последняя принимает следующий формат файла:
полное имя пользователя, е-мейл, номер сертификата.
164
Тестирование Дот Ком. Часть 2
Значения отделены друг от друга запятой (comma-delimited). Ин-
формация о каждом новом пользователе — на новой строчке.
Сам файл — простой текстовый файл, который можно открыть
программой Notepad.
Образец файла:
Ferdinando Magellano, f.magellano@trinidad.pt, QWERT98362
James Cook, james.cook@endeavour.co.uk, ASDFG54209 Иван
Крузенштерн, ikruzenstern@nadejda.ru, LKJHG61123
Допустим, программист ошибочно заложил в коде, что значения
файла разделяются не запятой (форматом, принимаемым про-
граммой рассылки), а точкой с запятой:
Ferdinando Magellano; f.magellano@trinidad.pt; QWERT98362
James Cook; james.cook@endeavour.co.uk; ASDFG54209 Иван
Крузенштерн; ikruzenstern@nadejda.ru; LKJHG61123
Когда мы проводим интеграционный тест, мы обнаруживаем, что
программа рассылки не принимает файл неподходящего формата,
и соответственно никакие е-мейлы до пользователей не дойдут,
если этот баг не будет устранен.
б. В данном случае у нас может быть ситуация, когда файл
имеет верный номер сертификата, но из-за бага в программе рас
сылки пользователь получает е-мейл с "неправильным" номером
сертификата.
Это может произойти из-за того, что программа рассылки
может быть ошибочно сконфигурирована, чтобы "брать"
только 9 первых символов из третьей колонки (колонки с номе-