Клиенты

Мобильные приложения: как не «проколоться» на разработке и тестировании


Сегодня стабильно работающее мобильное приложение – источник развития бизнеса, надежное средство коммуникаций с клиентами. По мере усложнения программных продуктов в процессе разработки приложений возрастает значимость этапа тестирования. О том, как эффективно проводить и оценивать результаты тестирования, рассказывают эксперты компании «Аплана».


Мобильные и десктопные приложения

Тестирование мобильных приложений – неотъемлемая часть процесса разработки. По сравнению с исследованием традиционных приложений для ПК (десктопов), у тестирования приложений под смартфоны и планшеты есть ряд особенностей.

Рынок мобильных технологий характеризуется высокой скоростью изменений, постоянно обновляются устройства, часто выходят новые версии операционных систем. Соответственно, тестировщикам необходимо ориентироваться в многообразии устройств: тип, актуальность на рынке, разрешение экрана, процессор. Кроме того, необходимо хорошо понимать особенности платформ, прежде всего - Android и iOS.

- говорит Пётр Гумённый, руководитель направления ручного тестирования компании «Аплана».

В этом коренные отличия общего процесса тестирования мобильных приложений по сравнению с тестированием десктопных приложений. У каждого вида тестирования есть индивидуальные отличия. Так, если вы проводите ручное функциональное тестирование (РФТ), то по сравнению с тестированием десктопных версий вам необходимо использовать дополнительные кейсы, например, для эмуляции обрыва связи или медленного соединения. В рамках интеграционного тестирования основная задача – локализовать найденную ошибку.

Для этого, так или иначе, приходится обращаться к backend-части: изучать логику взаимодействия систем, искать причину появления ошибки «на фронте». В случае автоматизированного тестирования инженеры-тестировщики должны разбираться в многообразии специализированных инструментов, чтобы выбрать оптимальное решение.


Команда тестирования

Существует две модели организации команды. В первом случае вы создаете внутренний центр компетенции по тестированию и набираете специалистов по тестированию мобильных приложений в штат, преследуя долгосрочные цели развития этого направления в компании. Второй путь — воспользоваться услугами специализированной компании по аутсорсингу тестирования. Профессиональные компании по тестированию, как правило, оперативно подбирают команды под проект любой сложности, а модели взаимодействия с подрядчиком позволят организовать работы как «под ключ», так и по схеме «time&material» (оплата по факту исходя из трудозатрат).

При прочих равных условиях выигрывает модель аутсорсинга тестирования. Специализированные компании накапливают экспертизу в сфере контроля качества на протяжении многих лет, поэтому, как правило, лучше справляются с задачами по тестированию программного обеспечения.


Неотрывно от разработки

Не забывайте, что тестирование тесно связано с методологией разработки приложения. Если разработка следует гибкой методологии (Agile, Scrum и так далее), то к тестировщикам предъявляются дополнительные требования: они должны более тесно взаимодействовать с разработчиками, ориентироваться на короткие циклы разработки, регулярно участвовать в планерках и командных встречах.

Иногда подходы могут смешиваться, особенно в больших командах, где одна часть специалистов может работать по гибкой методологии, а другая часть по классическому «водопаду». Например, нам известны случаи, когда разработка функционала велась по методике Waterfall (процесс разработки ПО выглядит как поток, последовательно проходящий фазы анализа требований, проектирования, реализации, тестирования, интеграции и поддержки — ред.) а доработки приложения уже по Agile. Но опыт показывает, что лучше ориентироваться на гибкую разработку — она позволяет эффективнее управлять многочисленными процессами такого динамичного направления, как создание мобильных приложений,

— говорит Евгений Коблев, директор проектов компании «Аплана».

Чем раньше ваша компания наладит процесс тестирования, тем меньше будет ошибок в готовом продукте и тем больше денег вы сэкономите. Если ошибка в приложении выявлена на этапе сбора требований, ее намного легче исправить, чем тогда, когда вы уже планируете его публикацию.


