среда, 3 августа 2016 г.

Панбагон. Как изменить пароль в «Альфа-Мобайле»?

Мопед не мой ©

Коллега в прошлые выходные столкнулся с проблемой, потом ругался в Альфой в твиттере — https://twitter.com/4shurik/status/752367590039752705

Причина возмущения

Но мне понравился баг, решила записать. Итак, коллега (назовем его Саша) подумал в выходные — а почему бы не поставить себе мобильный клиент? Это же модно и молодежно. Бывает удобно, когда надо быстро деньги перевести.

Скачал, установил. Система дает одноразовый пароль, который предлагает сменить после первого входа. Саша меняет пароль и... Получает сообщение об ошибке:

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


А Саша вводил пароль, ну допустим, "jdfwhglirng76". Логичная реакция — о_О Что не так то??? Цифры не одинаковые и это не возрастающая последовательность. Всем требованиям удовлетворяет... И так и сяк попытался. Посложнее пароль, попроще. А потом перезапустил приложение и тут все встало на свои места. В окне входа в приложение в пароль можно вводить только цифры, система предлагает только цифровую клавиатуру. Отсюда и сообщение об ошибке. Но на экране изменения то полная клавиатура! Вот так введешь символ и сиди гадай, что сделал не так.

Давайте оформим по шаблону:

=============================================================

Full keybord в окне изменения числового пароля

Шаги для воспроизведения
  1. Открыть приложение «Альфа-Мобайл»
  2. Войти под новым пользователем, которому пароль назначила система. Например, test / 123456 (генерим такого пользователя, чтобы разработчику было удобнее воспроизвести. Или может на тестовом стенде есть чит какой, но тут уже не знаю) → система перекинет на окно изменения пароля.
  3. Установить курсор на поле пароля

Результат

Полная раскладка клавиатуры, включая символы


Ожидаемый результат

Digital-раскладка, только цифры, так как в пароле не может быть символов:

— В окне авторизации только числовая раскладка (см рис Сравнение клавиатур).
— Если ввести символьный пароль (например, «abc»), система выдаст ошибку — «Пароль не должен состоять из одинаковых цифр, а также не должен являться возрастающей или убывающей последовательностью цифр». Такой текст непонятен, ведь пользователь

=============================================================

Обратите внимание, что в шагах мы описываем и абстрактно, что надо сделать (ввести символьный пароль), и конкретный пример.

См также:
Не пишите в баге «Ввести 6,9»! — зачем нужна абстракция и конкретика


В данном кейсе мы видим сразу несколько проблем:

  • Собственно, сам баг.
  • Недружелюбное сообщение об ошибке. Стоит предусмотреть, что клавиатура может оказаться "неправильная" или пользователь ухитрится затолкать туда символы другим путем. Но как понять из такого сообщения, в чем косяк?
  • Замыленный взгляд.
Про замыленный взгляд подробнее. Вот смотрите, я тестировщик этого приложения. Пароль можно вводить везде только числовой. Ради безопасности нельзя вводить одинаковые числа и последовательности. Если ввожу, получаю сообщение об ошибке, которое проверяется в моих тест-кейсах. Я тестирую билд релиз за релизом и к сообщению привыкаю. Тут сломали раскладку, вместо цифровой в одном из мест появилась полная. А автотесты, допустим, проверяют нормальные сценарии. Баг я не замечаю, так как функционал изменения пароля покрыт автотестами. 

И тут мне дают новичка в помощь. Он знакомится с продуктом, тыкает его в первый раз, попадает на изменение пароля и вводит туда "test". Получает сообщение об ошибке и приходит ко мне — непонятно же! Я смотрю на это сообщение, которое уже набило мне оскомину:

— Да все правильно в нем!

— Но я ввожу "test", у меня вообще нет цифр.
— Там нельзя вводить символы.
— Но вот же...
— Ого! Косяк...

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

Как найти этот баг? Проверяем основной сценарий, сначала позитивное, потом негативное тестирование. Разбиваем поле с паролем на классы эквивалентности. И даже если мы исходно знаем, что символы вводить будет нельзя, неплохо попробовать это обойти. Например, написать пароль в блокноте и попробовать вкопипастить. Вводим плохие значения, проверяем текст ошибки, в том числе на адекватность. Не просто "сравнить с тем, что в ожиданиях тест-кейса", а подумать, понятен ли текст.


См также:
Шаблон бага → использовался в статье
Шаблон улучшения — Как продумывать свое улучшение с примером, когда это приводит к отказу от постановки задачи.
Как заводить задачи в баг-трекер → подробнее о том, как ставить задачу и заполнять обязательные поля.

PS — добавила пост в общую копилку багов.

Комментариев нет:

Отправить комментарий