Входит в «Туры по бизнес-району», Tours of the Business District
Вольный перевод статьи Виттакера из книги “Exploratory Software testing”. Туры помогают искать баги, взглянув на систему по-новому. Тестировщик выбирает тур и следует его цели, не отвлекаясь ни на что другое. Словно турист в незнакомом городе, составил план и пошел!
FedEx — символ доставок во всем мире. Находясь в любой точке планеты, можно отправить посылку родным в Подмосковье. И нам не важно, через сколько временных складов она пройдет. Мы уверены, что родные получат груз в целости и сохранности.
Данные проходят сквозь ПО как посылки FedEx из точки А в точку Б
В FedEx посылки путешествуют вокруг планеты. В тестировании данные проходят сквозь приложение, путешествуя по его закоулкам.
Данные начинают свою жизнь как inputs (входные данные), сохраняются во внутренние переменные, изменяются и используются в вычислениях. Потом большинство данных доставляются как outputs (выходные данные) некоторому пользователю или части приложения. В FedEx-туре мы смотрим на эти данные.
Попробуйте идентифицировать входные данные, которые сохраняются в системе, и проследуйте за ними по приложению:
Когда адрес вводится в интернет-магазине, где он отображается? Какие функции используют его?
Если он используется как биллинг-адрес, проверьте функцию биллинга.
Если он используется как адрес доставки, используйте функцию доставки.
Если его можно обновить — обновите.
Если можно вывести на печать — выведите.
Если он очищается или как-то обрабатывается — обработайте.
Попробуйте найти все функции, которые имеют отношение к входным данным. Как FedEx управляет своими посылками, так и вы включаетесь в каждый этап жизни данных.
Цель тура: проследить за путем входных данных (inputs). Найти и проверить все функции, которые их используют: сохраняют, меняют, выводят (outputs).
Самые очевидные входные данные — данные при регистрации. Зарегистрируемся в Дадате — https://dadata.ru/#registration_popup
Форма регистрации в Дадате. Пока что все спокойно
После регистрации видим первый вывод данных, ага!
Интересненько: введенный email отображается в маленьком окошке-приветствии
Значит, уже можно поэкспериментировать. Что мы видим? Всплывающее окно, не сильно широкое по размерам. А что, если зарегистрировать длинную почту? Вобьем максимально возможное количество символов:
Зажать и держать — так достигаем произвольной границы на длину поля
Регистрируемся и-и-и-и… Мва-ха-ха, сломали! Почта не влезла в экран, появился какой-то стремный скролл-бар
Эй, это что?
Если прокрутить его, увидим еще больший перекос стилей
Эк тебя перекосило то: кнопку «закрыть» усосало во тьму
Круто, круто, не успели тур перевести, уже баг верстки нашли! Бегом оформлять? Как бы не так :-)
Попробуем воспроизвести на другом компьютере, где диагональ 21 дюйм, а не жалкие 13. И воспроизводить будем «по-правильному». Генерируем через perlclip (инструмент для генерации строки любой длины и наполнения) строку, которую удобно будет считать — «counterstring 100000».
Пишем в поле «email» при регистрации «@mail.ru», а перед ним вставляем сгенеренную строку, получаем 67 символов.
Воспроизводим: снова генерим максимальный email
Блин, оно влезло!
На разрешении 1920х1080 не воспроизводится!
Итого: на разрешении 1920х1080 — не воспроизводится.
Воспроизводится на 1600х900 — это дефолтное разрешение на lenovo yoga, на котором очень часто я нахожу такие косяки.
Значит, баг с ооооочень низким приоритетом. Мало того, что пользователи обычно регистрируют нормальную почту, а не пытаются искать границы, так еще и разрешение у них должно быть нестандартное! Баг из тех, которые исправляются, когда совсем нечем заняться. В принципе, можно даже не заводить...
Заметки параноика
То, что в Дадате длинный текст влез в небольшое поле, не значит, что таких проблем в принципе не существует. Если видите небольшое окно с выводом переменной → проверьте, влезет ли туда максимальное значение по длине.
Тестировщик, бди! Видишь мелкое окно — данные впихни!
Где еще есть данные регистрации в Дадате
Мы идем дальше. Раз Дадата просит подтвердить эл. адрес → она присылает на почту письмо. А вдруг там упоминается мое имя? Пойдем проверим:
В письме никаких имен, оно шаблонное, FedEx-багов тут не будет
Хорошо. Где еще может быть введенная при регистрации информация? В личном кабинете. Откроем его:
Открываем личный кабинет — ссылка с количеством денег на балансе
В личном кабинете отображаются имя и email. Проверяем их корректность:
Отображаются введенные при регистрации данные. Все правильно
Их можно изменить? Меняем и сохраняем!
Меняем персональные данные, а вдруг не сохранится?
Как проверить, что сохранилось? Выйти из системы и снова зайти. Ага, сохраняется.
Где еще используются эти данные? На email почта приходит! Надо дернуть что-нибудь, чтобы почта пришла. Вот и посмотрим, придет она на старый адрес или уже на новый. Почта приходит после обработки файла (ссылка на результат). Обрабатываем файл, проверяем почту. Пришла на новый адрес, все хорошо.
Заметки параноика
Данные в личном кабинете могут не сохраняться.
При изменении email письма могут уходить по старому адресу или кануть в небытие.
Email может измениться, но в письме придет старое имя.
«Доверяй, но проверяй» — мантра тестировщика :)
Уф, с регистрацией все. Какие еще данные проверить? В Дадате тур заканчивается на регистрации, потому что результаты обработок мы никак не храним. Ура, свобода попугаям! :-)
В FedEx туре мы обращаем внимание на все выводы данных, но не углубляемся в тестирование конкретных функций. Изменяя данные в личном кабинете, мы смотрим только на то, что они сохранились. Хочется потестировать ввод различных вариаций email, изменение данных в разных вкладках браузера. Но нет. Не отвлекайтесь от цели тура. Пришла в голову интересная идея «на потестить»? Записали и продолжили тур, вернитесь к ней позже.
См также:
Смайлики криво логируются в ленте новостей — пример ошибки, найденной благодаря туру в интернет-магазине
См также:
Смайлики криво логируются в ленте новостей — пример ошибки, найденной благодаря туру в интернет-магазине
PS: Статья написана в помощь студентам моих курсов по тестированию и уже доступна на Testbase, чтобы не потерялась ссылка.
Спасибо большое!
ОтветитьУдалить"но не углябляемся в тестирование конкретных функций". Опечатка в слове углубляемся
ОтветитьУдалитьСпасибо, исправила
Удалить