Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/feronivan/yandex.scooter_mobile-app_mqa

Мобильное приложение “Яндекс.Самокат”. Проект по ручному тестированию.
https://github.com/feronivan/yandex.scooter_mobile-app_mqa

android-studio bug-reporting manual-testing mobile-app test-design

Last synced: about 1 month ago
JSON representation

Мобильное приложение “Яндекс.Самокат”. Проект по ручному тестированию.

Awesome Lists containing this project

README

        

## Мобильное приложение “Яндекс.Самокат”. Проект по ручному тестированию.
Яндекс.Самокат — сервис, который позволяет арендовать электрический самокат на несколько дней.

## Требования

Требования к мобильному приложению
## Экран «Вход»
1. При первом входе в приложение появляется экран авторизации с логином и паролем.
2. Если курьер уже авторизовался, он видит экран списка заказов по умолчанию.
3. На экране два поля ввода: под логин и пароль. Есть кнопка «Войти».
4. Если тапнуть по «Не помню пароль», появится уведомление с текстом «Свяжитесь с менеджером: 0101» и кнопка «Ок».
5. Пользователь может выйти из приложения с любого экрана. Тогда при входе он снова попадёт на экран авторизации.

## Экран «Список заказов»
На экране две вкладки: «Все», «Мои».
На вкладке «Все» курьеры видят один и тот же список заказов: это заказы без исполнителей.
Как только один из курьеров принимает заказ, он перемещается во вкладку «Мои». Остальные курьеры перестают его видеть.
Внутри вкладки «Мои» курьер видит заказы, которые он принял.
Чтобы список обновился, нужно потянуть за экран вниз (англ. pull-to-refresh).

При pull-to-refresh:
1. Для вкладки «Все»: заказы, которые принял другой курьер, пропадают из списка.
2. Для вкладки «Все»: заказы, которые отменил пользователь, удаляются.
3. Для вкладок «Все» и «Мои»: карточки сортируются по дате доставки, которую указал пользователь. Просроченные заказы — сверху.

При каких действиях список заказов обновляется:
1. При pull-to-refresh.
2. Если перейти во вкладку «Мои» на главном экране, а потом вернуться назад во вкладку «Все».
3. Если применить фильтр по станции метро.

При каких действиях список заказов не обновляется:
1. Если принять заказ, он перемещается в «Мои», но остальной список не обновляется.

