По итогам 2012 года операционная система Android стала лидером среди мобильных платформ: её доля на мировом рынке превысила 53 процента. Для сравнения: доля ОС компании Apple — 36 процентов (данные аналитической компании СomScore). Даже на европейском рынке, где долгое время фаворитом была iOS, Android вытеснил своих конкурентов. Ещё одно достижение — более 25 миллиардов загруженных приложений в Google Plaу.
Эта статистика демонстрирует огромный потенциал операционной системы компании Google на рынке мобильных приложений. С одной стороны, разработчики программ для Android получают большие возможности для роста, с другой — сталкиваются с жёсткой конкуренцией и высокими требованиями к качеству со стороны пользователей. В таких условиях особое значение приобретает всестороннее тестирование продуктов для магазина приложений Google Play.
Смартфоны и планшеты под управлением Android имеют значительные отличия в программной и аппаратной части. Они могут иметь разный форм-фактор и разрешение экрана, использовать свою версию ОС и систему команд процессора, обеспечивать поддержку фронтальной камеры, NFC, внешней клавиатуры и других модулей. Всё это нужно учесть при разработке приложений.
Не все издатели продуктов для Google Play могут позволить себе большой парк тестовых гаджетов для проверки корректной работы своих приложений. Также практика показывает, что разработчикам сложно объективно оценивать свой проект, смотреть на него со стороны пользователя. По этой причине издатели привлекают сторонние команды тестировщиков для сопровождения проекта на протяжении всего его жизненного цикла.
Ошибки допускают все — и начинающие программисты, и опытные команды известных компаний. Например, недавно в сообществе «Хабрахабр» была опубликована статья с целым списком багов и недоработок в приложении «Яндекс.Метро» для смартфонов на ОС Android.
Конечно, никто не может гарантировать корректной работы приложения в ста процентах случаев, это просто нереально. Однако специалисты в области тестирования и юзабилити могут свести количество ошибок к минимуму. Результатом станет высокое качество программного продукта, которое существенно влияет на его рейтинг и ТОП-позиции в магазине Google Play.
Разработчики программных продуктов для ОС Android могут выполнять комплексную проверку качества или концентрироваться на отдельных задачах: функциональном, автоматизированном, нагрузочном, стрессовом или на юзабилити-тестировании. Остановимся на этом вопросе подробнее.
Функциональное тестирование позволяет проверить приложение на соответствие требованиям в спецификации. В рамках этой задачи можно проводить полное тестирование или проверить только базовые функции. Один из самых распространённых способов функционального тестирования — это метод чёрного ящика. В этом случае приложение исследуется с точки зрения внешнего мира, то есть специалист не использует информацию о внутреннем устройстве программы.
После исправления ошибок в продукте или реализации новых функциональных возможностей в продукте может проводиться регрессионное тестирование. Оно позволяет обнаружить ошибки в уже протестированных участках исходного кода, это так называемые регрессионные баги (они появляются в тех функциях приложения, которые стабильно работали до внесения изменений).
Ещё один интересный тип тестирования — интеграционное. Именно оно гарантирует корректную работу программы на устройствах с различными параметрами. Команда тестировщиков использует различные модели планшетов и смартфонов под управлением ОС Android. Важно понимать, что программные эмуляторы не могут полностью заменить работу настоящих устройств, поэтому без своего парка тестовых гаджетов реализовать такой проект будет довольно сложно.
Все виды тестирования приложений, которые выполняются при помощи специальных программно-аппаратных инструментов, относят к автоматизированному тестированию. Очевидное достоинство этого метода — сравнительно низкие затраты. Например, проверку очередной сборки программы можно запустить на ночь на всех доступных устройствах, а утром проанализировать результаты и исправить ошибки.
Автоматизированные тесты позволяют проверить многие параметры приложения: инсталляцию и удаление приложения, реакцию на команды пользователя и системные события, элементы интерфейса и вид приложения в зависимости от положения датчиков. Для проверки всей этой функциональности используются следующие популярные инструменты автоматизированного тестирования:
- Monkey для стресс-тестирования;
- Adb для быстрого управления;
- Monkeyrunner для тестирования с реализацией скриптов на Jython (Python на языке Java);
- тестовые проекты на языке java.
Также весьма полезными могут оказаться нагрузочное и стрессовое тестирование. Первое позволяет исследовать запас производительности системы, а второе тестирует работу приложения в режиме перегрузки и сбоев, то есть определяет производительность при заведомо ограниченных ресурсах.
И последний распространённый тип проверки Android-приложений — юзабилити-тестирование. Это анализ интерфейса и выявление узких мест в дизайне с точки зрения конечного пользователя и целей, которые были поставлены при разработке. По результатам составляется список рекомендаций по улучшению интерфейса, а после внесения изменений проводится новый этап тестирования.
В некоторых случаях команды разработчиков пытаются сокращать бюджет всего проекта по разработке программного продукта за счёт тестирования. Насколько это обоснованно? На этот вопрос помогает ответить исследовательское тестирование — первичное изучение функциональности и качества Android-приложений. Бюджет такой задачи может составлять от 200 до 400 долларов. По её результатам можно будет понять, нужно ли проводить более углублённое тестирование.
В любом случае, разработчики и владельцы Android-приложений должны быть уверены в том, что их программа будет корректно работать на любых типах смартфонов и планшетов под управлением этой ОС. Это одна из составляющих успеха на рынке Google Play.