Перейти к содержанию
BusinessPad QA

Структура UI-автотестов Android

Актуализировано: 2026-08-27.

Документ сформирован из Allure-декораторов и Pytest-маркеров в tests/. Все 12 UI-модулей входят в регулярный запуск main.py; для tests/test_chat.py используются отдельные настройки CHAT_*.

Параметризованные варианты с разными динамическими Allure titles показаны отдельными сценариями; варианты с одинаковым статическим title сгруппированы.

Метки smoke, regression, usefixtures и xfail отражают состав фактической Pytest-коллекции на дату актуализации.

Функциональные области

Push-уведомления

  • Новая задача в background
    • Push о новой задаче открывает связанную задачу — regression

Авторизация

  • Авторизация негативная
    • Авторизация с неверными логином и паролем — smoke
    • Авторизация с неверным паролем — smoke
    • Спецсимволы в логине — regression
    • Спецсимволы в пароле — regression
    • Спецсимволы в логине и пароле — regression
    • Кнопка недоступна при пустых полях — regression
    • Кнопка недоступна без пароля — regression
    • Кнопка недоступна без логина — regression
    • Авторизация на несуществующем сервере — smoke
  • Авторизация позитивная
    • Авторизация админом — smoke
    • Проверка возможности разлогиниться — regression
  • Восстановление пароля
    • Навигация и валидация email без отправки письма — regression
  • Форма авторизации
    • Показ и скрытие пароля — regression

Аккаунты

  • Мультиаккаунт
    • Авторизация и переключение между двумя тестовыми аккаунтами — regression
    • После переключения аккаунта отображается профиль выбранного пользователя — regression
    • Переключение аккаунта сбрасывает вложенную навигацию всех вкладок — regression
  • Сессии аккаунтов
    • При холодном запуске невалидная текущая сессия заменяется валидной — regression
    • Нельзя переключиться на аккаунт с невалидной сессией — regression
    • При холодном запуске две невалидные сессии ведут в авторизацию — regression
    • Ошибка сети при refresh токена сохраняет текущую сессию — regression

Ещё

  • Личная информация
    • Просмотр полной личной информации — regression
    • Редактирование личной информации — regression
  • Меню, личный профиль и сотрудники
    • Проверка меню Ещё, личного профиля и раздела сотрудников — smoke
  • Поиск по сотрудникам
    • Поиск сотрудников в фильтрах Все, В отпуске и Уволенные — regression
  • Фильтры сотрудников
    • Проверка переключения фильтров сотрудников и изменения списка — smoke

Задачи

  • Восстановление списка после потери сети
    • Refresh задач сохраняет список offline и получает данные после сети — regression
  • Документы задачи
    • Загрузка и удаление PDF-документа в задаче — regression
    • Открытие PDF-документа в задаче: имя с пробелами — regression
    • Открытие PDF-документа в задаче: кириллица, пробелы и кавычки — regression
    • Открытие изображения в задаче — regression
    • Скачивание XLSX-документа из задачи — regression
    • Ошибка скачивания при обрыве сети и успешный повтор — regression
    • Отмена выбора документа в задаче — regression
    • Отмена и скачивание XLSX-документа через меню задачи — regression
    • Удаление одного документа задачи сохраняет остальные — regression
  • Задачи сделки
    • Задача из карточки сделки сохраняет связь со сделкой — regression
  • Календарь задач
    • Календарь | Задача отображается в назначенную дату — regression
    • Календарь | Многодневная задача отображается на всём диапазоне — regression
    • Календарь | Перенос дат перемещает однодневную задачу — regression
    • Календарь | Удалённая задача исчезает после обновления — regression
    • Календарь | Фильтр по тегу изменяет список задач — regression
    • Календарь | UTC-дата около полуночи учитывает timezone устройства — regression
  • Комментарии в Задаче
    • Проверка возможности добавления комментария в Задачу — regression
    • Проверка возможности редактирования комментария в Задаче — regression
    • Проверка возможности удаления комментария в Задаче — regression
    • Один пользователь не может редактировать или удалять чужой комментарий — regression
    • Второй пользователь не может редактировать или удалять чужой комментарий — regression
  • Негативные сценарии для Задач
    • Попытка создать задачу без обязательного названия — regression
    • Попытка сохранить пустой комментарий — regression
  • Права доступа к задаче
    • Пользователь без права на задачи не может изменить или удалить задачу — regression
  • Редактирование Задачи
    • Редактирование Задачи и проверка корректности данных — regression
  • Создание новой Задачи
    • Создание новой Задачи и проверка уведомления — smoke
  • Сортировка задач
    • Сортировка по дате создания показывает сначала новые задачи — regression
  • Сохранение состояния формы
    • Черновик задачи сохраняется после background/foreground — regression
  • Статус задачи
    • Задачу можно завершить и вернуть в активные — regression
  • Удаление Задачи
    • Проверка удаления Задачи — smoke
  • Фильтр задач
    • Поиск задачи по уникальному названию — smoke
    • Фильтры по ответственному и участнику показывают связанные задачи — regression