Функциональность экрана «Список заказов»:
1. Когда нет заказов, отображается экран «Заказов нет». Чтобы обновить экран, нужно сделать pull-to-refresh.
2. Когда пользователь делает заказ, появляется короткая версия карточки заказа.
3. Список заказов сортируется по приоритетности доставки: просроченные — сверху. Просроченным считается заказ, который не доставлен клиенту до 23:59 в нужный день. Рамка и дата просроченной карточки подсвечивается красным цветом, жирность текста — Medium. Условие работает для списков заказов «Все» и «Мои».
4. Внутри вкладки «Все» есть фильтр по выбору метро. С его помощью курьер может настроить, заказы на каких станциях он хочет видеть. По тапу на фильтр открывается список: он формируется из тех станций, на которые уже есть заказы. Если есть два и более заказа с одинаковым метро, в фильтре появляется только одно наименование: одинаковые станции не дублируются.
5. Карточка фильтра увеличивается по мере добавления станций метро. В карточку вмещается максимум 8 станций: начиная с девятой появляется скролл.
6. Карточка заказа может быть в краткой или полной версии.
- Поля для краткой версии: «Адрес», «Дата доставки», выбранная станция метро.
- Поля для полной версии: «Адрес», «Дата доставки», выбранная станция метро. Добавляется «Имя», «Фамилия», «Телефон», «Цвет», «Комментарий». Если пользователь не заполнил поле «Цвет», пишется «любой».
7. Переключить версию карточки можно через тап по карточке. Это работает для вкладок «Все» и «Мои».
8. При переходе в полный режим карточки кнопка «Принять» остаётся на месте. Карточки, которые идут следом, сдвигаются вниз.
9. Чтобы принять заказ, нужно тапнуть по кнопке «Принять». Это работает и для краткой, и для полной версий карточки.
10. При тапе по кнопке появляется уведомление с текстом «Хотите принять заказ?» и две кнопки «Да» и «Нет». Тап по «Нет» возвращает обратно на список заказов, кнопка «Принять» остаётся активной. Тап по «Да» подтверждает принятие заказа.
11. Чужой или отменённый заказ принять нельзя. Появляется сообщение: «Ты не можешь принять заказ. Его взял уже другой курьер или пользователь отменил его».
12. Когда заказ принят, карточка уезжает из списка «Все» — с анимацией движения вверх. У вкладки «Мои» появляется синяя точка — она обозначает, что во вкладке появился новый принятый заказ.
13. Логика работы синей точки: появляется, если есть непросмотренные карточки во вкладке «Мои». Автоматическое переключение на вкладку «Мои» не происходит.
14. Карточка, которую принял курьер, помещается во вкладку «Мои». Кнопка меняется на «Завершить». Завершить заказ можно тапом по кнопке «Завершить» — как в коротком, так и в полном виде карточки.
15. Если нажать на «Завершить», появляется уведомление «Вы завершили заказ?» и две кнопки — «Да» и «Нет». Тап по «Нет» возвращает обратно на список заказов, кнопка «Завершить» остаётся активной. Тап по «Да» подтверждает завершение заказа.
16. Когда заказ завершён, карточка заказа перемещается в самый низ списка. Если заказ был просрочен, но потом выполнен, карточка не подсвечивается красным.
17. Завершённые заказы сортируются по времени выполнения: чем раньше завершён заказ, тем он ниже.

### Нотификация
1. **Уведомление приходит, когда осталось 2 часа, чтобы выполнить заказ. Заказ нужно доставить в день, который указал пользователь, до 23:59. Например, заказ на 8 мая. Если в 21:59 8 мая курьер ещё не доставил самокат, ему приходит пуш-уведомление.**
2. **Уведомление содержит такой текст: «2 часа до конца заказа. Заказ «ул Комнатная 12-14» нужно выполнить до `времени N`. Если не успеваете, предупредите поддержку: 0101»**
3. **Переход по нотификации ведёт в приложение на вкладку «Мои».**

### Отсутствие интернет-соединения
1. **Если нет интернет-соединения, отображается всплывающее окно «Отсутствует интернет-соединение». Оно появляется, если тапнуть по любой активной кнопке на любом экране. Пропадает только по тапу по кнопке «Ок».**
2. **Когда пользователь тапнул по кнопке «Ок», всплывающее уведомление закрывается. Если интернета всё ещё нет, процесс повторяется: тап по любой активной зоне ведёт на всплывающее уведомление «Отсутствует интернет-соединение».**

### Ориентация
Приложение только в портретной ориентации.

![Ограничение полей](https://github.com/user-attachments/assets/882370f2-e503-478a-b74b-3ea6a2a3acdc)
***


[Ссылка на требования](https://praktikum.notion.site/fbb847fa63244f5db3272bc8034ca7fd?pvs=4)

[Ссылка на макеты](https://www.figma.com/file/kqLqPvSvjLVLomkdadkAnk/mobile)

## Проделанная работа:
1. Проанализированы требования.
2. Cпроектированы [тест-кейсы](https://docs.google.com/spreadsheets/d/1MF1nRlNen5fVAR_STiQTQ_BXSQKJFDFnjltLhKZcblo/edit?usp=sharing).
3. Выполнено функциональное тестирование.
4. Заведены [баг-репорты](https://veronivan.youtrack.cloud/issues?q=tag:%20%7B%D0%AF.%D0%A1%D0%B0%D0%BC%D0%BE%D0%BA%D0%B0%D1%82.%20Mobile%20Application%7D) в YouTrack.

## Инструменты


Notion
Figma
Google Sheets
Android Studio
Youtrack