Как тестировать построение маршрута в картографическом приложении?

«Как тестировать построение маршрута в картографическом приложении?» — вопрос из категории Мобильное тестирование, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Тестирование построения маршрута включает проверку алгоритмов, данных и интеграций. Основные подходы:

1. Валидация входных данных:

  • Корректность формата координат и адресов.
  • Обработка некорректных, пустых или заграничных точек.

2. Проверка логики маршрутизации:

  • Типы маршрутов: пеший, автомобильный, велосипедный, общественный транспорт.
  • Критерии: самый короткий, самый быстрый, с учетом пробок (если есть).
  • Граничные случаи:
    • Очень короткие (внутри здания) и очень длинные расстояния (между странами).
    • Маршруты через водные преграды, закрытые зоны, границы регионов.
    • Отсутствие возможного пути (изолированные острова).

3. Сравнение и верификация:

  • Сопоставление результатов с эталонными сервисами (Google Maps, Яндекс.Карты) для проверки точности дистанции и времени.
  • Проверка корректности отображения маршрута на карте (геометрия, повороты).

4. Интеграционное тестирование:

  • Работа с реальным бэкендом и геосервисами.
  • Проверка кэширования маршрутов.
  • Тестирование в условиях плохого соединения.

Пример автоматизированного теста (Python/pytest):

def test_route_calculation_between_major_cities():
    # Координаты: Москва -> Санкт-Петербург
    start_point = (55.7558, 37.6173)
    end_point = (59.9343, 30.3351)

    route = calculate_route(start_point, end_point, mode="driving")

    # Проверка рассчитанной дистанции (примерный диапазон)
    assert 600_000 < route.distance_meters < 750_000  # ~600-750 км
    # Проверка рассчитанного времени (должно быть > 7 часов в секундах)
    assert route.duration_seconds > 7 * 3600
    # Проверка, что маршрут содержит хотя бы одну точку (геометрию)
    assert len(route.geometry) > 0

Инструменты: Charles/Fiddler для анализа сетевых запросов к геосервису, скриншотное тестирование для визуальной проверки, мобильные эмуляторы/симуляторы для проверки на разных устройствах.