пятница, 26 апреля 2013 г.

TEST IT! Тестируем регистрацию на Foodnation.ru

Коллеги, пинг! На связи TEST IT!


И сегодня с Вами снова я, сменная ведущая Киселева Ольга с новой рубрикой "тестируем вместе". И тестируем мы сайт https://www.foodnation.ru/, ныне http://www.foodpanda.ru/

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



Посмотрим, чем лучше / хуже регистрация здесь, по сравнению с Люксором.
Что имеем на входе? Такую вот формочку.



Пара полей с фамилией и именем, а дальше начинается интересное - телефон и email, а также пароль.

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

Нажимаем кнопку "Зарегистрироваться", ничего не заполняя и... Сразу же видим багу - какой такой индекс??

Может быть, конечно, "Код" - это индекс, по которому будет выверяться телефон. но так ли это... А если и так, то писать надо бы понятнее.. Ладно, остальные сообщения вроде нормальные, посмотрим, кстати, что с формой "Войти", раз уж она рядом.


И тут нормально. Идем дальше.

1. Корректное заполнение всех форм. После чего проверяем свою электронную почту - пришло ли письмо? Правильно ли в нем указаны Ваши инициалы?

2. Ну, я электронную почту указывать не хочу, поэтому введу пока test@mail.ru... Хмммм, и что же я вижу?


Чувствуете, да? Вот и вторая бага, ну как минимум сообщение должно быть на русском, я же на русском языке регистрируюсь... К тому же само выражение тут из серии "Казнить нельзя помиловать", явно не хватает знаков препинания. Зато в конце предложения их аж с избытком! Точка после восклицательного знака - это интересное правило русского языка.

Итак, мы только начали, а уже 2 баги нашли. Так что не пренебрегайте простыми проверками, они тоже могут удивлять Smile :)

3. Вернемся в ФИО, как насчет коротких значений? Ввожу по 1 букве в фамилию и в имя и... Успешно регистрируюсь (заменив эл почту). Правда, я все равно пару секунд наблюдаю сообщение "Казнить нельзя помиловать", в смысле "Wrong Email already exist!" - оно появляться, а потом пропадает вместе с формой.

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

Вбиваем длиииииииинную фразу, получаем такой отлуп:


Хм, значит, ограничение в 64 символа. Сообщение, конечно, кривовато выглядит, но ладно. Зато мы получили вторую границу - 64 символа! Теперь ее надо обязательно проверить, а потом уже пойти и оформлять очередную багу "сообщение об ошибке должно быть русифицировано, если пользователь регистрируется в русской вресии".

Вставляем ровно 64 символа. - и правда, регистрирует! А если попробовать 65? Ошибка. Тут все Ок.

4. Границы мы проверили, теперь посмотрим на другие значения. Ну, например, ввод цифр - вводим - регистрирует! Ладно, допустим, у нас вполне может регистрироваться "Николай 2".

А как насчет спецсимволов или другой кодировки? Вводим, например " Г. " (NotePad++ показывает нам символ перед буквой Г, это вроде ASCII 7) - регистрирует. Не факт, кстати, что потом везде сможет правильно обработать, но мы свое дело сделали, проверили.

О, а как насчет волшебного апострофа? Заполняем имя "`", остальные поля корректно. Хм, принял. Ну-ну, ладно-ладно... Не будем пока про всякие SQL-инъекции говорить.

5. Переходим к телефону. Первым делом (раз корректный номер мы уже вводили) вводим символы. Разумеется, сообщение мы получаем на английском, что уж тут удивляться то, в общем-то...


Как мы видим, система конкатит два поля с телефонами и потом уже проверяет.

Ок, что, если ввести нули? Хм, "код города = 0, телефон = 0" - зарегистрировал! Посмотрим на поле внимательнее, через firebug.


Ничего особенного, в принципе. Тогда что мы делаем? Правильно, ищем границы!

6. Вводим в код телефона много девяток (нажали кнопочку и зажали). Смотрим на результат


Оказывается, можно ввести всего лишь 15 символов (не забываем аттачить очередной скриншот в багу с англоязычными сообщениями об ошибке в русской версии).

Проверяем 15 символов в коде телефона:


Упс, мы совсем забыли, что проверка идет на конкат (соединение строк) двух полей - кода и самого телефона. Вводим код 14 символов и 1 символ в телефон - регистрируется!
  • Вводим 15 символов в код и 1 в телефон.
  • 13 в код и 1 в телефон
  • Проверяем точно так же строку с телефоном - теперь там 14, а в коде 1
  • 1 в коде, 13 в телефоне
  • 1 в коде, 15 в телефоне
7. Границы проверили. Как насчет отрицательных чисел? О, регистрирует, ты смотри. Вроде же ругался на символы... Но минус - разве символ? Минус он и в африке минус!

Вообще, конечно, ничего не мешает использовать дефис для указания телефона. Хотя, конечно, неплохо было бы ограничить начало и конец строки, но ладно уж, это минорное улучшение. В целом, телефон через дефис смотрится симпатичнее чем записанный слитно и без пробелов. Если тебе туда сразу же не присылается смс-ка, то почему бы и нет?

