Мопед не мой ©
Коллега в прошлые выходные столкнулся с проблемой, потом ругался в Альфой в твиттере — https://twitter.com/4shurik/status/752367590039752705
Но мне понравился баг, решила записать. Итак, коллега (назовем его Саша) подумал в выходные — а почему бы не поставить себе мобильный клиент? Это же модно и молодежно. Бывает удобно, когда надо быстро деньги перевести.
Скачал, установил. Система дает одноразовый пароль, который предлагает сменить после первого входа. Саша меняет пароль и... Получает сообщение об ошибке:
А Саша вводил пароль, ну допустим, "jdfwhglirng76". Логичная реакция — о_О Что не так то??? Цифры не одинаковые и это не возрастающая последовательность. Всем требованиям удовлетворяет... И так и сяк попытался. Посложнее пароль, попроще. А потом перезапустил приложение и тут все встало на свои места. В окне входа в приложение в пароль можно вводить только цифры, система предлагает только цифровую клавиатуру. Отсюда и сообщение об ошибке. Но на экране изменения то полная клавиатура! Вот так введешь символ и сиди гадай, что сделал не так.
Давайте оформим по шаблону:
=============================================================
Результат
Полная раскладка клавиатуры, включая символы
Ожидаемый результат
Digital-раскладка, только цифры, так как в пароле не может быть символов:
=============================================================
Обратите внимание, что в шагах мы описываем и абстрактно, что надо сделать (ввести символьный пароль), и конкретный пример.
См также:
Не пишите в баге «Ввести 6,9»! — зачем нужна абстракция и конкретика
В данном кейсе мы видим сразу несколько проблем:
— Но я ввожу "test", у меня вообще нет цифр.
— Там нельзя вводить символы.
— Но вот же...
— Ого! Косяк...
Но фишка в том, что я могу не заметить этой проблемы. Потому что сообщение как сообщение, оно всегда такое было. Оно правильное, что в нем не так? Именно поэтому свежий взгляд бывает полезен. И именно поэтому роботы и автотесты не вытеснят ручного тестировщика. Просто проходить тесты надо не втупую по тест-кейсу, а осматриваясь вокруг. Иногда такие удивительные вещи обнаруживаешь!
Как найти этот баг? Проверяем основной сценарий, сначала позитивное, потом негативное тестирование. Разбиваем поле с паролем на классы эквивалентности. И даже если мы исходно знаем, что символы вводить будет нельзя, неплохо попробовать это обойти. Например, написать пароль в блокноте и попробовать вкопипастить. Вводим плохие значения, проверяем текст ошибки, в том числе на адекватность. Не просто "сравнить с тем, что в ожиданиях тест-кейса", а подумать, понятен ли текст.
Коллега в прошлые выходные столкнулся с проблемой, потом ругался в Альфой в твиттере — https://twitter.com/4shurik/status/752367590039752705
Причина возмущения
Но мне понравился баг, решила записать. Итак, коллега (назовем его Саша) подумал в выходные — а почему бы не поставить себе мобильный клиент? Это же модно и молодежно. Бывает удобно, когда надо быстро деньги перевести.
Скачал, установил. Система дает одноразовый пароль, который предлагает сменить после первого входа. Саша меняет пароль и... Получает сообщение об ошибке:
Пароль не должен состоять из одинаковых цифр, а также не должен являться возрастающей или убывающей последовательностью цифр.
А Саша вводил пароль, ну допустим, "jdfwhglirng76". Логичная реакция — о_О Что не так то??? Цифры не одинаковые и это не возрастающая последовательность. Всем требованиям удовлетворяет... И так и сяк попытался. Посложнее пароль, попроще. А потом перезапустил приложение и тут все встало на свои места. В окне входа в приложение в пароль можно вводить только цифры, система предлагает только цифровую клавиатуру. Отсюда и сообщение об ошибке. Но на экране изменения то полная клавиатура! Вот так введешь символ и сиди гадай, что сделал не так.
Давайте оформим по шаблону:
=============================================================
Full keybord в окне изменения числового пароля
Шаги для воспроизведения- Открыть приложение «Альфа-Мобайл»
- Войти под новым пользователем, которому пароль назначила система. Например, test / 123456 (генерим такого пользователя, чтобы разработчику было удобнее воспроизвести. Или может на тестовом стенде есть чит какой, но тут уже не знаю) → система перекинет на окно изменения пароля.
- Установить курсор на поле пароля
Результат
Полная раскладка клавиатуры, включая символы
Ожидаемый результат
Digital-раскладка, только цифры, так как в пароле не может быть символов:
— В окне авторизации только числовая раскладка (см рис Сравнение клавиатур).
— Если ввести символьный пароль (например, «abc»), система выдаст ошибку — «Пароль не должен состоять из одинаковых цифр, а также не должен являться возрастающей или убывающей последовательностью цифр». Такой текст непонятен, ведь пользователь
— Если ввести символьный пароль (например, «abc»), система выдаст ошибку — «Пароль не должен состоять из одинаковых цифр, а также не должен являться возрастающей или убывающей последовательностью цифр». Такой текст непонятен, ведь пользователь
=============================================================
Обратите внимание, что в шагах мы описываем и абстрактно, что надо сделать (ввести символьный пароль), и конкретный пример.
См также:
Не пишите в баге «Ввести 6,9»! — зачем нужна абстракция и конкретика
В данном кейсе мы видим сразу несколько проблем:
- Собственно, сам баг.
- Недружелюбное сообщение об ошибке. Стоит предусмотреть, что клавиатура может оказаться "неправильная" или пользователь ухитрится затолкать туда символы другим путем. Но как понять из такого сообщения, в чем косяк?
- Замыленный взгляд.
Про замыленный взгляд подробнее. Вот смотрите, я тестировщик этого приложения. Пароль можно вводить везде только числовой. Ради безопасности нельзя вводить одинаковые числа и последовательности. Если ввожу, получаю сообщение об ошибке, которое проверяется в моих тест-кейсах. Я тестирую билд релиз за релизом и к сообщению привыкаю. Тут сломали раскладку, вместо цифровой в одном из мест появилась полная. А автотесты, допустим, проверяют нормальные сценарии. Баг я не замечаю, так как функционал изменения пароля покрыт автотестами.
И тут мне дают новичка в помощь. Он знакомится с продуктом, тыкает его в первый раз, попадает на изменение пароля и вводит туда "test". Получает сообщение об ошибке и приходит ко мне — непонятно же! Я смотрю на это сообщение, которое уже набило мне оскомину:
— Да все правильно в нем!
— Но я ввожу "test", у меня вообще нет цифр.
— Там нельзя вводить символы.
— Но вот же...
— Ого! Косяк...
Но фишка в том, что я могу не заметить этой проблемы. Потому что сообщение как сообщение, оно всегда такое было. Оно правильное, что в нем не так? Именно поэтому свежий взгляд бывает полезен. И именно поэтому роботы и автотесты не вытеснят ручного тестировщика. Просто проходить тесты надо не втупую по тест-кейсу, а осматриваясь вокруг. Иногда такие удивительные вещи обнаруживаешь!
Как найти этот баг? Проверяем основной сценарий, сначала позитивное, потом негативное тестирование. Разбиваем поле с паролем на классы эквивалентности. И даже если мы исходно знаем, что символы вводить будет нельзя, неплохо попробовать это обойти. Например, написать пароль в блокноте и попробовать вкопипастить. Вводим плохие значения, проверяем текст ошибки, в том числе на адекватность. Не просто "сравнить с тем, что в ожиданиях тест-кейса", а подумать, понятен ли текст.
См также:
Сообщения об ошибках — тоже документация, тестируйте их! — про тестирование текстов ошибок
Шаблон бага → использовался в статье
Шаблон улучшения — Как продумывать свое улучшение с примером, когда это приводит к отказу от постановки задачи.
Как заводить задачи в баг-трекер → подробнее о том, как ставить задачу и заполнять обязательные поля.
PS — добавила пост в общую копилку багов.
Комментариев нет:
Отправить комментарий