Меню

  • Экраны меню
    • Проверка перехода на экран Задачи — smoke
    • Проверка перехода на экран Лента — smoke
    • Проверка перехода на экран Ещё — smoke
    • Проверка перехода на экран Процессы — smoke

Оформление

  • Основные экраны и диалоги
    • Основные экраны и диалог выхода видимы в тёмной теме — regression
  • Светлая и тёмная темы
    • Светлая и тёмная темы визуально переключаются — regression
  • Системная тема
    • Системная тема меняется во время работы приложения — regression
  • Системные окна
    • Шторка Android остаётся видимой при системной тёмной теме — regression
  • Сохранение темы
    • Тёмная тема сохраняется после перезапуска приложения — regression

Процессы

  • Валидация полей этапа сделки
    • Текстовое поле сохраняет значение максимальной длины — regression
    • Текстовое поле отклоняет значение длиннее ограничения — regression
    • Числовое поле соблюдает lower границу диапазона — regression
    • Числовое поле соблюдает upper границу диапазона — regression
    • Обязательное поле этапа нельзя сохранить пустым — regression
    • Пустую обязательную переменную нельзя записать — regression
    • Список не позволяет выбрать значение сверх ограничения — regression
  • Вкладки карточки сделки процесса
    • Проверка основных вкладок карточки сделки из процесса — smoke
  • Группы процессов
    • Проверка основных элементов экрана групп процессов — smoke
  • Документы сделки процесса
    • Проверка доступности загрузки документа в карточке сделки процесса — regression
    • Загрузка и удаление PDF-документа в карточке сделки процесса — smoke
    • Открытие PDF-документа в карточке сделки — regression
    • Открытие изображения в карточке сделки — regression
    • Скачивание XLSX-документа из карточки сделки — regression
    • Отмена выбора документа в карточке сделки — regression
    • Отмена и скачивание XLSX-документа через меню карточки сделки — regression
    • Открытие изображения с расширением JPG в верхнем регистре — regression
    • Удаление одного документа сделки сохраняет остальные — regression
  • Карточка сделки процесса
    • Проверка открытия карточки сделки из процесса — smoke
  • Комментарии сделки процесса
    • Проверка элементов добавления комментария в карточке сделки процесса — regression
  • Навигация из карточки сделки процесса
    • Проверка возврата из карточки сделки к процессам — smoke
  • Переменные этапа сделки
    • Переменная этапа text: значение сохраняется после подтверждения — regression
    • Переменная этапа number: значение сохраняется после подтверждения — regression
    • Переменная этапа text: отмена подтверждения сохраняет старое значение — regression
    • Переменная этапа number: отмена подтверждения сохраняет старое значение — regression
  • Поиск процесса в группе
    • Проверка поиска процесса в группе — smoke
    • Поиск существующего процесса и открытие списка сделок — regression
  • Поиск сделок процесса
    • Проверка поиска в списке сделок процесса — smoke
    • Поиск существующей сделки процесса и открытие карточки — regression
  • Поля этапа сделки
    • Поле этапа text: значение сохраняется после переоткрытия карточки — regression
    • Поле этапа number: значение сохраняется после переоткрытия карточки — regression
    • Поле этапа list: значение сохраняется после переоткрытия карточки — regression
    • Поле этапа date: значение сохраняется после переоткрытия карточки — regression
    • Поле этапа flag: значение сохраняется после переоткрытия карточки — regression
    • Поле этапа link: значение сохраняется после переоткрытия карточки — regression
    • Поле этапа text: отмена редактирования сохраняет старое значение — regression
    • Поле этапа number: отмена редактирования сохраняет старое значение — regression
    • Поле этапа list: отмена редактирования сохраняет старое значение — regression
    • Поле этапа date: отмена редактирования сохраняет старое значение — regression
    • Поле этапа flag: отмена редактирования сохраняет старое значение — regression
    • Поле этапа link: отмена редактирования сохраняет старое значение — regression
  • Смена этапа сделки процесса
    • Проверка смены этапа сделки процесса вперёд и назад — smoke
    • Проверка закрытия смены этапа без изменения текущего этапа — smoke
    • Проверка запрета перехода этапа без выбора нового этапа — regression
    • Проверка сохранения сменённого этапа после повторного открытия карточки — smoke
  • Содержательные вкладки карточки сделки процесса
    • Проверка вкладок Финансы, Задачи, Комментарии и Документы — smoke
  • Сортировка сделок процесса
    • Проверка сортировки в списке сделок процесса — smoke
  • Список процессов в группе
    • Проверка перехода в группу процессов и возврата назад — smoke
  • Список сделок процесса
    • Проверка открытия списка сделок из процесса — smoke
  • Файловое поле этапа сделки
    • Файловое поле сохраняется после переоткрытия карточки — regression
    • Отмена системного выбора не изменяет файловое поле — regression
    • Отмена редактирования сохраняет существующий файл — regression
    • Существующий файл заменяется после подтверждения — regression
  • Фильтр сделок процесса
    • Проверка фильтра сделок процесса по тегу — smoke
  • Фильтр финансов сделки
    • Проверка фильтра финансов сделки по черновикам — smoke
  • Финансы сделки
    • Проверка открытия финансов сделки из карточки — smoke

