Виды тестирования (На примере приложения Яндекс Карты)
Что такое виды тестирования (на примере приложения яндекс карты): определение, основные принципы, примеры и практические советы. Изучайте основах тестирования ПО с подробными объяснениями для начинающих специалистов.
Виды тестирования (На примере приложения Яндекс Карты).
Функциональное.
Функциональное тестирование направлено на проверку того, выполняет ли приложение свои функции в соответствии с заданными требованиями.
Общие проверки:
- Проверить корректность отображения карты при запуске приложения.
- Проверить поиск по запросу “Станция метро” и отображение результатов на карте.
- Проверить поиск по запросу “Парк” и отображение результатов на карте.
- Проверить работу функции прокладки маршрута между двумя точками.
- Проверить отображение информации о выбранном объекте (адрес, часы работы, отзывы).
- Проверить работу фильтров (например, по рейтингу или типу заведения) в результатах поиска.
- Проверить корректность отображения текущего местоположения пользователя.
- Проверить работу функции “Избранное” для сохранения мест.
- Проверить обновление данных карты при изменении местоположения пользователя.
- Проверить работу функции “Пробки” и отображение актуальной информации о дорожной ситуации.
- Проверить корректность отображения информации о транспорте (расписание, маршруты) в режиме общественного транспорта.
- Проверить возможность переключения между различными режимами карты (спутник, схема, гибрид).
- Проверить работу функции “Поделиться” для отправки местоположения другим пользователям.
- Проверить корректность отображения информации о времени в пути для различных видов транспорта.
- Проверить возможность добавления пользовательских меток на карту.
- Проверить работу функции “История поиска” и отображение ранее введенных запросов.
Нефункциональное.
Нефункциональное тестирование направлено на оценку характеристик системы, не связанных с конкретными функциональными требованиями.
Общие проверки:
- Проверить время загрузки карты при запуске приложения.
- Проверить производительность приложения при одновременном выполнении нескольких запросов (например, поиск и прокладка маршрута).
- Проверить стабильность работы приложения при низкой скорости интернет-соединения.
- Проверить корректность отображения карты на различных устройствах и разрешениях экрана.
- Проверить потребление ресурсов (памяти, процессора) при длительном использовании приложения.
- Проверить устойчивость приложения к сбоям (например, отключение интернета во время работы).
- Проверить безопасность данных пользователя (шифрование, защита личной информации).
- Проверить удобство интерфейса и навигации для пользователей.
- Проверить совместимость приложения с различными версиями операционных систем (iOS, Android).
- Проверить время отклика интерфейса при взаимодействии с элементами (например, кнопками и меню).
- Проверить устойчивость приложения к нагрузкам (например, при большом количестве пользователей одновременно).
- Проверить качество отображения картографических данных (четкость, масштабируемость).
- Проверить работу приложения в офлайн-режиме (доступность загруженных карт и информации).
- Проверить удобство использования приложения для пользователей с различными типами устройств (смартфоны, планшеты).
- Проверить соответствие дизайна приложения современным стандартам UX/UI.
- Проверить возможность интеграции с другими сервисами (например, навигатор, такси).
- Проверить устойчивость приложения к различным сценариям использования (например, переключение между режимами карты и маршрута).
Пользовательского интерфейса (GUI).
Тестирование пользовательского интерфейса (GUI) направлено на проверку того, как пользователи взаимодействуют с интерфейсом, насколько он интуитивно понятен и удобен.
- Тестирование визуального оформления:
- Проверить, что все элементы интерфейса (кнопки, заголовки, текст) соответствуют гайдлайнам бренда “Яндекс”.
- Тестирование интерактивных элементов:
- Проверить, что все кнопки (например, “Построить маршрут”, “Сохранить место”) реагируют на нажатия, выполняют соответствующие действия и имеют состояния: активное, неактивное, наведенное и тд.
- Тестирование навигации:
- Проверить, что логика навигации между экранами и навигационные элементы работают корректно и интуитивно понятно (например, от карты к списку сохраненных мест, и меню, кнопки “Назад” и тд.).
- Тестирование адаптивности интерфейса:
- Проверить, что отображение интерфейса на различных устройствах и разрешениях экрана, корректно масштабируются и располагаются на экране, независимо от размера устройства (например, как отображается карта и элементы управления на смартфонах с маленьким экраном по сравнению с планшетами).
Удобство использования (usability).
Тестирование удобства использования направлено на выявление проблем, которые могут повлиять на пользовательский опыт и на оценку того, насколько легко и эффективно пользователи могут выполнять свои задачи.
- Тестирование навигации и доступность функций:
- Проверить сколько времени потребуется пользователям, при использовании функции “Построить маршрут”.
- Тестирование интуитивности интерфейса:
- Проверить, что интерфейс приложения интуитивно понятен (например, при изменении режима отображения карты с дорожного на спутниковый пользователи не испытывают затруднения в процессе выполнения).
- Тестирование читаемости и восприятие информации:
- Проверить насколько хорошо пользователи могут различать элементы интерфейса (например, значки пробок, метки на карте) и насколько они понимают, что эти элементы означают.
- Тестирование сообщений об ошибках:
- Проверить, как приложение реагирует на неверные действия (например, ввод неправильного адреса) и насколько понятны сообщения об ошибках.
Безопасности.
Тестирование безопасности направлено на поиск уязвимостей, которые могут быть использованы злоумышленниками для кражи данных или нарушения работы системы.
- Тестирование аутентификации и авторизации:
- Проверить, как приложение обрабатывает попытки входа с неправильными учетными данными и убедиться, что оно не раскрывает информацию о существовании учетной записи (например, сообщения типа “Неверный логин или пароль” вместо “Пользователь не найден”).
- Тестирование шифрования данных:
- Проверить, что данные передаются по защищенным протоколам (например, HTTPS) и что они шифруются при хранении на устройстве.
- Тестирование уязвимостей:
- Проверить, что нет уязвимостей, которые могут быть использованы злоумышленниками (например, SQL-инъекции) и приложение устойчиво к DoS атакам и оно может справляться с высокими нагрузками и не становится недоступным для пользователей.
- Тестирование обработки ошибок и логирования:
- Проверить, что приложение не выводит стек вызовов или другую внутреннюю информацию.
Инсталляционное.
Инсталляционное тестирование направлено на проверку установки и настройки программного обеспечения на устройствах.
- Тестирование установки из различных источников:
- Проверить, что приложение корректно загружается, устанавливается и запускается на различных устройствах с разными версиями операционных систем (из официальных магазинов, например, Google Play для Android или App Store для iOS) и APK-файла (для Android) или iPA-файла (для iOS).
- Тестирование необходимых разрешений:
- Проверить, что приложение корректно обрабатывает отказ пользователя в предоставлении разрешений и предоставляет соответствующие уведомления о необходимости этих разрешений для полноценной работы.
- Тестирование обновления приложения:
- Проверить, что все функции работают корректно после обновления.
- Тестирование удаления приложения:
- Проверить, что приложение корректно обрабатывает запросы на удаление и предоставляет пользователю соответствующие уведомления о завершении процесса и после удаления приложения все его данные не остаются в хранилище устройства.
Конфигурационное.
Конфигурационное тестирование направлено на проверку приложения на предмет его работы в различных конфигурациях аппаратного и программного обеспечения.
- Тестирование на различных устройствах:
- Проверить, как работает приложения на разных моделях смартфонов и планшетов с различными характеристиками.
- Тестирование совместимости с различными версиями операционных систем:
- Проверить, что приложение функционирует корректно и использует все доступные функции на каждой версии ОС (например, Android 10, 11, 12 и iOS 14, 15, 16).
- Тестирование с различными настройками сети:
- Проверить, как приложение работает при отсутствии сети и какие функции остаются доступными (например, кэширование карт).
- Тестирование различных настроек устройства:
- Проверить, как приложение работает в режиме энергосбережения.
Надежности и восстановления после сбоев (на отказ и восстановление).
Тестирование надежности и восстановления после сбоев направлено на проверку способности приложения функционировать без сбоев в течение определенного времени и его способности восстанавливаться после возникновения ошибок или сбоев.
- Тестирование непрерывного использования функционала:
- Проверить, как приложение справляется с длительной нагрузкой при запуске приложения и выполнение различных операций, таких как поиск мест, построение маршрутов, в течение нескольких часов без перерыва.
- Тестирование ресурсов:
- Проверить, что при длительном использовании приложения отсутствуют утечки памяти или другие проблемы.
- Тестирование на сбои:
- Проверить приложения на способности к восстановлению в случае возникновения ошибок или сбоев (например, потеря соединения с интернетом или закрытие приложения).
- Тестирование в различных условиях:
- Проверить, как приложение адаптируется к изменениям в среде, таких как изменение скорости интернет-соединения или работа в офлайн-режиме.
Локализации.
Тестирование локализации направлено на проверку приложения на соответствие требованиям и ожиданиям пользователей в разных регионах и культурах.
- Тестирование текстов:
- Проверить, что все тексты отображаются без ошибок и соответствуют культурным особенностям.
- Тестирование контекста:
- Проверить, что переводы соответствуют контексту использования (например, названия улиц, районов).
- Тестирование адаптации контента:
- Проверить соответствие контента культурным и социальным нормам целевой аудитории (например, использование изображений и символов, которые могут быть восприняты по-разному в разных культурах).
- Тестирование отображения географических данных:
- Проверить, что географические данные соответствуют реальным местоположениям.
Производительности.
Тестирование производительности направлено на оценку быстродействия, стабильности и масштабируемости приложения под различными нагрузками.
- Тестирование времени отклика:
- Проверить сколько времени потребуется для построения маршрута между двумя точками при различных условиях сети (Wi-Fi, 4G, 3G) и на разных устройствах.
- Тестирование нагрузки:
- Проверить, что приложение не зависает и не теряет производительность при увеличении числа запросов (например, когда множество пользователей одновременно запрашивают данные о пробках или строят маршруты в одном и том же районе).
- Тестирование использования ресурсов:
- Проверить сколько оперативной памяти и процессорного времени использует приложение при выполнении различных задач, таких как отображение карты, обновление данных о пробках и построение маршрутов.
- Тестирование устойчивости:
- Проверить, что у приложения в течение нескольких часов не возникает проблема с производительностью, такие как замедление работы или сбои.
Нагрузочное.
Нагрузочное тестирование направлено на оценку поведения приложения под ожидаемой нагрузкой.
- Тестирование одновременных пользователей:
- Проверить, как приложение справляется с 1000, 5000 и 10,000 пользователей, одновременно запрашивающих данные о пробках или строящих маршруты в одном и том же районе.
- Тестирование пиковых нагрузок:
- Проверить, что приложение не теряет функциональности и скорости отклика, когда в определенный момент времени количество запросов возрастает в несколько раз.
- Тестирование времени отклика под нагрузкой:
- Проверить, как изменяется время с увеличением нагрузки и сколько времени требуется для построения маршрута или загрузки карты при различных уровнях нагрузки (например, 100, 500, 1000 запросов в минуту).
- Тестирование устойчивости к сбоям:
- Проверить, как приложение справляется с временной потерей соединения с сервером или с ошибками в API, когда количество запросов достигает максимума.
Стабильности (надежности).
Тестирование стабильности направлено на оценку способности приложения функционировать без сбоев и ошибок в течение длительного времени и при различных условиях использования.
- Тестирование утечки памяти:
- Проверить, не возникают ли утечки памяти или других проблем, при запуске приложения и использования его в течение длительного времени (например, для построения маршрутов, поиска мест и просмотра карт).
- Тестирование в условиях изменяющейся нагрузки:
- Проверить, как приложение справляется с изменением качества соединения во время использования.
- Тестирование обработки ошибок:
- Проверить, как приложение обрабатывает временные сбои в сети и предоставляет ли пользователю возможность продолжить работу (например, через кэширование данных или отображение последней доступной информации).
- Тестирование устойчивости к сбоям:
- Проверить, как приложение реагирует на неожиданное закрытие (например, при сбое устройства) и как оно восстанавливает свою работоспособность после перезапуска (например, возвращает пользователя к последнему использованному маршруту или сохраняет введенные данные).
Стрессовое.
Стрессовое тестирование направлено на оценку приложения, направленный на определение его пределов производительности и устойчивости при экстремальных условиях.
- Тестирование под высокой нагрузкой пользователей:
- Проверить, как приложение работает, когда одновременно 10,000 пользователей запрашивают данные о маршрутах в одном и том же районе.
- Тестирование при интенсивных запросах к API:
- Проверить, как приложение реагирует на 1000 запросов на получение данных о ближайших объектах за 1 минуту.
- Тестирование в условиях ограниченной сети:
- Проверить, как приложение обрабатывает запросы на построение маршрутов, когда скорость соединения составляет менее 100 Кбит/с.
- Тестирование на устойчивость к сбоям сервера:
- Проверить, как приложение обрабатывает ситуацию, когда сервер недоступен, и как оно восстанавливает работу после восстановления соединения.
Объемное.
Объемное тестирование направлено на оценку приложения на его способность обрабатывать большие объемы данных и обеспечивать корректную работу при работе с ними.
- Тестирование загрузки больших объемов картографических данных:
- Проверить, как приложение реагирует на загрузку карты с большим количеством объектов (рестораны, магазины, достопримечательности).
- Тестирование обработки больших массивов данных о пробках:
- Проверить, как приложение справляется с отображением информации о пробках на крупных магистралях и в городах с высокой плотностью трафика, когда данные обновляются каждые несколько секунд.
- Тестирование работы с историческими данными:
- Проверить, как приложение справляется с запросами на отображение данных о пробках и маршрутах за длительный период времени (например, за месяц или год).
- Тестирование поиска и фильтрации объектов:
- Проверить, как приложение справляется с запросами на поиск объектов (например, ресторанов или магазинов) в большом радиусе и как быстро оно отображает результаты, когда в базе данных содержится большое количество объектов.
Масштабируемости.
Масштабируемость тестирования направлено на оценку способности приложения адаптироваться к увеличению нагрузки, объема данных или числа пользователей без потери производительности и функциональности.
- Тестирование увеличения числа пользователей:
- Проверить, как приложение справляется с увеличением числа пользователей с 1000 до 10,000 и более, одновременно запрашивающих данные о маршрутах и пробках.
- Тестирование обработки увеличенного объема данных:
- Проверить, как приложение справляется с увеличением количества объектов (например, ресторанов, магазинов) на карте с 10,000 до 100,000.
- Тестирование горизонтального масштабирования:
- Проверить, как приложение реагирует на распределение нагрузки между несколькими серверами при увеличении числа запросов.
- Тестирование устойчивости к пиковым нагрузкам:
- Проверить, как приложение справляется с нагрузкой, не теряя функциональности и скорости отклика, когда в определенный момент времени количество запросов возрастает в несколько раз (например, во время крупных мероприятий или праздников).
Конкурентное.
Конкурентное тестирование направлено на оценку производительности и функциональности приложения в условиях, когда оно работает одновременно с другими приложениями, использующими те же ресурсы или выполняющими аналогичные задачи.
- Тестирование работы с другими приложениями:
- Проверить, как приложение справляется с построением маршрута и отображением карты, когда одновременно запущены приложения, требующие высокой производительности процессора и памяти.
- Тестирование работы в условиях ограниченной сети:
- Проверить, как приложение справляется с загрузкой карт и данными о пробках, когда одновременно работают приложения, которые активно загружают данные из интернета.
- Тестирование многозадачности:
- Проверить, как приложение восстанавливает свое состояние и производительность после переключения между “Яндекс картами” и приложением для обмена сообщениями или браузером.
- Тестирование использования ресурсов:
- Проверить, как влияет на общую производительность устройства, при активной работе с картами, когда в фоновом режиме работают другие приложения.
По степени автоматизации.
Ручное.
Ручное тестирование направлено на оценку функциональности и качества приложения, выполняемый вручную без использования автоматизированных инструментов.
- Тестирование функциональности поиска:
- Проверить, как приложение реагирует на ввод различных запросов (например, “рестораны”, “бензозаправки”, “достопримечательности”) и как быстро и корректно отображаются результаты поиска.
- Тестирование построения маршрутов:
- Проверить, как приложение строит маршруты между различными точками, учитывая разные параметры (например, избегание пробок, минимальное время в пути) и как оно отображает информацию о маршруте (например, время в пути, расстояние).
- Тестирование пользовательского интерфейса:
- Проверить насколько интуитивно понятен интерфейс, как легко пользователю находить нужные функции, и как приложение отображается на различных устройствах и разрешениях экрана.
- Тестирование работы в офлайн-режиме:
- Проверить, как приложение загружает и отображает кэшированные карты, как оно обрабатывает запросы на построение маршрутов и поиск объектов, когда интернет-соединение недоступно, и как оно уведомляет пользователя о недоступности данных.
Автоматизированное.
Автоматизированное тестирование направлено на проверку функциональности и производительности приложения.
- Тестирование функциональности поиска:
- Проверить, как приложение обрабатывает различные запросы поиска, включая корректные и некорректные. Например, создать тесты, которые автоматически вводят разные запросы и проверяют, что результаты поиска соответствуют ожиданиям.
- Тестирование построения маршрутов:
- Проверить, что приложение корректно рассчитывает время в пути и расстояние, построения маршрутов и отображает информацию о маршруте.
- Тестирование пользовательского интерфейса:
- Проверить, что интерфейс остается стабильным и удобным для пользователя после обновлений (например, визуальные элементы интерфейса, такие как кнопки, меню и карты, на различных устройствах и разрешениях экрана).
- Тестирование производительности:
- Проверить, как приложение справляется с большим количеством пользователей и запросов (например, как быстро приложение загружает карты и обрабатывает запросы при высокой нагрузке).
По сценариям.
Позитивное.
Позитивное тестирование направлено на проверку приложения, как оно работает в условиях, когда все вводимые данные и действия пользователя соответствуют ожидаемым и корректным.
- Тестирование поиска объектов:
- Проверить, как приложение обрабатывает корректные запросы поиска (например, ввод названий популярных ресторанов, магазинов или достопримечательностей).
- Тестирование построения маршрутов:
- Проверить, как приложение строит маршрут между двумя известными адресами.
- Тестирование работы с картами:
- Проверить, как приложение реагирует на жесты увеличения и уменьшения масштаба.
- Тестирование сохранения избранных мест:
- Проверить, как приложение позволяет пользователю добавлять рестораны или другие интересные места в избранное и как эти объекты отображаются в списке.
Негативное.
Негативное тестирование направлено на то, как приложение реагирует на некорректные или неожиданные данные и действия пользователя.
- Тестирование поиска объектов с некорректными данными:
- Проверить, как приложение обрабатывает ввод несуществующих или неправильно написанных названий объектов (например, ввод случайных символов или несуществующих адресов).
- Тестирование построения маршрутов с неверными координатами:
- Проверить реакции приложения на ввод некорректных координат (например, за пределами карты или с ошибками в формате).
- Тестирование работы с картами при отсутствии интернет-соединения:
- Проверить, как приложение реагирует на попытку использования функций (например, поиск или построение маршрутов) без доступа к интернету.
- Тестирование добавления в избранное несуществующих объектов:
- Проверить поведения приложения при попытке добавить в избранное объекты, которые не существуют или были удалены.
По знанию системы.
Тестирование белого ящика.
Тестирование белого ящика направлено на получение доступа к внутренней структуре, логике и коду приложения.
- Тестирование алгоритмов построения маршрутов:
- Проверить код, отвечающий за построение маршрутов, и тестирование различных сценариев (как приложение обрабатывает различные параметры, например, избегание пробок, минимальное время в пути).
- Тестирование обработки ошибок:
- Проверить код, отвечающий за обработку ошибок и исключений (как приложение реагирует на некорректные входные данные, например, неверные координаты).
- Тестирование производительности функций:
- Проверить код на наличие узких места, которые могут снизить производительность различных функций приложения (например, загрузка карт и данных о пробках).
- Тестирование безопасности кода:
- Проверить код на наличие уязвимостей и потенциальных угроз безопасности (например, как приложение обрабатывает пользовательские данные и запросы, и , что оно защищено от атак, таких как SQL-инъекции или утечки данных).
Тестирование серого ящика.
Тестирование серого ящика направлено на проверку как белого, так и черного ящика. Есть частичный доступ к внутренней структуре приложения и пользовательский опыт для
проверки функциональности.
- Тестирование API интеграции:
- Проверить, как приложение взаимодействует с внешними API, такими как API для получения данных о пробках, маршрутах и местоположениях (например, как приложение реагирует на задержки в ответах API или на получение некорректных данных).
- Тестирование обработки ошибок:
- Проверить код, отвечающий за обработку ошибок, и тестирование различных сценариев, когда приложение сталкивается с проблемами, такими как отсутствие интернет-соединения или недоступность сервера.
- Тестирование пользовательского интерфейса с учетом логики приложения:
- Проверить элементы интерфейса, (кнопки, меню и карты) с учетом их функциональности и взаимодействия с кодом (например, как изменения в коде влияют на отображение карт и доступность функций и как интерфейс реагирует на различные действия пользователя).
- Тестирование производительности и нагрузки:
- Проверить, как приложение справляется с большим количеством запросов (например, как быстро приложение загружает карты и данные о пробках при одновременном использовании несколькими пользователями).
Тестирование черного ящика
Тестирование черного ящика направлено на проверку, при котором нет доступа к внутренней структуре или коду.
- Тестирование поиска местоположений:
- Проверить функции поиска, что приложение корректно находит адреса, заведения и другие объекты (например, вводя различные запросы, такие как “Кафе”, “Станция метро”, “Парк”).
- Тестирование построения маршрутов:
- Проверить, что приложение предлагает оптимальные маршруты с правильным временем в пути и расстоянием.
- Тестирование отображения информации о пробках:
- Проверить, что данные о пробках обновляются в реальном времени и корректно отображаются на карте и что приложение предлагает альтернативные маршруты в случае заторов.
- Тестирование пользовательского интерфейса:
- Проверить насколько легко пользователю находить нужные функции, такие как поиск, построение маршрутов и доступ к избранным местам и как интерфейс реагирует на различные действия пользователя (например, масштабирование карты и т.д.).
По разработке тестовых сценариев.
Сценарное.
Сценарное тестирование направлено на проверку конкретных сценариев использования приложения, основанные на реальных условиях и действиях пользователей.
- Тестирование поиска и навигации:
- Проверить ввод названия кафе в строку поиска, выбор из предложенных результатов, нажатие на кнопку “Построить маршрут”.
- Тестирование работы с избранным:
- Проверить поиск места, добавление его в избранное, переход в раздел “Избранное”, выбор места для удаления.
- Тестирование использования офлайн-карт:
- Проверить загрузку карты для офлайн-доступа, отключение интернет-соединения, попытка поиска мест и построения маршрутов.
- Тестирование получения информации о пробках:
- Проверить построение маршрута, нажатие на кнопку для отображения информации о пробках.
Исследовательское.
Исследовательское тестирование направлено на активное исследование приложения, используя знания, опыт и интуицию для выявления дефектов и проблем.
- Тестирование пользовательского интерфейса:
- Проверить, как быстро и удобно пользователю находить нужные функции (например, поиск, построение маршрутов и доступ к избранным местам).
- Тестирование поиска и фильтрации:
- Проверить, как приложение обрабатывает запросы, насколько точно оно предлагает результаты, и как оно реагирует на несуществующие или некорректные запросы.
- Тестирование офлайн-режима:
- Проверить, может ли пользователь находить свои избранные места и строить маршруты на основе загруженных данных.
- Тестирование производительности и устойчивости:
- Проверить, как быстро приложение загружает карты и данные о пробках при одновременном использовании несколькими пользователями.
По исполнению кода.
Статическое.
Статическое тестирование направлено на анализ кода, документации и других артефактов приложения без его выполнения, что позволяет выявить ошибки и несоответствия на ранних этапах разработки.
- Тестирование кода:
- Проверить стиль кода, соблюдение стандартов кодирования, правильно ли реализованы функции для работы, например, с картами и маршрутизацией.
- Тестирование требований:
- Проверить, все ли функции, описанные в документации, реализованы в приложении, и нет ли противоречий между различными требованиями.
- Тестирование пользовательской документации:
- Проверить, правильно ли описаны функции поиска и построения маршрутов и наличие инструкций по использованию офлайн-режима.
- Тестирование безопасности данных:
- Проверить, как приложение обрабатывает данные, полученные от пользователей, и защищено ли оно от потенциальных атак.
Динамическое.
Динамическое тестирование направлено на проверку приложения в процессе его выполнения.
- Тестирование результата поиска:
- Проверить, правильно ли приложение отображает результаты поиска по заданному адресу.
- Тестирование производительности:
- Проверить, как приложение реагирует на запросы при одновременном использовании несколькими пользователями.
- Тестирование пользовательского интерфейса:
- Проверить, легко ли пользователю найти нужные функции и как быстро он может построить маршрут.
- Тестирование на различных устройствах:
- Проверить, как приложение работает на устройствах с разными размерами экранов и версиями Android или iOS.
По уровню тестирования.
Модульное (компонентное / unit).
Модульное тестирование направлено на проверку отдельных модулей или компонентов приложения на корректность их работы.
- Тестирование функции поиска мест:
- Проверить, возвращает ли функция ожидаемые результаты для различных типов запросов (например, “кафе”, “магазин”, “несуществующее место”).
- Тестирование алгоритма построения маршрутов:
- Проверить, правильно ли алгоритм выбирает оптимальный маршрут в зависимости от заданных условий.
- Тестирование обработки данных о пробках:
- Проверить, правильно ли функция обновляет данные о пробках в реальном времени.
- Тестирование работы с избранными местами:
- Проверить, сохраняются ли изменения в списке избранных мест после перезапуска приложения.
Интеграционное.
Интеграционное тестирование направлено на проверку взаимодействия между различными модулями или компонентами приложения.
- Тестирование взаимодействия модуля поиска и API геокодирования:
- Проверить, правильно ли отображаются результаты поиска для различных адресов и как приложение обрабатывает ошибки, если адрес не найден.
- Тестирование интеграции модуля маршрутизации с данными о пробках:
- Проверить, изменится ли маршрут в реальном времени при получении новых данных о пробках.
- Тестирование синхронизации избранных мест между устройствами:
- Проверить, добавляется ли новое избранное место на одном устройстве и появляется ли оно на другом устройстве после синхронизации.
- Тестирование взаимодействия с картографическим API и отображением на карте:
- Проверить, правильно ли отображаются пробки на карте и как они обновляются при изменении условий на дороге.
Сквозное (end-to-end).
Сквозное тестирование направлено на полную проверку функциональности приложения, начиная от пользовательского интерфейса и заканчивая серверной частью и базами данных.
- Тестирование поиска и построения маршрута:
- Проверить, как приложение обрабатывает ошибки, например, если введен некорректный адрес.
- Тестирование регистрации и авторизации пользователя:
- Проверить, как приложение реагирует на попытки входа с несуществующими учетными данными.
- Тестирование добавления и удаления избранных мест:
- Проверить, корректно ли отображается изменение в списке избранных мест на всех устройствах пользователя.
- Тестирование использования функции навигации в реальном времени:
- Проверить, корректно ли отображения текущего местоположения пользователя на карте, актуальность голосовых подсказок, обновление маршрута при изменении условий на дороге (например, при возникновении пробок или закрытии дорог).
Операционное.
Операционное тестирование направлено на проверку работы системы в условиях, приближенных к реальным эксплуатационным.
- Тестирование производительности под нагрузкой:
- Проверить время отклика приложения и его способности обрабатывать запросы без значительных задержек (например, симуляция ситуации, когда тысячи пользователей одновременно ищут маршруты или просматривают карты в часы пик).
- Тестирование устойчивости к сбоям:
- Проверить, как приложение обрабатывает ситуацию, когда, например, отключается интернет-соединения во время навигации: сохраняет ли оно текущий маршрут, уведомляет ли пользователя о потере соединения и предлагает ли альтернативные действия.
- Тестирование работы в различных условиях:
- Проверить, как приложение загружает карты и выполняет поиск мест при медленном интернет-соединении.
- Тестирование безопасности и защиты данных:
- Проверить уязвимость приложения в условиях реальной эксплуатации (например, тестирование аутентификации и авторизации, как приложение обрабатывает ввод некорректных данных или попытки несанкционированного доступа).
По исполнителям тестирования.
Альфа-тестирование.
Альфа-тестирование направлено на тестирование внутри команды разработчиков или в рамках компании.
- Тестирование функциональности поиска мест:
- Проверить, как приложение обрабатывает некорректные или неполные запросы, корректность отображения результатов поиска, скорость обработки запросов и правильность работы фильтров (например, по категориям).
- Тестирование построения маршрутов:
- Проверить, как приложение реагирует на изменения в условиях движения, корректность расчета маршрутов с учетом различных параметров, таких как тип транспорта (пешком, на автомобиле), наличие пробок и альтернативные маршруты.
- Тестирование пользовательского интерфейса:
- Проверить соответствие дизайна требованиям, удобство навигации и доступность функций (например, легко ли пользователю находить нужные функции и как быстро он может выполнить основные действия, такие как построение маршрута или добавление места в избранное).
- Тестирование работы с избранными местами:
- Проверить корректность выполнения операций добавления и удаления мест из списка избранных и правильность отображения этого списка, сохраняются ли изменения в списке избранных мест после перезапуска приложения.
Бета-тестирование.
Бета-тестирование направлено на проверку приложения реальными пользователями.
- Тестирование пользовательского опыта (UX):
- Проверить легкость навигации, интуитивность интерфейса и скорость выполнения основных действий (например, поиск мест и построение маршрутов).
- Тестирование обновлений и новых функций:
- Проверить корректность работы новых функций, таких как обновленные фильтры поиска или новые способы отображения информации на карте.
- Тестирование производительности под нагрузкой:
- Проверить скорость загрузки карт, время отклика на запросы пользователей и стабильность работы приложения в условиях большого количества одновременно активных пользователей.
- Тестирование совместимости с различными устройствами:
- Проверить корректность отображения интерфейса и функциональность на разных экранах и совместимость с различными версиями операционных систем Android и iOS.
Открытое.
Открытое бета-тестирование направлено на широкую аудитории пользователей.
- Тестирование функциональности поиска:
- Проверить точность и скорость поиска мест и маршрутов и корректности отображения результатов.
- Тестирование отображения отзывов:
- Проверить возможность оставления и отображения отзывов о местах, включая возможность их редактирования и удаления.
- Тестирование работы с картами в разных условиях:
- Проверить отображение карт в условиях плохого интернет-соединения или при использовании различных мобильных устройств.
- Тестирование новых функций и обновлений:
- Проверить работу новых возможностей, такие как обновленные фильтра или новые способы отображения информации.
Закрытое.
Закрытое бета-тестирование направлено на ограниченную группу пользователей, отобранных для тестирования новых функций.
- Тестирование новых функций поиска:
- Проверить точность и скорость поиска, корректность отображения результатов, возможность использования фильтров (например, по категориям или расстоянию).
- Тестирование производительности приложения:
- Проверить время загрузки карт, скорость отклика на действия пользователя и стабильность работы приложения при длительном использовании или в условиях ограниченного интернет-соединения.
- Тестирование пользовательского интерфейса (UI):
- Проверить легкость навигации, доступность основных функций и соответствие дизайна современным стандартам и ожиданиям пользователей.
- Тестирование интеграции с другими сервисами:
- Проверить корректность передачи данных между приложениями, удобство использования интегрированных функций и отсутствие ошибок при взаимодействии.
По хронологии выполнения
Ре-тест (повторное).
Ре-тест направлен на проверку исправленных ошибок в приложении после того, как разработчики внесли изменения в код или функциональность.
- Тестирование исправление ошибки поиска мест:
- Проверить, что результаты отображаются правильно и соответствуют ожиданиям пользователей. После исправления ошибки функции поиска, вводя различные запросы.
- Тестирование проблем с отображением маршрутов:
- Проверить, что маршруты отображаются корректно и соответствуют актуальным данным о дорожной ситуации. После внесения исправлений в построение маршрутов с различными параметрами (пешком, на автомобиле)
- Тестирование ошибки в сохранении избранных мест:
- Проверить, сохраняются ли изменения после перезапуска приложения. После исправления функциональности добавления и удаления мест из избранного.
- Тестирование проблем с отображением информации о пробках:
- Проверить, обновляется ли информация в реальном времени и корректно ли отображаются изменения на карте. После исправления отображения информации о пробках.
Регрессионное
Регрессионное тестирование направлено на проверку новых изменений, что они не влияют на существующую функциональность приложения и что все ранее работающие функции продолжают функционировать корректно.
- Тестирование функциональности поиска мест:
- Проверить точность и скорость поиска, корректность отображения результатов и работу фильтров (например, по категориям или расстоянию).
- Тестирование построения маршрутов:
- Проверить корректность построения маршрутов для различных типов транспорта (пешком, на автомобиле, на общественном транспорте) и отображение информации о пробках и альтернативных маршрутах.
- Тестирование работы с избранными местами:
- Проверить, что пользователи могут успешно добавлять и удалять места из списка избранных и изменения сохраняются после перезапуска приложения.
- Тестирование интеграции с другими сервисами:
- Проверить корректность передачи данных между приложениями, возможность вызова такси из “Яндекс карт” и правильность отображения информации о маршруте.
Санитарное (sanity)
Санитарное тестирование направлено на быструю проверку основных функций приложения после внесения изменений, исправлений или обновлений.
- Тестирование запуска приложения:
- Проверить отображение главного экрана, отсутствие сбоев и зависаний, корректность загрузки интерфейса.
- Тестирование отображения карты:
- Проверить наличие карты, корректность масштабирования, отображение текущего местоположения пользователя и наличие актуальных данных о пробках.
- Тестирование функции поиска:
- Проверить корректность отображения результатов поиска, отсутствие ошибок при вводе запросов и работу фильтров (например, по категориям).
- Тестирование навигации:
- Проверить корректность построения маршрутов, отображение информации о текущем местоположении и обновление маршрута в реальном времени.
Тестирование сборки.
Тестирование сборки направлено на проверку приложения после его сборки и развертывания.
- Тестирование установки приложения:
- Проверить процесс установки, отсутствие ошибок, корректное отображение иконки приложения на главном экране.
- Тестирование запуска приложения:
- Проверить время загрузки приложения, отсутствие зависаний или ошибок при запуске, корректное отображение интерфейса.
- Тестирование основных функций:
- Проверить функциональность поиска мест, построение маршрутов, отображение информации о пробках и работа GPS.
- Тестирование интеграции с внешними сервисами:
- Проверить корректность получения и отображения данных, отсутствие ошибок при запросах к API и правильность работы интегрированных функций.
Приемочное.
Приемочное тестирование направлено на проверку соответствия требованиям и ожиданиям конечных пользователей и заинтересованных сторон.
- Тестирование поиска мест:
- Проверить поиск по различным типам запросов (адреса, названия мест, категории), корректность отображения результатов поиска (например, наличие информации о местоположении, часах работы и рейтингах), возможность фильтрации и сортировки результатов.
- Тестирование построения маршрутов:
- Проверить корректность построения маршрутов с учетом пробок и альтернативных путей, отображение информации о времени в пути и расстоянии, возможность изменения маршрута и обновления информации в реальном времени.
- Тестирование избранных мест:
- Проверить корректность добавления и удаления мест из избранного, сохранение изменений после перезапуска приложения, отображение избранных мест на карте.
- Тестирование интеграции с другими сервисами:
- Проверить возможность вызова такси из приложения и корректность передачи данных о маршруте, отображение информации о стоимости поездки и времени ожидания, корректность работы функций, связанных с навигацией и пробками.
По степени важности тестируемых функций (по убыванию).
Дымовое (smoke).
Дымовое тестирование направлено на проверку базовой функциональности приложения, после сборки или обновления.
- Тестирование запуска приложения:
- Проверить время загрузки приложения, отображение главного экрана без сбоев и зависаний, корректность отображения логотипа и начального экрана.
- Тестирование отображения карты:
- Проверить наличие карты на экране, возможность масштабирования и перемещения по карте, отображение текущего местоположения пользователя.
- Тестирование функции поиска:
- Проверить ввод различных запросов (адреса, названия мест) и получение результатов, корректность отображения результатов поиска, отсутствие ошибок или зависаний при выполнении поиска.
- Тестирование навигации:
- Проверить построение маршрута от текущего местоположения до заданной точки, Отображение информации о маршруте (время в пути, расстояние), обновление маршрута в реальном времени при изменении местоположения.
Критического пути.
Тестирование критического пути направлено на проверке ключевых функций и сценариев использования приложения, которые являются наиболее важными для обеспечения его основной функциональности.
- Тестирование регистрации и авторизации пользователя:
- Проверить корректность обработки ввода данных (логин, пароль), обработка ошибок при неверных данных (например, неправильный пароль), успешный переход на главный экран после авторизации.
- Тестирование поиска мест и объектов:
- Проверить ввод различных запросов (адреса, названия мест) и получение соответствующих результатов, корректность отображения информации о местах (адрес, часы работы, рейтинг).
- Тестирование построения маршрутов:
- Проверить построение маршрута для различных типов транспорта (пешком, на автомобиле, на общественном транспорте), отображение информации о времени в пути и расстоянии, обновление маршрута в реальном времени при изменении местоположения.
- Тестирование отображения информации о пробках и альтернативных маршрутах:
- Проверить корректность отображения данных о пробках на карте, возможность выбора альтернативных маршрутов и их корректное отображение, обновление информации о пробках в реальном времени.
Расширенное.
Расширенное тестирование направлено на проверку не только базовой функциональности, но и более сложных сценариев, взаимодействий и условий использования.
- Тестирование производительности под нагрузкой:
- Проверить время отклика приложения при массовом поиске мест и построении маршрутов, устойчивость приложения при одновременном использовании нескольких функций (например, поиск, навигация и отображение пробок), поведение приложения при длительном использовании (например, в течение нескольких часов).
- Тестирование совместимости на различных устройствах и версиях ОС:
- Проверить корректность отображения интерфейса на устройствах с различными размерами экранов и разрешениями, функциональность приложения на старых и новых версиях Android и iOS.
- Тестирование безопасности:
- Проверить защиту пользовательских данных (например, шифрование личной информации и данных о местоположении), устойчивость к атакам (например, SQL-инъекции).
- Тестирование пользовательского опыта (UX):
- Проверить логичность и интуитивность навигации по приложению, удобство ввода данных (например, поиск мест и адресов), обратная связь от пользователей (например, через опросы или тестирование с реальными пользователями).
Иные.
Кроссбраузерное.
Кроссбраузерное тестирование направлено на проверку приложения на совместимость с различными браузерами и устройствами.
- Тестирование отображения интерфейса:
- Проверить корректность отображения всех элементов интерфейса (кнопки, меню, карты) в различных браузерах (Chrome, Safari, Firefox, Edge) на мобильных устройствах.
- Тестирование функциональности:
- Проверить работоспособность ключевых функций, таких как поиск мест, построение маршрутов и отображение пробок, в различных браузерах.
- Тестирование производительности:
- Проверить время загрузки приложения и скорость отклика при выполнении действий (например, масштабирование карты) в разных браузерах.
- Тестирование адаптивности:
- Проверить, как приложение адаптируется к различным размерам экранов и разрешениям на мобильных устройствах.
Кроссплатформенное.
Кроссплатформенное тестирование направлено на проверку мобильного приложения на различных операционных системах и устройствах, таких как iOS и Android.
- Тестирование функциональности:
- Проверить работоспособность ключевых функций, таких как поиск мест, построение маршрутов и отображение пробок, на iOS и Android.
- Тестирование интерфейса:
- Проверить корректность отображения элементов интерфейса (кнопки, меню, карты) на разных платформах.
- Тестирование производительности:
- Проверить время загрузки приложения и скорость отклика при выполнении действий (например, масштабирование карты) на разных платформах.
- Тестирование совместимости:
- Проверить, как приложение работает на различных версиях операционных систем (например, iOS 14 и Android 11).