> Как оценить время тестирования приложения на Android и iOS по описанным кейсам? (iOS, Swift, Android)

Уровень: senior · Роль: qa · Категория: Технические вопросы

Компании: Ozon

Стек: iOS, Swift, Android

> Пример ответа

Короткий ответ

Оценка времени тестирования строится на декомпозиции кейсов по платформам, приоритетам и сложности. Базовая формула: сумма времени на каждый кейс с учётом коэффициента на платформенные особенности (iOS и Android), плюс запас на регресс, окружение и коммуникацию. Для senior-уровня важно не просто назвать часы, а показать методику: разбивку на smoke, функциональный, интеграционный и регрессионный уровни, учёт параллельного выполнения и рисков.

Подробное объяснение

Оценка времени тестирования мобильного приложения требует системного подхода. Основные шаги:

  1. Декомпозиция кейсов - каждый описанный кейс разбивается на атомарные проверки: позитивный сценарий, негативные, граничные значения, работа с сетью, состояния UI (пустые, загрузочные, ошибочные), жизненный цикл (background/foreground, kill/restore), поворот экрана, глубокие ссылки.

  2. Платформенные коэффициенты - Android и iOS имеют разные особенности: Android - фрагментация устройств, версии API, бэкграунд-ограничения, разные производители; iOS - строгая экосистема, но меньше вариативность. Обычно Android требует на 20-30% больше времени на те же кейсы из-за необходимости проверки на нескольких устройствах.

  3. Уровни тестирования:

    • smoke - 5-10 минут на кейс, проверка критического пути;
    • функциональный - 15-40 минут на кейс в зависимости от сложности;
    • интеграционный - 30-60 минут, если есть взаимодействие с API, push, deep links;
    • регрессионный - 20-30% от общего времени функционального тестирования.
  4. Формула оценки:

    • T = (Σ t_i × k_platform) × (1 + r) + T_env + T_comm
    • где t_i - время на каждый кейс, k_platform - коэффициент платформы (Android 1.2-1.3, iOS 1.0), r - запас на регресс (0.2-0.3), T_env - время на подготовку окружения, T_comm - коммуникация и баг-репорты.
  5. Параллелизация - если есть два тестировщика (по одному на платформу), общее время сокращается, но добавляется время на синхронизацию результатов.

  6. Риски - нестабильное окружение, отсутствие тестовых данных, сложность воспроизведения багов на конкретных устройствах. На это закладывается 10-15% сверху.

На практике

Для конкретного набора кейсов (например, авторизация, поиск, оформление заказа, push-уведомления) оценка выглядит так:

  • Авторизация: 3 кейса (успех, неверный пароль, восстановление) - 1.5 часа на iOS, 2 часа на Android.
  • Поиск: 5 кейсов (пустой запрос, фильтры, сортировка, нет результатов, опечатки) - 2.5 часа на iOS, 3 часа на Android.
  • Оформление заказа: 6 кейсов (валидация полей, оплата, отмена, таймаут, повторная отправка, сохранение черновика) - 4 часа на iOS, 5 часов на Android.
  • Push: 4 кейса (получение в foreground, background, отключенные уведомления, глубокие ссылки из push) - 2 часа на iOS, 2.5 часа на Android.

Итого: iOS - 10 часов, Android - 12.5 часов. С учётом регресса (25%) и запаса на окружение (15%) - примерно 15-18 часов на обе платформы при последовательном выполнении, или 8-10 часов при параллельной работе двух специалистов.

Пример кода

Не применимо для оценки времени тестирования, но можно использовать чек-лист в виде структуры данных:

PYTHON
test_cases = {
"auth": {"ios": 1.5, "android": 2.0, "priority": "high"},
"search": {"ios": 2.5, "android": 3.0, "priority": "medium"},
"checkout": {"ios": 4.0, "android": 5.0, "priority": "high"},
"push": {"ios": 2.0, "android": 2.5, "priority": "low"}
}
def estimate(cases, regression=0.25, env=0.15):
total_ios = sum(c["ios"] for c in cases.values())
total_android = sum(c["android"] for c in cases.values())
total = (total_ios + total_android) * (1 + regression) * (1 + env)
return total
print(estimate(test_cases)) # ~33.6 часов

Как отвечать на собеседовании

Начните с вопроса: "Какие именно кейсы описаны?" - это покажет, что вы не даёте оценку вслепую. Затем предложите методику: сначала классифицируйте кейсы по сложности и приоритету, затем примените платформенные коэффициенты. Обязательно упомяните, что оценка - это диапазон, а не точное число, и что она уточняется после первого цикла тестирования. Покажите, что учитываете не только время выполнения, но и подготовку данных, настройку устройств, время на баг-репорты. Завершите примером расчёта на конкретных цифрах - это демонстрирует практический опыт.

Что проверяет интервьюер

Интервьюер оценивает:

  • системное мышление - умение декомпозировать задачу;
  • знание платформенных особенностей iOS и Android;
  • реалистичность оценки - отсутствие заниженных или завышенных цифр;
  • умение обосновать цифры, а не назвать их "на глаз";
  • понимание рисков и умение закладывать буфер;
  • навыки коммуникации - способность задавать уточняющие вопросы.

Типичные ошибки

  • Называть конкретное число без объяснения методики - это сразу снижает доверие.
  • Игнорировать платформенные различия, оценивая одинаково для iOS и Android.
  • Не учитывать время на регресс, окружение, коммуникацию.
  • Забывать про нефункциональные проверки: производительность, память, сеть.
  • Оценивать только позитивные сценарии, игнорируя негативные и граничные.
  • Не задавать уточняющих вопросов о количестве устройств, версиях ОС, наличии тестовых данных.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью