четверг, 11 июня 2015 г.

The FedEx Tour

Входит в «Туры по бизнес-району», Tours of the Business District


Вольный перевод статьи Виттакера из книги Exploratory Software testing. Туры помогают искать баги, взглянув на систему по-новому. Тестировщик выбирает тур и следует его цели, не отвлекаясь ни на что другое. Словно турист в незнакомом городе, составил план и пошел!


FedEx — символ доставок во всем мире. Находясь в любой точке планеты, можно отправить посылку родным в Подмосковье. И нам не важно, через сколько временных складов она пройдет. Мы уверены, что родные получат груз в целости и сохранности.


fedex-express-vase-small-31944.jpg
Данные проходят сквозь ПО как посылки FedEx из точки А в точку Б

В FedEx посылки путешествуют вокруг планеты. В тестировании данные проходят сквозь приложение, путешествуя по его закоулкам.

Данные начинают свою жизнь как inputs (входные данные), сохраняются во внутренние переменные, изменяются и используются в вычислениях. Потом большинство данных доставляются как outputs (выходные данные) некоторому пользователю или части приложения. В FedEx-туре мы смотрим на эти данные.

Попробуйте идентифицировать входные данные, которые сохраняются в системе, и проследуйте за ними по приложению:


Когда адрес вводится в интернет-магазине, где он отображается? Какие функции используют его?

Если он используется как биллинг-адрес, проверьте функцию биллинга.

Если он используется как адрес доставки, используйте функцию доставки.

Если его можно обновить — обновите.  

Если можно вывести на печать — выведите.

Если он очищается или как-то обрабатывается — обработайте.


Попробуйте найти все функции, которые имеют отношение к входным данным. Как FedEx управляет своими посылками, так и вы включаетесь в каждый этап жизни данных.


Цель тура: проследить за путем входных данных (inputs). Найти и проверить все функции, которые их используют: сохраняют, меняют, выводят (outputs).


Самые очевидные входные данные — данные при регистрации. Зарегистрируемся в Дадате — https://dadata.ru/#registration_popup


1.jpg
Форма регистрации в Дадате. Пока что все спокойно


После регистрации видим первый вывод данных, ага!


2.jpg
Интересненько: введенный email отображается в маленьком окошке-приветствии


Значит, уже можно поэкспериментировать. Что мы видим? Всплывающее окно, не сильно широкое по размерам. А что, если зарегистрировать длинную почту? Вобьем максимально возможное количество символов:


3.jpg
Зажать и держать — так достигаем произвольной границы на длину поля


Регистрируемся и-и-и-и… Мва-ха-ха, сломали! Почта не влезла в экран, появился какой-то стремный скролл-бар


2.PNG
Эй, это что?


Если прокрутить его, увидим еще больший перекос стилей


3.PNG
Эк тебя перекосило то: кнопку «закрыть» усосало во тьму


Круто, круто, не успели тур перевести, уже баг верстки нашли! Бегом оформлять? Как бы не так :-)


Попробуем воспроизвести на другом компьютере, где диагональ 21 дюйм, а не жалкие 13. И воспроизводить будем «по-правильному». Генерируем через perlclip (инструмент для генерации строки любой длины и наполнения) строку, которую удобно будет считать — «counterstring 100000».


Пишем в поле «email» при регистрации «@mail.ru», а перед ним вставляем сгенеренную строку, получаем 67 символов.


11.jpg
Воспроизводим: снова генерим максимальный email


Блин, оно влезло!


12.jpg
На разрешении 1920х1080 не воспроизводится!


Итого: на разрешении 1920х1080 — не воспроизводится.
Воспроизводится на 1600х900 — это дефолтное разрешение на lenovo yoga, на котором очень часто я нахожу такие косяки.


Значит, баг с ооооочень низким приоритетом. Мало того, что пользователи обычно регистрируют нормальную почту, а не пытаются искать границы, так еще и разрешение у них должно быть нестандартное! Баг из тех, которые исправляются, когда совсем нечем заняться. В принципе, можно даже не заводить...


Заметки параноика


То, что в Дадате длинный текст влез в небольшое поле, не значит, что таких проблем в принципе не существует. Если видите небольшое окно с выводом переменной → проверьте, влезет ли туда максимальное значение по длине.


slon2u.jpg
Тестировщик, бди! Видишь мелкое окно — данные впихни!


Где еще есть данные регистрации в Дадате



Мы идем дальше. Раз Дадата просит подтвердить эл. адрес → она присылает на почту письмо. А вдруг там упоминается мое имя? Пойдем проверим:


4.jpg
В письме никаких имен, оно шаблонное, FedEx-багов тут не будет


Хорошо. Где еще может быть введенная при регистрации информация? В личном кабинете. Откроем его:


3.PNG
Открываем личный кабинет — ссылка с количеством денег на балансе


В личном кабинете отображаются имя и email. Проверяем их корректность:
5.jpg
Отображаются введенные при регистрации данные. Все правильно


Их можно изменить? Меняем и сохраняем!


6.jpg
Меняем персональные данные, а вдруг не сохранится?


Как проверить, что сохранилось? Выйти из системы и снова зайти. Ага, сохраняется.


Где еще используются эти данные? На email почта приходит! Надо дернуть что-нибудь, чтобы почта пришла. Вот и посмотрим, придет она на старый адрес или уже на новый. Почта приходит после обработки файла (ссылка на результат). Обрабатываем файл, проверяем почту. Пришла на новый адрес, все хорошо.


Заметки параноика


Данные в личном кабинете могут не сохраняться.
При изменении email письма могут уходить по старому адресу или кануть в небытие.
Email может измениться, но в письме придет старое имя.


«Доверяй, но проверяй» — мантра тестировщика :)


Уф, с регистрацией все. Какие еще данные проверить? В Дадате тур заканчивается на регистрации, потому что результаты обработок мы никак не храним. Ура, свобода попугаям! :-)


В FedEx туре мы обращаем внимание на все выводы данных, но не углубляемся в тестирование конкретных функций. Изменяя данные в личном кабинете, мы смотрим только на то, что они сохранились. Хочется потестировать ввод различных вариаций email, изменение данных в разных вкладках браузера. Но нет. Не отвлекайтесь от цели тура. Пришла в голову интересная идея «на потестить»? Записали и продолжили тур, вернитесь к ней позже.

См также:
Смайлики криво логируются в ленте новостей — пример ошибки, найденной благодаря туру в интернет-магазине





PS: Статья написана в помощь студентам моих курсов по тестированию и уже доступна на Testbase, чтобы не потерялась ссылка.

3 комментария: