# Тестирование мессенджера (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)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://vladislaveremeev.gitbook.io/qa_bible/testirovanie-v-raznykh-sferakh-oblastyakh-testing-different-domains/testirovanie-messendzhera-messenger.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
