> For the complete documentation index, see [llms.txt](https://vladislaveremeev.gitbook.io/qa_bible/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://vladislaveremeev.gitbook.io/qa_bible/testirovanie-v-raznykh-sferakh-oblastyakh-testing-different-domains/testirovanie-messendzhera-messenger.md).

# Тестирование мессенджера (Messenger)

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

**Installation Testing**

* Приложение можно без проблем установить и удалить;
* Логин и регистрация работают корректно;
* Правильные сообщения об ошибках отображаются когда кто-то пытается зарегистрироваться или войти с некорректными данными;
* Регистрация или вход с неверными данными невозможны;
* Принимаются ли только действительные номера телефонов, если приложение требует ввода номера телефона при регистрации;
* Сколько раз пользователь может ввести неправильный код подтверждения, прежде чем его заблокируют, если во время установки отправляется код подтверждения.

**Usability Testing**

* Приложение интуитивно понятным и простым в использовании;
* Плавная (smooth) навигация;
* Интерфейс приложения должен соответствовать стандартам цвета, значков и расположению значков для хорошо зарекомендовавших себя функций в мессенджере, чтобы избежать путаницы;
* Цвета букв и фона, размер букв и шрифт должны позволять пользователям легко читать сообщения;
* Приложение должно быть доступным для людей с разным зрением, моторикой и возможностями.

**Functional Testing**

* Пользователь может отправлять и получать сообщения;
* Время доставки сообщения и любая другая ожидаемая информация о сообщении правильно отображаются для пользователя;
* Приложение правильно определяет статус сообщения, когда сообщение доставлено, прочитано и/или не доставлено;
* Пользователь должен иметь возможность видеть статус «набор», когда получатель сообщения набирает ответ;
* Push-уведомления приложения работают правильно ([Тестирование push-уведомлений](https://github.com/VladislavEremeev/QA_bible/blob/master/mobilnoe-testirovanie/testirovanie-push-uvedomlenii/README.md));
* Пользователь может изменять настройки уведомлений (включение и выключение звука уведомлений, выбор типа уведомлений для отображения и т. д.);
* Приложение правильно реагирует на входящий телефонный звонок или другие прерывания;
* Приложение позволяет без проблем отправлять изображения, видео- и аудио файлы и документы. Должны поддерживаться различные типы форматов файлов;
* Ссылки, смайлики и GIF-файлы отображаются и работают корректно;
* Пользователь может копировать и вставлять сообщения и их части;
* Пользователь может редактировать и удалять сообщения;
* История чата отображается и при скроллинге подгружается правильно;
* Пользователь может загружать изображение профиля и редактировать информацию профиля;
* Пользователь может изменить статус в приложении на «Доступен», «Нет на месте», «Не беспокоить» и т. д.;
* Голосовые и видеозвонки работают корректно;
* Пользователь может отправлять аудиосообщения;
* Возможность создания групповых чатов в мессенджере и их корректная работа;
* Когда пользователь присоединяется к групповому чату или покидает его, соответствующее уведомление об этом должно отображаться для всех участников группового чата;
* Пользователь может блокировать контакты в мессенджере и заблокированные контакты больше не могут взаимодействовать с пользователем;
* Контакты телефона синхронизируются с мессенджером.

**Performance Testing**

* Мессенджер работает корректно при разных типах сетевого подключения (2G, 3G, 4G, 5G, WiFi), при переключении между ними, а также при общении между собой пользователей мессенджера с разными типами сетевого подключения;
* Скорость доставки сообщений должна быть мгновенной;
* Изображения и видеофайлы, которые пользователи отправляют в приложение, загружаются достаточно быстро и без проблем с качеством;
* Качество голосовых и видеозвонков, в том числе очень долгих (2+ часа);
* Нагрузочное тестирование, чтобы оценить, сколько пользователей могут одновременно использовать приложение для обмена сообщениями;
* Проверьте, сколько пользователей может одновременно быть активным в групповом чате, чтобы он по-прежнему работал без проблем.

**Compatibility Testing**

* Приложение правильно работает на разных типах, моделях и версиях устройств;
* Мессенджер работает корректно с разными операционными системами;
* Если есть веб-версия приложения, проверьте его корректную работу в разных браузерах и их версиях.

**Security Testing**

* Содержимое сообщения защищено от перехвата, когда оно хранится на устройстве пользователя, отправляется на устройство получателя и сохраняется на устройстве получателя;
* Автоматическое уничтожение сообщений через временной интервал;
* В мессенджерах с приоритетом безопасности отключены опции копирования и пересылки сообщений.

И, конечно же, всякий раз, когда исправляются какие-либо ошибки в приложении для обмена сообщениями, необходимо тщательное **регрессионное тестирование** .

**Другие виды тестирования, которые могут выполняться**:

* Enterprise Software Testing;
* Web 2.0 testing;
* Database testing;
* SaaS Testing;
* Web Analytics Testing;
* Content Management testing;
* SEO testing;
* Online Advertisement application testing.

**Дополнительные кейсы**:

* Пользователь может отправлять сообщения на местных языках;
* Корректность работы если пользователь использует несколько устройств с одного аккаунта: чаты, черновики сообщений, смена пароля;
* Пользователь может совершать видеовызов онлайн-пользователю. Другой пользователь должен видеть приглашение принять или отклонить вызов;
* Пользователь должен иметь возможность позвонить снова после отмены вызова;
* Во время разговора видео может быть временно отключено, но звук может воспроизводиться. (И наоборот);
* Чат/текст доступен вместе с видеовызовом;
* Если один человек отключается от группового чата, это не должно влиять на остальных;
* Функция записи видео/звука работает нормально во время видеочата;
* Если человек не принимает запрос на вызов, журнал вызовов должен быть создан и должен отображаться для вызываемого человека;
* Функция отключения/включения звука работает нормально;
* Во время видеовызова между 2 пользователями, другие должны видеть этих пользователей как занятых, если это приложение видеовызова один на один;
* Корректность работы каунтера новых сообщений на иконке приложения;
* Непрочитанные сообщения выделены;
* Пользователь может искать контакты в окне сообщения.
* Пользователь может отправить запрос сообщения другому пользователю, которого нет в списке контактов;
* Пользователь может отправить новое сообщение другу, выбранному из списка;
* Пользователь может делиться URL-адресами с гиперссылками;
* Сколько слов или символов можно отправить за раз;
* Пользователь может отправлять смайлики;
* Пользователь может отправить несколько смайлов одновременно;
* Если пользователь печатает смайлики буквами, они будут выглядеть как его значок;
* Если пользователь набрал какое-либо сообщение и перешел на другую вкладку, не отправив его, то сообщение не должно быть удалено;
* Пользователь может удалить отправленное сообщение;
* Пользователь может удалить несколько сообщений одновременно;
* Пользователь не может отправить пустое сообщение;
* Полоса прокрутки отображается везде, где это необходимо.

Источники:

* [How to Test a Messenger App](https://blog.qatestlab.com/2021/04/14/how-to-test-a-messenger-app/)
* [How do I test a chat application?](https://www.quora.com/How-do-I-test-a-chat-application)