8. Символы в телефоне уже проверялись, поэтому перейдем к полю email.

Здесь мы видим простейшую логику в виде регэкспа. Тем не менее, если мы попытаемся ввести откровенно невалидный email, он будет ругаться

Значит, есть и другие проверки, скорее всего, на сервере. Ок, это хорошо. Что делаем дальше? Дальше проверяем границы - поле из одного символа до части @mail.ru и, наоборот, с кучей всего!

Так, email d@mail.ru сайт сожрал, нижней границы нету... По символам. А если:
  • @mail.ru  - неа, ругается
  • _@mail.ru - ругается
  • 1@mail.ru  - ругается
  • `@mail.ru - ругается
  • ы@mail.ru - ругается
Очень хорошо, минимальные проверки он прошел. Посмотрим по максимальным - вводим длииииииинное число, не падает, предлагает ввести реальную почту. То есть верхнюю границу определить сложно. Можно нагенерировать, конечно, больше символов с помощью специальных утилит, но для smoke-теста нам хватит и ручками вбитой длинной длинной строки.

Ок, если мы хотим углубляться в email дальше, то мы проверяем это поле по чек-листу проверки email... Ох, точно помню, видела у кого-то такой чек-лист, но не помню, у кого
Sad :(

Ну да ладно, в общем, если работа уже сделана до вас - не надо биться лбом о собственные грабли, возьмите чужие! А хотя... Стукнитесь разок о свои и берите чужие... В общем, проверьте поле сами, а потом уже смотрите в чек-лист, все ли сделали.

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

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

Вводим 1 символ в пароль!


Хм... О многом ли говорит такое сообщение? Как-то не очень. Сколько знаков нужно и сколько я уже ввел? Где информация то? А, ладно, методом последовательного тыка определяем эту границу - 4 символа. Причем без заморочек с "должны быть латинские прописные и заглавные буквы и хотя бы одна цифра", пароль 1234 вполне систему устроил.

Это не очень хорошо, но ладно. Вводим длинный с нашей точки зрения пароль - тоже принялся. Уже хорошо, система не падает на длинной комбинации. Ну, среднедлинной.

Что еще? Ах да, 10 пункт:

10. Пользовательское соглашение.
Да, ребята, его никто не будет читать. По крайней мере, очень мало кто будет. Но проверить его надо, на орфографические и стилистические ошибки...

Ну что? На сегодня, пожалуй, все. Конечно, мы проверили далеко не все, но у нас ведь еще столько участков не покрыто! И потом, интеграционные тесты (взаимодействие двух модулей) всегда интереснее и сложнее простых тестов на отдельные модули, пора нам проверять, работает ли регистрация в более широком смысле - можем ли мы войти в личный кабинет и что мы там увидим...

Кстати, если вы думаете, что мы проверили все, почитайте чит-лист от Алексей Лупана, как раз для проверки регистрации. Он, правда, немного забегает вперед и предлагает уже в личном кабинете что-то делать, менять пароль, например. Но на сегодня, я считаю, хватит.

Итак, что мы делаем, когда видим пусть и маленькую, но формочку с полями ввода:
  • Проверяем физические границы - оставляем все поля пустыми. Должны появиться сообщения об ошибках у обязательных для заполнения полей.
  • Проверяем ввод корректных данных - это самый основной сценарий!
  • Ищем границы для остальных полей:
  • Если это символьное поле (ФИО), проверяем минимальное и максимальное число символов, ищем границы, пытаемся их преодолеть. Также вводим разные раскладки, цифры, кодировки.
  • Если это числовое поле, фигачим туда символы. Или знаки "+" и "-", они у чисел работают. Пытаемся ввести дробные значения и по прежнему ищем технологические границы, забивая очень большие строки.
  • Если это специальное поле типа email - смотрим на стандарты, проверяем соответствие.
  • Если это нужная документация, изучаем ее на поиск грамматических ошибок, вдруг кто-то еще захочет ее прочитать?
  • Ну а дальше, а дальше мы переходим к интеграционным тестам, к взаимодействию одной формочки с другой!
Ну а наше время подходит к концу, поэтому я прощаюсь с вами. До встречи, ребята! 
Мы ждем ваших писем - пишите на sprosi.testera@gmail.com, задавайте вопросы, рассказывайте истории, грустные и не очень, делитесь опытом - мы рады всем!

Кстати, очень здорово, что ребята кинулись тестировать сайт и сразу нашли в нем ошибки, продолжайте, это же прикольно, ведь баги - они повсюду! Wink ;)

Пока, увидимся через неделю!

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

  1. Можно ли использовать здесь pairwise testing?

    ОтветитьУдалить
  2. Ольга, добрый день!
    Подскажите пожалуйста, какие данные можно вводит в поля: ФИО, адрес фирмы и адрес регистрации. И есть ли источники, на которые можно сослаться?
    Спасибо за ранее!
    Олег С.

    ОтветитьУдалить
    Ответы
    1. В какие поля? В поля абстрактного коня в вакууме можно вводить все, что угодно, но тестировать надо конкретную систему

      Удалить