Необходимый и важный этап проверки мобильного приложения перед релизом и выходом на рынок – тестирование. Сегодняшний пользователь придирчив: по данным компании CleverTap, специализирующей на рынке мобильных устройств, почти четверть скачанных приложений используются лишь один раз. Причина простая – не оправдали ожиданий пользователя. Технические неисправности, большой размер или непонятный интерфейс – все эти недочеты и ошибки можно было бы выявить еще при тестировании.
Существует несколько видов тестирования приложений – функциональное, интеграционное, тестирование безопасности и интерфейса. В представленном материале речь пойдет о проверке производительности. В процессе разработки ПО тестирование производительности и нагрузки есть важнейший этап перед выпуском продукта.
Тестирование производительности – это процесс оценки общей производительности системы под нагрузкой с точки зрения таких показателей, как доступность, время отклика и надежность. Задача проверки: выявить и устранить недостатки в работе ПО. При этом существует разделение на тестирование производительности собственно мобильного приложения и тестирование производительности сервера и сети, когда нагружают не мобильное приложение, а сервер, который обрабатывает запросы от него. Сегодня остановимся на тестировании серверной части, но для удобства будем использовать определение «мобильное приложение».
Типы тестирования производительности
- Стресс-тестирование. Проверка на максимальных нагрузках, цель – дойти до предела и выявить точку отказа приложения.
- Тестирование масштабируемости. Определяется эффективность масштабирования приложения для обработки растущей пользовательской нагрузки.
- Тестирования на выносливость. Сервер проверяют с нагрузкой в течение длительного времени, цель – убедиться, что приложение сможет выдержать долгую нагрузку без ухудшения времени отклика.
- Тестирование объема. Определяется работа приложения при вводе большого количества данных.
- Нагрузочное тестирование. Специалисты по обеспечению качества проверяют, способно ли приложение справиться с ожидаемой пользовательской нагрузкой.
Задачи, которые решает нагрузочное тестирование
С помощью этого типа тестирования измеряют и анализируют:
- производительность подсистемы, отвечающей за баланс нагрузки,
- ошибки в работе,
- недостатки архитектуры,
- уровни использования ресурсов,
- максимальное количество пользователей, с которым приложение может справиться до сбоя.
Основные цели тестирования приложений
- Обеспечение корректной работы приложения. Нужно убедиться, что мобильное приложение успешно загружается на устройства и работает без сбоев.
- Прогнозирование пользовательского опыта. Тестировщики ставят себя на место конечных пользователей и взаимодействуют с приложением, выясняя насколько интуитивно понятна и логична навигация, насколько удобно пользоваться заявленными функциями.
- Снижение стоимости разработки приложения. Тестирование требует первоначальных инвестиций, но помогает избежать лишней доработки и перенастройки продукта на последних этапах. Проверка в конечном итоге экономит время и деньги, позволяя быстрее и успешнее осуществить релиз.
Еще больше снизить стоимость разработки приложения можно с помощью автоматизированного тестирования. Автоматизированное тестирование в рамках Agile-процесса приводит к эффективным результатам и повышению целесообразности инвестиций.
Несколько общих советов, как улучшить качество мобильного приложения:
- по возможности старайтесь максимально уменьшить размер файла, пользователи не любят ставить «тяжелые» приложения,
- избегайте дублирования сетевых запросов – это снижает производительность,
- оптимизируйте размер изображений, используйте векторную графику, кеширование и цветовые фильтры,
- оптимизируйте объем памяти за счет конструкций кода, экономящих память, и минимального использования внешних библиотек,
- создавайте приложения для малых и средних экранов, внедряя адаптивные потоки пользовательского интерфейса,
- текстовые данные должны загружаться в первую очередь, а остальной медиаконтент – во вторую. Это оптимизирует работу с сетью.