Согласно данным статистики, в 2020 году суммарная доля Интернет-трафика через мобильные устройства (смартфоны и планшеты) составила примерно 55% (Source: StatCounter (2020), и она продолжает медленно расти из года в год. Соответственно, возрастает и количество приложений, выпущенных под разные мобильные платформы (главным образом, iOS и Android). Кроме того, сейчас есть тренд к сокращению общего времени на разработку приложений, ведь заказчик стремится как можно быстрее сделать релиз. И это приводит к тому, что тестированию уделяют недостаточно времени, а финальный продукт выходит с багами.
Почему не стоит экономить на тестировании мобильного ПО?
Согласно данным Evand Data Corporation (EDC), мобильные приложения, которые выпускали в последние годы, содержали от одной до десяти ошибок. Так, по результатам опроса, который проводили среди более 500 разработчиков мобильного ПО, примерно 75% отметили, что в их приложениях после релиза обнаружилось от 1 до 10 ошибок, 20% из опрошенных заявили, что в их приложениях было обнаружено аж до 15 ошибок после релиза, и лишь 5% опрошенных программистов сказали, что в их приложениях после релиза багов не обнаружилось. И это говорит о низкой эффективности применяемых тактик для тестирования, а также о недостаточном внимании к этому вопросу. Причем, это относится и к iOS, и к Android.
Выявление ошибок важно и на этапе тестирования и после релиза, ведь, согласно этому же опросу, обновления к приложениям, которые исправляют выявленные баги, выпускаются регулярно (еженедельно, или ежемесячно, примерно в 33% случаев). Выпустить приложение без ошибок – это только первый этап, далее будут обновления, которые исправляют выявленные баги, а потом обновления, которые содержат новые фичи, и затем обновления, которые исправляют баги новых фич, и так далее. Процесс этот будет идти непрерывно, пока приложение будут поддерживать. Так что эффективное тестирование и выявление ошибок – это критически важный аспект для успешности продукта.
Как выглядит тестирование мобильных приложений?
Тестирование мобильного ПО – это комплексный процесс, в ходе которого проверяется его функциональность, удобство его использования и совместимость разными версиями ОС, а также некоторые другие аспекты. Тестирование проводится в ручном или автоматическом режиме. Вот что должно входить в общий процесс тестирования мобильного ПО:
- Функциональное тестирование – это самое базовое тестирование, которое проходит любое приложение. Программа должна соответствовать требованиям, которые описаны в ТЗ. Здесь проверяют основные сценарии взаимодействия человека и приложения.
- Тестирование на совместимость. Это – очень важный этап, который подразумевает работу с приложением на разных устройствах с разными версиями ОС. Во время тестирования на совместимость оценивают работу ключевых функций при конкретной конфигурации железа. Сама по себе процедура проходит быстро, но не всегда удается охватить достаточно большое количество вариантов конфигураций, и здесь могут быть проблемы.
- Тестирования локализаций. Современные приложения в основном рассчитаны на использование в разных странах (у большинства есть минимум несколько языков интерфейса), а значит нужно провести тест по элементам интерфейса, работу в других часовых поясах и пр.
- Лабораторное тестирование. Его проводят сетевые операторы, моделируя работу беспроводной сети. В этом тесте ищут сбои при передаче голоса и/или данных в мобильном приложении для выполнения определенных функций.
- Тест производительности. В ходе этого теста оценивается эффективность работы клиентских приложений, сервера и сети. Такой тип тестов призван выявить «узкие места» серверных приложений при определенном уровне нагрузки.
- Стресс-тесты. Еще один вид обязательного тестирования в процессе поиска багов. На этом этапе ищут исключения, зависания и взаимоблокировки. Такие вещи вполне могли остаться незамеченными при обычных функциональных тестах.
- Тестирование безопасности. Приложение должно быть не только быстрым, удобным, эргономичным и понятным. Оно должно быть безопасным, в первую очередь для пользователя. В нем ни в коем случае не должно быть «дыр», через которые вытекают личные данные пользователя. Поэтому обязательно нужно оценить уязвимость ко взлому, и надежность авторизации.
- Тест юзабилити. Этот тест оценивает эффективность, точность/полноту работы и удовлетворенность пользователя. Этот тест можно проводить еще до завершения разработки, так как его результаты могут повлиять и на внешний вид, и на эргономику и возможно даже на функциональность приложения. А на поздних этапах, ближе к дате релиза, уже не будет времени вносить такие глобальные правки.
Проблемы возникают тогда, когда одному или нескольким из перечисленных выше видов тестирования не уделяется должное влияние, и таким образом готовое приложение после релиза содержит баги. Чем больше багов, тем меньше вероятность успеха на рынке, ведь в этом сверх-конкурентном секторе очень сложно удержаться. Именно поэтому качественное и максимально полное тестирование, которое выполняют профессионалы, должно быть неотъемлемой частью процесса разработки мобильного приложения.