Сегодня, выпуская мобильное приложение, вы конкурируете с тысячами разработчиков, делающих то же самое. В этом жестоком мире каждый такой программный продукт должен быть первоклассным с самого начала. Ошибка, пропущенная при тестировании, может расстроить ваших пользователей, и они уйдут к конкурентам. По статистике почти половина всех мобильных приложений удаляется уже через месяц после загрузки.
Друзья, поддержите нас вступлением в наш телеграм канал QaRocks. Там много туториалов, задач по автоматизации и книг по QA.
Наш чек-лист для тестирования мобильных приложений на Android поможет вам убедиться, что вы охватили все основные аспекты:
- Кросс-платформенную совместимость
- Безопасность
- Кастомизацию
- Потребление памяти
- Прерывания
- Локализацию и интернационализцию
- Визуальный дизайн и доступность
Давайте рассмотрим все эти пункты.
1. Проверьте совместимость приложения с разными платформами
Чтобы обеспечить бесперебойную работу вашего приложения у максимального числа пользователей, нужно протестировать его на всех основных платформах и на всех распространенных мобильных устройствах.
Оптимальное мобильное тестирование предполагает использование реальных устройств и браузеров для имитации поведения пользователей. Представьте, что вы тестируете приложение для стриминга музыки. Оно может хорошо работать на новых версиях, таких как Android 14, но может сбоить на старых, таких как Android 10.0.
Как видно из приведенного ниже графика, не все пользователи автоматически переходят на новую версию, поэтому учитывайте их предпочтения и потребности.
2. Обеспечьте безопасность приложений
Пользователи особенно обеспокоены безопасностью своих данных при работе с приложениями. Поэтому следует уделять особое внимание защите данных пользователя от любого несанкционированного доступа.
Учитывая сложную природу безопасности мобильных приложений, важно придерживаться комплексного подхода:
- Защитите исходный код и базу данных, чтобы предотвратить несанкционированный доступ к конфиденциальной информации
- Внедрите валидацию входных данных, чтобы приложение принимало только корректные и ожидаемые данные, предотвращая потенциальные атаки с использованием SQL-инъекций
- Применяйте тестирование на проникновение как способ имитации реальных атак и выявления уязвимостей
- Используйте криптографию для шифрования конфиденциальных данных в состоянии покоя и при передаче, обеспечивая их сохранность даже в случае перехвата неавторизованными лицами
- Правильная проверка и валидация пользовательского ввода позволяет предотвратить инъекционные атаки на стороне клиента и снизить риск межсайтового скриптинга (XSS)
- Внедрите HTTPS с протоколами безопасности SSL/TLS, чтобы устанавливать безопасное соединение между приложением и сервером, шифровать передачу данных и защищать данные от перехвата и несанкционированного доступа.
- Защитите информацию, хранящуюся на устройстве, от несанкционированного доступа с помощью механизмов безопасного хранения и шифрования
Примечание редакции: рекомендуем статью “Тестирование безопасности приложения”.
3. Учтите кастомизацию
Необходимо учитывать, что пользователи будут заходить в приложение с разных мобильных устройств и применять различные настройки. Хорошо спроектированное приложение должно адаптироваться к устройствам и предпочтениям пользователей.
Вот примеры того, на что нужно обращать внимание:
- Поворот мобильного устройства. Некоторые приложения поддерживают как портретную, так и альбомную ориентацию, что требует от разработчиков адаптации интерфейса. Элементы интерфейса должны оставаться доступными и простыми в использовании при смене ориентации устройства. Разумеется, они не должны наползать друг на друга.
- Размеры шрифтов. Пользователи могут настраивать размер шрифта, особенно для повышения доступности. Однако многие разработчики упускают этот аспект из виду. В результате при увеличении размера шрифта могут возникнуть проблемы с пользовательским интерфейсом. Чтобы такого не происходило, нужно заранее адаптировать дизайн под крупные шрифты или ограничивать возможности изменения размера шрифта внутри приложения.
- Использование аппаратной кнопки “Назад”. На устройствах Android пользователи часто используют аппаратную кнопку “Назад” для навигации внутри приложений. Однако разработчики могут не реализовать надлежащую функциональность для этой кнопки, что приводит к непоследовательному поведению. Закрытие приложения с помощью этой кнопки должно происходить только с главного экрана, а остальные случаи должны обрабатываться соответствующим образом в рамках навигации внутри приложения. Для доступа к системе нужно реализовать запрос необходимых разрешений у пользователя. На случай отказа в доступе нужно продумать предоставление четкой обратной связи.
4. Проверьте потребление памяти
Несмотря на то, что пользователи хотят видеть в своих приложениях множество полезных функций, некоторые из них могут заметно “съедать” память. Например, интеграция push-уведомлений в приложениях для Android обычно приводит к увеличению потребления памяти.
Как мы уже говорили, не у всех пользователей будут новейшие устройства с длительным временем автономной работы. А новая функция загрузки песен для прослушивания музыки в автономном режиме в стриминговом приложении, например, улучшит пользовательский опыт, но при этом может значительно увеличить потребление памяти. Это будет особенно критично на устройствах, где памяти и так мало.
Аналогично, приложение для фитнеса, которое постоянно работает в фоновом режиме, отслеживая уровень активности, может быстро разряжать аккумулятор устройства. Это может побудить пользователя удалить приложение.
5. Проверьте реакцию приложения на прерывания
Чтобы разработать успешное мобильное приложение, среди прочего необходимо учесть влияние прерываний на пользовательский опыт. Работа вашего приложения может прерываться по разным причинам. Прерывания могут быть вызваны работой аппаратных функций мобильного устройства, проблемами с сетью и работой других приложений.
- Функции устройства. Нужно проверить способности мобильного приложения справляться с прерываниями, вызванными встроенными функциями устройства. Речь идет о таких вещах, как подключение или отключение зарядного устройства, блокировка устройства, предупреждение о низком заряде батареи или полное выключение устройства.
- Сеть. Оцените, насколько хорошо мобильное приложение справляется с перебоями в сети. Речь идет о переключении между провайдерами и адаптации к изменениям в типах сетевого сигнала (например, переключение с 3G на 4G).
- Работа других приложений. Протестируйте способность приложения справиться с прерываниями, вызванными входящими звонками, уведомлениями о сообщениях или оповещениями от других установленных приложений. Например, общаясь в приложении-чате, имитируйте входящий звонок, чтобы проследить за реакцией приложения. После обработки звонка убедитесь, что вы можете плавно возобновить общение в чате без сбоев и потери данных. Так вы сможете удостовериться, что приложение хорошо справляется с прерываниями и обеспечивает положительный пользовательский опыт.
6. Локализация и язык
Многие приложения, например Amazon, адаптируют свои услуги в зависимости от текущего местоположения пользователя. Это особенно важно для приложений, в которых есть функция доставки. Тестируя такие приложения, нужно проверить их способность использовать GPS устройства для точного определения местоположения и соответствующей настройки.
Тестирование локализации имеет особое значение для приложений, стремящихся к мировому охвату. Пользователи должны иметь возможность легко переключаться с одного языка на другой, не сталкиваясь с проблемами юзабилити.
Возьмем для примера приложение для доставки еды, работающее в разных городах мира. Когда пользователь открывает приложение, оно должно определять его местоположение с помощью GPS и отображать ближайшие рестораны, предлагающие услуги доставки. Кроме того, предположим, что пользователь предпочитает использовать приложение на языке, отличном от стандартного. В этом случае он должен иметь возможность легко переключить язык через настройки приложения, не испытывая при этом никаких сбоев в функциональности или оформлении интерфейса.
Важно отметить
Поддержка нескольких языков дает много преимуществ. При этом для перевода приложений обычно используются два основных метода:
- Человеческий перевод предполагает участие квалифицированных переводчиков. Желательно, чтобы это были люди, знакомые с культурными нюансами, и для которых используемые языки являются родными.
- Машинный перевод. Несмотря на то, что он обеспечивает большую скорость, переводы часто получаются некорректными.
Кроме того, очень важно обращать внимание на форматы дат и другие региональные различия. При прямом переводе можно упустить какие-то нюансы, что может привести к изменению смысла. Это особенно важно учитывать при использовании машинного перевода.
7. Визуальный дизайн и доступность
Наконец, вы должны убедиться, что ваше приложение на Android визуально привлекательно и доступно для всех пользователей. Следите за тем, чтобы шрифты, иконки и цвета соответствовали брендбуку вашего продукта или компании: это улучшает репутацию бренда и повышает лояльность пользователей.
Тестирование доступности, как правило, исследует ваше приложение на соответствие всем требованиям Руководства по доступности веб-контента (WCAG).
Чек-лист для тестирования мобильных приложений Android с разбивкой по типам тестирования
Теперь, когда вы знаете, на каких областях приложения вам нужно сосредоточиться, давайте разберемся, какие типы тестирования стоит применить.
1. Функциональное тестирование:
- Проверьте процесс регистрации и входа в систему
- Оцените реакцию приложений на push-уведомления
- Протестируйте поведение приложения при получении входящих звонков
- Проверьте потребляемую мощность
- Убедитесь, что все поля и формы функционируют, как задумано
- Протестируйте функциональность поиска
- Проверьте совместимость с различными операционными системами и их версиями
- Оцените потребление памяти
- Выявите и устраните ошибки пользовательского интерфейса
- Убедитесь, что размер текста соответствует настройкам телефона пользователя
- Проверьте ориентацию экрана после поворота
- Убедитесь, что программы чтения с экрана могут распознавать заголовки
- Проверьте нетекстовые элементы, такие как изображения, диаграммы и аудио/видео контент
- Обеспечьте правильную расшифровку аудио- и видеоэлементов
- Убедитесь, что субтитры для аудио и видео подогнаны по времени
- Оцените предварительно записанные аудиоописания
- Оцените сенсорные характеристики
- Проверьте соответствие макетов и дизайна приложения
3. Тестирование производительности:
- Измерьте время загрузки приложения
- Оцените расход батареи
- Проверьте масштабируемость сети
- Оцените загрузку памяти и процессора
- Оцените работу приложения в различных условиях нагрузки
- Проверьте доступность размера кэша
- Проанализируйте время рендеринга для 2D- и 3D-элементов
- Проверьте работу приложения в автономном режиме
- Измерьте время обработки изображений
- Оцените производительность приложения на разных устройствах и версиях ОС
4. Автоматизированное тестирование:
- Определите приоритет тест-кейсов, охватывающих жизненно важные функции
- Выберите подходящий стек технологий и язык программирования
- Обсудите критически важные тест-кейсы с разработчиками для их приоритетного исправления
- Поддерживайте реальную среду тестирования
- Сведите к минимуму дублирование кода во фреймворках автоматизации тестирования
- Согласуйте системы автоматизации с конвейером развертывания
- Разработайте тестовые наборы для регрессионного, интеграционного и мультиплатформенного тестирования.
- Привлекайте различных тестировщиков для получения всесторонней обратной связи
- Проверьте выравнивание кнопок, содержание призывов к действию и использование цветов
- Оцените четкость и организацию меню
- Оцените использование белого пространства в дизайне
- Протестируйте рендеринг сайта на разных устройствах и типах ОС
- Проверьте удобство использования форм ввода
- Исследуйте потребности пользователей и убедитесь, что приложение соответствует их требованиям
6. Симулятор (эмулятор) против реального устройства:
- Используйте симуляторы (эмуляторы) для создания макетов и отладки
- Протестируйте код и функциональность на реальных устройствах
- Оцените конечные потоки (end flows) и сетевые аспекты на реальных устройствах
- Оцените использование процессора/памяти и прерывания на реальных устройствах
- Проверьте функциональность камеры и графические переходы на разных устройствах
- Проверьте характеристики экрана и производительность приложения на разных устройствах
- Проведите регрессионное тестирование на реальных устройствах
- Проверьте функциональность геолокации на реальных устройствах
7. Тестирование безопасности:
- Определите роли пользователей и потенциальные уязвимости
- Классифицируйте тесты по степени важности и приоритетности
- Проверьте настройки платформы и поищите бреши в защите
- Оцените уязвимость конфиденциальных данных и сторонних интеграций
- Протестируйте механизмы аутентификации
- Оцените проблемы управления сеансами и уязвимости, связанные с сервером
- Проверьте обход аутентификации и слабые пароли
- Используйте надежные инструменты и фреймворки для анализа кодовой базы
8. Тестирование на совместимость:
- Проверьте функциональность кнопок и ссылок на разных устройствах
- Оцените, как отображаются изображения и другой медиаконтент при различных разрешениях экрана
- Проверьте элементы пользовательского интерфейса
- Протестируйте поведение автозаполнения на разных платформах
- Оцените согласованность цвета фона на всех экранах приложения
Заключение
Чек-лист для тестирования мобильных приложений – важнейший инструмент для тщательной оценки каждого аспекта приложения перед его выпуском. Благодаря структурированному подходу к тестированию, эти списки помогают тестировщикам охватить различные области, такие как функциональность, юзабилити, производительность, безопасность и совместимость, гарантируя, что ни одна критическая проблема не будет упущена.
Кроме того, использование чек-листов способствует продуктивному общению между заинтересованными сторонами, последовательности в практике тестирования и проактивному выявлению рисков. Наконец, чек-листы упрощают процесс тестирования, экономят время и ресурсы, гарантируя пользователям получение высококачественного и надежного продукта.
ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ
1. Какие инструменты можно использовать для тестирования приложений на Android?
Для тестирования Android-приложений доступны различные инструменты, включая Android Studio для отладки и тестирования, Appium для автоматизации мобильного тестирования, Global App Testing для тестирования на реальных устройствах, а также различные сторонние фреймворки и инструменты для тестирования.
2. Каковы лучшие практики тестирования приложений на Android?
Лучшие практики тестирования приложений на Android включают в себя:
- Установление четких целей тестирования
- Создание комплексных планов тестирования и тест-кейсов / чек-листов
- Сочетание подходов ручного и автоматизированного тестирования
- Проведение тестирования на реальных устройствах
- Постоянный мониторинг и анализ результатов тестирования
3. Что следует учитывать при тестировании обновлений приложений на Android?
При тестировании обновлений важно убедиться, что новые функции или изменения работают корректно и что обновление не влечет за собой никаких регрессий или проблем совместимости с существующими устройствами или версиями операционной системы.
Перевод статьи «Android mobile app testing checklist for testing in 2024».