Уведомления

  • Избранные уведомления
    • Лента 'Избранное' отображает добавленное уведомление — regression, usefixtures
  • Категории уведомлений
    • Проверка переходов и контента категорий уведомлений — regression
    • Категория 'Задачи' фильтрует уведомления других типов — regression, usefixtures
  • Лента уведомлений
    • Проверка отображения ленты уведомлений — smoke
    • Проверка меню ленты уведомлений — smoke
  • Переход из уведомления
    • Переход из уведомления по задаче в связанную задачу — regression, usefixtures
    • Переход из уведомления по экземпляру процесса в связанную сделку — regression, usefixtures
  • Уведомления по задачам
    • Проверка уведомления о новой задаче для исполнителя, участника и постороннего пользователя — regression, usefixtures

Финансовые операции

  • Действия с финансовой операцией
    • Редактирование финансовой операции сохраняется после переоткрытия — regression, usefixtures
    • Корректировка суммы финансовой операции сохраняется — regression, usefixtures
    • Копирование финансовой операции создаёт доступную копию — regression, usefixtures
    • Разделение финансовой операции создаёт две сохраняемые части — regression, usefixtures
    • Возврат финансовой операции на предыдущий этап сохраняется — regression, usefixtures
    • Удаление финансовой операции поддерживает отмену и подтверждение — regression, usefixtures
  • Права доступа
    • Пользователь без финансовых прав не может редактировать или разделять ФО — regression, usefixtures
  • Степпер финансовой операции
    • Проверка открытия созданной финансовой операции из вкладки Финансы — smoke
    • Проверка запрета перехода финансовой операции без обязательного поля — regression
    • Проверка заполнения финансовой операции и перехода на следующий подэтап — smoke
    • Проверка сохранения подэтапа финансовой операции после переоткрытия — regression
    • Проверка заполнения всех шагов финансовой операции в матрице: API-assisted, вычисляемая — regression
    • Проверка заполнения всех шагов финансовой операции в матрице: API-assisted, невычисляемая — regression
    • Проверка заполнения всех шагов финансовой операции в матрице: UI-only, вычисляемая — regression
    • Проверка заполнения всех шагов финансовой операции в матрице: UI-only, невычисляемая — regression
  • Товарная финансовая операция
    • Полное прохождение вычисляемой товарной финансовой операции — regression

Чат

  • Offline и повторная отправка
    • Неотправленное offline-сообщение доставляется после ручного retry — regression
  • Вложения
    • Получатель видит и открывает вложения сообщения в групповом чате — regression
    • Пользователь отправляет PDF-вложение через интерфейс чата — regression
  • Групповой чат
    • Групповой чат с длинным названием отображается и открывается — regression
    • Пользователь создаёт групповой чат в приложении и переименовывает его — regression
    • Участник покидает групповой чат в приложении — regression, xfail
    • Создатель удаляет групповой чат в приложении — regression
    • Пользователи открывают групповой чат в приложении и переписываются — regression
  • Действия с сообщениями
    • Пользователь отвечает на сообщение в личном чате — regression
    • Пользователь редактирует своё сообщение в личном чате — regression
    • Пользователь удаляет своё сообщение в личном чате — regression
  • Сообщения
    • Администратор и тестовый пользователь обмениваются сообщениями — regression
    • Тестовые пользователи обмениваются личными сообщениями — regression
    • Пользователи обмениваются сообщениями в API-подготовленной группе — regression
    • Пустое сообщение нельзя отправить — regression
  • Список чатов
    • Проверка открытия раздела Чат — smoke
    • Пользователь находит групповой чат через поиск — regression