Поздравляем с Новым Годом!
   
Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: XXVII Международной научно-практической конференции «Научное сообщество студентов: МЕЖДИСЦИПЛИНАРНЫЕ ИССЛЕДОВАНИЯ» (Россия, г. Новосибирск, 17 августа 2017 г.)

Наука: Технические науки

Секция: Технологии

Скачать книгу(-и): Сборник статей конференции

Библиографическое описание:
Быканов Н.П. МЕТОДИКА ТЕСТИРОВАНИЯ ANDROID-ПРИЛОЖЕНИЙ // Научное сообщество студентов: МЕЖДИСЦИПЛИНАРНЫЕ ИССЛЕДОВАНИЯ: сб. ст. по мат. XXVII междунар. студ. науч.-практ. конф. № 16(27). URL: https://sibac.info/archive/meghdis/16(27).pdf (дата обращения: 29.12.2024)
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

МЕТОДИКА ТЕСТИРОВАНИЯ ANDROID-ПРИЛОЖЕНИЙ

Быканов Никита Павлович

студент-магистрант, Кафедра систем управления и компьютерных технологий БГТУ «ВОЕНМЕХ»,

РФ, г. Санкт-Петербург

Рынок мобильных устройств и программного обеспечения для них развивается стремительными темпами. Если 20 лет назад покупка сотового телефона (с минимальным набором функций – звонки, смс, будильник и несколько простых игр) была признаком богатства, то сегодня нормой для средней семьи является наличие нескольких смартфонов, планшета, а нередко и дополнительных «умных» устройств – например, телевизора или часов. К настоящему моменту операционная система Android стала безусловным лидером на рынке мобильных устройств – так, в 2016 году доля продаж смартфонов на базе этой операционной системы превысила 80% [4]. Гибкость системы, возможность установки множества приложений от сторонних разработчиков, а также ее популярность обуславливают значимость разработки программ, работающих на платформе Android.

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

Стоимость ошибки в выпущенном приложении может быть высока: приложение в течение нескольких часов после релиза оказывается в Google Play, после чего сразу начинается обновление на устройствах пользователей (автоматическое обновление включено по умолчанию). Обнаружившие ошибку в работе пользователи ставят низкие оценки, оставляют негативные отзывы – приложение опускается в рейтинге, число новых скачиваний снижается.

Тестирование мобильных приложений имеет ряд дополнительных сложностей по сравнению с тестированием компьютерных программ. Во-первых, как правило, разработка ведется не на мобильном устройстве, и все первичные тесты осуществляются через эмулятор. Во-вторых, необходимо учитывать многообразие аппаратного обеспечения (включая разный форм-фактор и разрешения экрана) и версий операционной системы. Так, для сравнения, Microsoft за последние 10 лет выпустила для персональных компьютеров Windows 7, Windows 8 и Windows 10; Android за меньший период – с 2008 года - прошел путь от версии 1.0 до 7.1. Статистика использования версий Android в июле 2017 года представлена в таблице 1.

Таблица 1.

Статистика использования версий Android

Версия

Кодовое название

Доля пользователей, %

2.3.3 – 2.3.7

Gingerbread

0,7

4.0.3-4.0.4

Ice Cream Sandwich

0,7

4.1.х

Jelly Bean

2,8

4.2.х

4,1

4.3

1,2

4.4

KitKat

17,1

5.0

Lollipop

7,8

5.1

22,3

6.0

Marshmallow

31,8

7.0

Nougat

10,6

7.1

0,9

 

* Источник: [3]

Рассмотрим методику тестирования Android-приложений.

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

Серьезной экономии времени тестировщиков позволяет достичь использование автоматического тестирования. Рассмотрим популярные средства автоматического тестирования, входящие в состав Android SDK или распространяющиеся бесплатно.

Программа Monkey, входящая в состав Android SDK, была названа по принципу действия: она имитирует поведение обезьяны, получившей в свое распоряжение устройство. Программа генерирует поток случайных пользовательских действий. По сути, реализуется нагрузочное тестирование. Нагрузочное тестирование – это процесс умышленной нагрузки системы, путем подачи множества запросов на саму систему или устройство, с целью определения показателей производительности, времени отклика, проверки соответствия требованиям, которые были предъявлены к данной системе или отдельному устройству [1]. Оно позволяет осуществить следующие виды тестирования:

  • тестирование производительности;
  • тестирование стабильности;
  • стрессовое тестирование;
  • объемное тестирование.

Автоматическое тестирование с помощью Monkey – лишь начальный этап тестирования приложения. Многие аспекты работы не могут быть проверены обезьяной – так, она не может имитировать сложные нагрузки, реализовать сложное управление (например, строить стратегии в логических играх). Ошибки, возникшие при тестировании Monkey, бывает достаточно трудно воспроизвести.

MonkeyRunner, также входящая в SDK, осуществляет тестирование на основе написанных скриптов (так называемые «прокликивающие тесты»). Сценарии тестов могут быть написаны на языке Python или записаны с помощью рекордера. Подобное тестирование очень важно, когда тестируемая программа активно использует генератор случайных чисел – например, игра каждый раз по-разному размещает фишки на игровом поле, и ручная проверка достаточно большого количества комбинаций занимает слишком много времени.

