четверг, 18 февраля 2021 г.

Как тестировать письма от системы

Сейчас многие системы присылают приветствия, напоминания, уведомления... Так вот эти письма — это часть документации системы. Ведь там могут быть описаны правила поведения на сайте, порядок процесса покупки, или что-то другое.

С другой стороны, письмо — это часть функционала системы. Потому что разработчик программирует:

  1. В какой момент письмо должно быть отправлено (после регистрации на сайте, при нажатии на конкретную кнопку, за сутки до даты билеты...);
  2. Что находится внутри него (статичный текст, переменные).
Именно это и надо проверять! Что письмо отправляется тогда, когда нужно, и что внутри всё верно. А что может быть не так внутри? Некий статичный текст, вычитали на опечатки, и всё... Да, если текст статичный, достаточно проверить один раз. А вот если нет...

Типичные проблемы писем — плейсхолдеры, которые:

  • не разименовались;
  • разименовались, но неправильно.

Что такое плейсхолдер? Это заглушка, которая меняется на нужное значение при отправке письма. Разработчик же не знает заранее, как вас зовут. Но допустим, что он хочет сделать именное письмо:


Привет, Ольга! Спасибо за регистрацию на нашем сайте...

Привет, Андрей! Спасибо за регистрацию на нашем сайте...

Привет, Сладкий пупсик! Спасибо за регистрацию на нашем сайте...

 

Разработчик пишет письмо, оставляя плейсхолдер вместо имени:


Привет, $username! Спасибо за регистрацию на нашем сайте...

 

И говорит в коде: «Вместо $username подставь имя, которое пользователь ввел при регистрации. Возьми значение из такого-то поля». Теперь, когда Маша-Ваня-Петя регистрируются на сайте, они получают личное письмо со своим именем!

Обычно такие подмены делают на имена и даты. Например, дата, на которую куплен билет. Главное — подставить нужное значение! А с эти бывает беда...

В апреле 2017 года я летела в Екатеринбург, на конференцию DUMP . Купила билеты в S7 Airlines заранее — в феврале. Перепроверила даты, вроде все правильно, вылетаю 13.04.

Упорный бот пытался впарить мне отель через их сайт и отказ не принял. А 02.02.2017 он прислал мне «напоминалку», что у меня скоро полет... И поставил дату... «Сегодня» о_О


Эй, але, я покупала билеты на апрель! Холодный мороз по коже — а вдруг я ошиблась? Нашла письмо с билетами, нет, все хорошо:


Вот же, 13.04!

Значит, просто накосячили в письме. Благо понятно как, раз дата сегодняшняя — то вместо моего реального времени полета вставили SYSDATE. Или там и должно быть sysdate, но письмо должно было быть отправлено в апреле...


Проблемы бывают самые разные:

— Иногда письмо приходит с опозданием и получается «оплатите счет до вчера». 

— Иногда тебе пишут «Привет, username!». Забыли подставить значение =))

— Иногда неправильно склоняют имя

— Иногда неправильно определяют пол

— ...


То есть в первую очередь мы проверяем в письмах все переменные и плейсхолдеры — правильно ли они подставились? Если это строка с именем, проверяем такие моменты:

  • А если я пустым оставлю поле? 
  • А если на другом языке напишу?
  • А если спецсимволы введу?
  • А если очень длинное имя?

Аналогично с датой: 

  • Когда придет письмо — сразу после регистрации, за день до назначенного времени?
  • Правильная ли дата будет в письме? 

И не забудьте прочитать письмо целиком. А то переменная будет правильная, а потом ад для граммар-наци )))

Плюс не забывайте проверить «когда отправлено письмо», это тоже важно!


См также:

Какая бывает документация — что еще стоит проверить


PS — это выдержка из моей книги для начинающих тестировщиков, написана в помощь студентам моей школы для тестировщиков

1 комментарий:

  1. Ещё один момент писем с сайта - это их уникальные идентификаторы, точнее темплейты писем. Только Unique_ID шаблона письма позволит не ошибиться при тестировании содержимого и заголовка письма при его отправке из различных мест программы. А наличие красиво-зашифрованного UID шаблона в теле письма, воспринимаемое сегодня респондентом в качестве бота, облегчит понимание конечным пользователем недоработок программного обеспечения.

    ОтветитьУдалить