понедельник, 14 сентября 2015 г.

Технологическая граница в подсказках по ЮЛ

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

Нас часто спрашивают — «Какие баги мы не нашли?». Сегодня я хочу рассказать о баге, который нашелся в подсказках Дадаты, и который хорошо показывает, зачем и как пытаться искать технологические границы.

Для поиска технологической границы надо пихать «Войну и мир» во все доступные для ввода поля. ВО ВСЕ!

Стоит там ограничение или нет → все равно пытаемся пропихнуть.
Взять ту же форму регистрации.

Искать границу надо только там, где нет ограничений?

Поле «Имя» ограничено по вводу, поля пароля — нет. Это не значит, что «Войну и мир» надо вставлять только в пароль. В имя тоже пытаемся. Можно ли ввести больше N символов? А если вкопипастить? А если посмотреть на HTML и снять ограничение по длине?

Самая простейшая проверка → копипаст большого текста в любое поле.

Включая... поля для ввода подсказок 👀
Все, вообще все. Вы не знаете внутреннего механизма, вы не можете предполагать, что он там один на все подсказки → значит, проверяем все поля.

Нашли баг — подвесили подсказки. Туда вкопипастили какую-то рекламную лабуду из ВК, типа «Продам Жигули, куплю котенка». Текста было много, а в подсказках по юр лицам поисковый механизм работает по условию OR → вот ему и поплохело.

Вставь «Войну и мир» — поищи границу!

То есть механизм брал каждое слово и искал его в справочнике по условию «Слушай, у тебя есть слово 1 ИЛИ слово 2 ИЛИ слово 3 ИЛИ слово 4...?». Воспроизводилось (по словам разработчика) только на юридических лицах и на банках, хотя стоит ли верить разработчикам 😏

Но суть в том, что сама по себе проверка элементарная — запихать большой кусок текста во все поля, которые увидели на своем пути. Причем, если попробовать ввести много слов в подсказки по ФИО и подумать «О, тут нет границы → нигде в подсказках ее нет», то баг можно пропустить. Не зная код, всегда перепроверяйте!

В perlclip можно задать условие "x xxx xx " x 50, но обычно там просто генеряет единую строку. И такой вариант тут не прокатит: «OR» условие между словами. То есть «нагенерить миллионную строку без пробелов» баг бы не выявило. Помните об этом, когда придумываете тесты )))

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

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