Программы getevent и sendevent не в полной мере можно назвать программами для автоматического тестирования – скорее это поддержка ручного тестирования. Эти программы позволяют записать последовательность действий, а потом воспроизвести ее. Запись при ручном тестировании не требует дополнительных трудозатрат. Эти приложения удобно использовать, например, чтобы проверить, была ли исправлена выявленная ранее ошибка.

Иной подход к тестированию реализует программа Robotium (не входит в состав SDK, распространяется свободно). Если MonkeyRunner имитирует именно действия пользователей (так, сценарий «нажать кнопку ОК» будет имитировать касание экрана в точке с заданными координатами), то Robotium строит сценарии иначе: «нажать кнопку, на которой размещена надпись ОК». Это делает скрипты более гибкими к изменениям пользовательского интерфейса. Если дизайнеры примут решение о переносе кнопок, то скрипты для MonkeyRunner придется переписывать, а Robotium обнаружит кнопки и на новом месте.

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

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

В ходе функционального тестирования тестировщик устанавливает приложение на устройство (реальное физическое устройство или пользуется эмулятором), проверяет различные аспекты работы, после чего возвращает устройство к первоначальному состоянию. Как уже было отмечено, мобильные устройства отличаются разнообразием, поэтому для качественного тестирования требуется проверка на разнообразных устройствах. Не у всех разработчиков есть возможность приобретать множество устройств (и тем более регулярно обновлять этот «парк»), поэтому возникли специализированные «фермы устройств». Так, Samsung Remote Test Lab дает возможность проверить работу на устройствах Samsung (включая модели-флагманов до начала продаж и смарт-часы Gear [5]). В качестве еще одной фермы с бесплатным доступом можно назвать Firebase Test Lab for Android от Google. Фермы с платным доступом, как правило, предлагают более широкий список устройств, нередко не ограничиваясь операционной системой Android, а также давая возможность протестировать и взаимодействие между устройствами (а не только работу на отдельном устройстве).

Первое, что следует проверить для мобильного приложения – корректность установки, запуска, выхода из приложения, повторного запуска, удаления приложения. При перезапуске должны сохраняться необходимые данные пользователя. При удалении приложение не должно оставлять после себя «мусор» - если пользователь решил его удалить, не следует занимать память (которой на мобильном устройстве сравнительно немного).

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

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

Мобильное приложение должно учитывать возможность множества стрессовых ситуаций – входящие и исходящие звонки, смс, оповещения, переход устройства в спящий режим, разрядка и зарядка устройства, отключение Интернета и т.п.

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

Google Play Developer Console предоставляет определенные возможности для осуществления как альфа-, так и бета-тестирования (рис. 1).

 

https://habrastorage.org/getpro/habr/post_images/769/446/a73/769446a73895d81d2d0da26ec422763b.jpg

Рисунок 1. Интерфейс Google Play Developer Console для альфа- и бета-тестирования

 

На стадии тестирования приложение доступно только пользователям из списка тестировщиков. Остальные пользователи не могут его найти ни через поиск, ни даже по прямой ссылке. Если приложение уже опубликовано, а для тестирования выкладываются новые версии, пользователям будет доступна старая опубликованная версия. В целях расширения списка бета-тестировщиков разработчик может открыть для пользователей своего приложения возможность присоединиться к бета-тестированию новой версии. Для этого они должны в специальном разделе Play Маркета («Тестирование бета-версии») найти нужное приложение и установить его.

Таким образом, на данном этапе развития информационных технологий огромное значение приобретает тестирование приложений для мобильных устройств, в первую очередь – на базе Android. Тестирование мобильных приложений имеет свои особенности по сравнению с тестированием устройств для «настольных» компьютеров, что обусловлено в том числе разнообразием моделей (аппаратного обеспечения) и версий операционной системы. При тестировании используются как автоматические методы, так и традиционные ручные (с поправкой на особенность устройств). Для того, чтобы обеспечить охват различных устройств, при тестировании используют специальные «фермы устройств», а также привлекают пользователей (бета-тестирование).

 

Список источников:

  1. Нагрузочное тестирование // GetBug [Электронный ресурс]. – Режим доступа: http://getbug.ru/nagruzochnoe-testirovanie/
  2. Функциональное тестирование // GetBug [Электронный ресурс]. – Режим доступа: http://getbug.ru/funktsionalnoe-testirovanie/
  3. Dashboards // Android [Электронный ресурс]. – Режим доступа: https://developer.android.com/about/dashboards/index.html
  4. Gartner Says Worldwide Sales of Smartphones Grew 7 Percent in the Fourth Quarter of 2016 // Gartner [Электронный ресурс]. – Режим доступа: http://www.gartner.com/newsroom/id/3609817
  5. Remote Test Lab // Samsung [Электронный ресурс]. – Режим доступа: http://developer.samsung.com/remotetestlab/rtlDeviceList.action
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

Оставить комментарий