Анализируй аудиторию и властвуй

В процессе тестирования мобильных приложений всегда встает вопрос о подборе оптимального парка устройств для обеспечения тестового покрытия. На первый взгляд может показаться, что для решения подобной задачи нужно анализировать весь парк устройств и моделей, присутствующих на рынке. При таком подходе вы стараетесь охватить максимально широкий круг пользователей и сталкиваетесь с необходимостью использования более 50 устройств. Это долго, затратно и далеко не всегда оправдано.

Мы рекомендуем подбирать только те аппараты, которыми пользуется ваша целевая аудитория. Если вы проводите тестирование уже выпущенного приложения, вся информация о существующих пользователях уже есть в аккаунтах разработчиков Google Play и Apple Store. Если приложение еще не вышло в свет, просто изучите аудиторию аналогичных приложений. Учитывайте также сроки разработки: если приложение будет выпущено, например, через полгода или год, то в течение этого времени необходимо будет пополнять текущий парк устройств новыми моделями.

Учитывайте также сроки разработки: если приложение будет выпущено, например, через полгода или год, то в течение этого времени необходимо будет пополнять текущий парк устройств новыми моделями.


Инструменты

Мы выделили ряд проверенных инструментов, которые инженеры по тестированию широко используют для проверки как десктопных, так и мобильных приложений:

  • HP ALM, MS Team Foundation Server – универсальные системы управления тестированием.
  • JIRA, Redmine – багтрекинговые системы. 
  • HP Loadrunner, Apache Jmeter – инструменты для проведения нагрузочного тестирования.
  • HP LeanFT, Test Complete – инструменты автоматизации тестирования.

Также существуют известные решения, разработанные специально для автоматизации мобильных приложений:

  • Appium – с его помощью можно проверять работу приложений как на реальных устройствах под iOS и Android, так и на эмуляторах.
  • Seetest – фреймворк, который позволяет запускать скрипты на разных устройствах практически без изменений.
  • Espresso, Earl Grey – решения для тестирования пользовательских интерфейсов Android и iOS.

Автотесты для приложений

Автоматизация тестирования нивелирует влияние человеческого фактора, который в той или иной мере всегда присутствует в процессе обеспечения качества в ручном режиме. Но здесь есть свои особенности.

В части автоматизации всегда есть риск, что выбранный инструмент не поможет создать автотесты для ряда мобильных устройств. Можно столкнуться с тем, что новая версия инструмента не синхронизирована с обновлением мобильной ОС. Например, команде наших специалистов заказчик поручил разработку автотестов под iOS 9, но к моменту завершения проекта уже вышла десятая версия операционки. В результате потребовалось в спешном порядке переписывать автотесты,

- рассказывает Николай Стрельцов, заместитель руководителя направления тестирования компании «Аплана».

Автоматизация тестирования лучше подходит для проверки простых сценариев. Чем сложнее функциональность, тем больше риски, что возникнут сложности с написанием и поддержкой скриптов автоматизации.

Начинайте подготовку к тестированию с утверждённых списков сценариев, устройств и платформ. Подготовьте заранее «макбук»: разработка автотестов под iOS ведётся на компьютере под управлением Mac OS. Перед написанием скриптов сделайте ручные тестовые прогоны сценариев, которые собираетесь автоматизировать – это позволит ускорить процесс написания скриптов.

Как показывает практика, учесть все нюансы каждого конкретного проекта практически невозможно, но к основным «подводным камням» можно подготовиться, если представлять все особенности создания и функционирования мобильных приложений. 


Таким образом, у тестирования мобильных приложений есть своя специфика. Для успешного выполнения тестирования необходимо сформировать команду профессионалов, которая сможет эффективно взаимодействовать с программистами и бизнес-заказчиками, выберет надежные инструменты и проведёт работы с учётом всех факторов работы приложения.