Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

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

Содержание:

Введение

На рынке уже существует множество мобильных платформ, в том числе Symbian, iPhone, Windows Mobile, BlackBerry, Java Mobile Edition, Linux Mobile (LiMo) и другие. В гонке по росту производительности и уникальности мобильного контента участвуют крупнейшие разработчики. И чтобы завладеть сигментом рынка в области продаж мобильных приложений, разработчикам нужно выбирать надежные программные продукты для разработки новых продуктов и выкидывать на рынок готовый оттестированный продукт.

‰‰На помощь всем разработчикам от крупных компаний и до начинающих разработчиков пришло уникальное в своем роде программное обеспечение. Среда для разработки мобильных приложений для Андроид. Это -настоящему открытая, бесплатная платформа разработки ПО, основанная

на Linux и открытом коде. Она нравится разработчикам сотовых телефонов,

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

‰‰Архитектура, основанная на компонентах, несущая в себе идеи, распространенные в Интернете. Различные части приложения могут быть использованы не так, как это было изначально задумано разработчиками. Вы можете даже заменить встроенные компоненты на собственные, улучшенные версии. Эта его особенность позволяет достичь нового уровня креативности в области разработки мобильных приложений.

‰‰Множество изначально встроенных возможностей. Сервисы определения местоположения, основанные на GPS или алгоритмах триангуляции базовых станций, позволяют управлять пользовательскими приложениями в зависимости от физического расположения абонента. Полнофункциональная SQL-база данных позволяет программам, требующим подключения к Сети, работать с локальным хранилищем данных в промежутках между синхронизациями. Браузер и карту можно встроить непосредственно в приложения. Все эти встроенные возможности помогают увеличить функциональность программ и снизить затраты на

разработку.

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

‰‰Высококачественные графика и звук. Качественная, сглаженная двумерная (2D) векторная графика и анимация, вдохновленные идеями и воз

можностями 3D-ускорения OpenGL, предоставляют широкие возможности

новым видам игровых и деловых приложений. В систему встроены кодеки для проигрывания наиболее распространенных аудио- и видеоформатов, в том числе форматов H.264 (AVC), MP3 и AAC.

‰‰Переносимость между широким диапазоном существующего и будущего аппаратного обеспечения. Все программ ы для ваших мобильных устройств написаны на Java и исполняются на виртуальной машине Android Dalvik, а это значит, что ваш код можно переносить между устройствами, основанными на архитектурах ARM, x86 и другими. В систему включена поддержка множества способов ввода данных, таких как клавиатура, тач-скрин, трекбол. Пользовательский интерфейс может быть настроен под любое разрешение и любую ориентацию экрана.

Android предлагает вам по-новому взглянуть на взаимодействие мобильных

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

Моя работа актуальна и интересна еще и тем, что многие молодые разработчики стоят перед выбором с чего начать. Начинать нужно всегда с перспективных шагов вперед. И судя по грандиозным планам крупных реселлеров ПО моя работа в сфере IT по разработке новых приложений перспективна и интересна.

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

Глава 1. Виды мобильных приложений

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

Чем в большинстве пользуются владельцы современных телефонов?

  • Большинство (по статистике это 53%) пользуются приложениями, которые скачивают;
  • Вторая половина (52%) посещают сайты с помощью мобильных телефонов;
  • Треть (а именно - 38%) использует возможность посещать социальную сеть через мобильный телефон;
  • Некоторые из пользователей играют в игры (около 34%);
  • Приблизительно 3/4 людей пользуются общением через мобильный телефон: это не только SMS сообщения, звонки, но также месседжер и приложения социальных сетей.

1.1. Основные типы приложений

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

- мобильные сайты, веб-приложения которые являются наиболее распространенным типом приложений, предназначенных для мобильных устройств. С помощью смартфона нынешних поколений можно посмотреть обычный сайт. Таким устройствам доступно практически все, что мы видим в десктопных приложениях, так как возможность поддержки HTML5 выполняет свою задачу. Веб-приложения будут отличным решением для начала, ведь только благодаря ним можно за небольшие деньги и маленький срок получить достаточно весомый результат. Также преимуществом мобильных сайтов в сравнении с прочими мобильными приложениями является так называемая кроссплатформенность. Но среди весомых минусов можно отметить, что с ними сложно заработать.

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

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

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

1.2. Процесс создания мобильного приложения

В первую очередь определяется аудитория, для которой будет писать приложение. Ответ на этот вопрос оформлен в User Story. Описано, как у пользователя ICQ есть возможность войти в приложение, а также с какими проблемами он может столкнуться. Этот этап важен тем, что необходимо просмотреть и проработать всевозможные варианты сценариев. Это необходимо во избежание неприятных неожиданностей и сюрпризов на более поздних этапах процесса разработки.

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

Создание проекта и дизайна 

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

В процессе разработки дизайна мы обязательно используем гайдлайны.

Что такое гайдлайн? Это документ, выпускаемый компанией, с помощью которого  дизайнеры, а также сами разработчики видят принцип создания взаимодействия  приложения с его пользователями. Если говорить условно, то для Windows Phone необходимо делать кнопки квадратного вида, а для iOS – круглой формы. Но мы применяем также внутренние гайдлайны для самых разработчиков. Поэтому результатом работы дизайнера в большинстве случаев является макет, гайдлайн, а также нарезки графики. 

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

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

Передаем в разработку, обсуждаем и выполняем необходимые правки

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

1.3 Тестирование и последующий мониторинг мобильных приложений

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

Есть сервисы, упрощающие тестирование и помогающие в этом процессе. Нами используется приложение HockeyApp, которое дает возможность раздавать продукт бета-тестерам. Что это значит? Мы размещаем в социальных сетях надпись: « Здравствуйте ребята, у нас появилось новое приложение, если есть те, кто хочет его попробовать, то мы предоставим его вам». Далее всем желающим дается билд, они активно используют приложение, а сам сервис собирает статистику, составляя креш-репорт и отправляя его нам.

Благодаря специальным сервисам есть возможность протестировать приложение на любой версии Android, например, 2.1 и так далее. То есть на всех операционных системах. Весь путь, который зададите, фотографируется сервисом, а картинки приходят на вашу почту. Так у вас появится возможность проверить, все ли находится в порядке.

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

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

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

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

Кроме комментариев Distimo показаны также скачивания, сумма заработанных денег, а также указано, откуда именно происходит скачивание ваших приложений.

Flurry является еще одним довольно интересным мониторинговым сервисом, с помощью которого можно удобно собрать клиентскую статистику. В этом сервисе есть возможность получить отчет о том, что именно делает пользователь в приложении. Например, сколько раз он нажимал на кнопки, возвращался ли в приложение еще раз. Также указаны и общие параметры – география, аудитория, пол, возраст и так далее.

Некоторые мобильные продукты также проходят проверку  при помощи  Google Analytics. Но если сравнивать с Flurry, то разницы практически никакой нет. Оба случая характеризуются общим минусом – недостаточной скоростью работы и обработки логов. Но этот инструмент может быть использован вами, если вы уже привыкли к работе с интерфейсом гугл.

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

Это никак не упростит жизнь, поэтому намного проще применять Flurry и Distimo, а в случае возникновения каких-либо важных вопросов – обращаться к внутренним логам.

Глава 2. Среда для разработки приложений под Android

Android Studio — удобная среда разработки приложений для устройств, работающих под управлением операционной системы Android. Программа обладает большим набором инструментов, благодаря чему разработчики с её помощью могут создавать приложения для Андроид любого уровня сложности. Данная среда разработки появилась сравнительно недавно, но уже завоевала немалую популярность и множество положительных отзывов разработчиков, и с каждым днём желающих программу android studio скачать становится всё больше и больше. Android Studio будет очень полезной для разработчиков, имеющих опыт в создании приложения для Android. Для тех пользователей, которые только начинают осваивать азы создания приложений, данная программа станет отличным инструментов для обучения.

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

Как правило, для создания более-менее серьезных приложений необходимо написать довольно большие объемы кода, в котором можно легко потеряться и долго искать нужный кусок. В программе Android Studio данная проблема решена, благодаря возможности маркировки кода. Поэтому можно легко перескакивать в нужные места кода, ориентируясь по маркерам. Очень удобной возможностью программы является функция отображения создаваемого приложения на «виртуальных» устройствах с разными разрешениями экрана и другими настройками. Это позволяет адаптировать своё приложение для большего числа устройств без необходимости его физической установки на устройства и проверки работы приложения.

В приложении также реализована функция Google Cloud Messaging, благодаря чему можно через облако пересылать данные с сервера прямо на устройства. Есть в программе и функция локализации приложений. Многофункциональная среда разработки Android Studio обладает полным набором всех необходимых инструментов и функций, благодаря которым даже такое трудоемкое и сложное дело, как создание приложения для андроид становится простым и интересным. При этом программа работает надежно и стабильно, проста в освоении и отлично подходит как для профессиональных разработчиков, так и для новичков в программировании приложений для ОС Android.

2.1 Настойка программы Android Studio

Android Studio: установка и настройка среды разработки Последовательность действий по установке и настройке среды разработки мобильных приложений под платформу Android – Android Studio – приведена ниже. 1. Установка Java Development Kit (JDK) Так как Java является языком программирования мобильных приложений под Android, для запуска и отладки программного кода устанавливаем Java Development Kit (JDK). Скачиваем бесплатный инструмент JDK с сайта oracle.com, вкладка Downloads, категория меню Java for Developers:

Выбираем JDK Download:

Соглашаемся с лицензией:

Выбираем версию для Вашей операционной системы.

2.2. Установка Android Studio

Скачиваем среду разработки под Windows на сайте developer.android.com (если у вас другая операционная система, то жмите Other Download Options и выбирайте нужный вам файл из таблицы All Android Studio Packages).

Для этого соглашаемся с условиями и начинаем скачивание:

Размер android-studio-bundle 828 Мб. После скачивания запускаем файл. Устанавливаем все компоненты: Android Studio, Android SDK, Android Virtual Device. Жмем Next, пока мастер установки не спросит пути к каталогам.

От нас требуется указать два пути. Первый путь будет использован для установки Android Studio. Второй - для установки Android SDK (о нем подробнее поговорим чуть дальше). Android SDK включает в себя инструменты, необходимые для разработки Android приложений. Учтите, что это должен быть каталог "на века". И лучше его никуда не перемещать, иначе придется перенастраивать среду разработки. Поэтому давайте заменим второй путь на свой. Для этого создадим каталог android. На всякий случай сделайте так, чтобы путь к нему был без пробелов и без русских символов. Например :\android. И этот путь подставим в визард.

Жмем несколько раз Next, пока не начнется установка. Когда установка закончится, запустится Android Studio. Если не запустилась, то ищите ее ярлык в Пуске. Первым делом она спросит, не надо ли импортировать настройки с прошлой версии.

Оставляем выбранным нижний пункт и жмем Ок. У нас пока нет старых настроек. Далее выполнится поиск и установка недостающих компонентов и обновлений.

Глава 3. Тестирование мобильного приложения

3.1. Понятие тестирования

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

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

С точки зрения ISO 9126, качество программного обеспечения можно определить как совокупную характеристику исследуемого ПО с учѐтом следующих составляющих:

 Надѐжность

 Сопровождаемость

 Практичность

 Эффективность

 Мобильность

 Функциональность

Более полный список атрибутов и критериев можно найти в стандарте ISO 9126 Международной организации по стандартизации. Состав и содержание документации, сопутствующей процессу тестирования, определяется стандартом IEEE 829-1998 Standard for Software Test Documentation. Таким образом, виды и методы тестирования различаются в зависимости от той качественной характеристики проекта, которую требуется выявить и оценить. В ходе тестирования проверяется соответствие поведения системы ожидаемым показателям. 4 Виды тестирования программного обеспечения Тестирование программных систем состоит из динамической верификации поведения программ на конечном (ограниченном) наборе тестов (кейс-тестов), выбранных соответствующим образом из обычно выполняемых действий прикладной области и обеспечивающих проверку соответствия ожидаемому поведению системы.

3.2 Основные виды тестирования мобильных приложений

Основные виды тестирования:

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

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

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

Этапы:

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

2. Тестирование ведется вручную по подготовленным заранее тестовым сценариям с занесением всех найденных ошибок в багтрекинговую систему. В случае отсутствия такой системы можно обходиться только офисным пакетом.

3. Происходит разработка и согласование отчетов о проведенном тестировании со списком обнаруженных отклонений и рекомендациями по улучшению системы. Если необходимо, проводится обучение пользователей. Управление тестированием ведется в специализированных системах управления тестированием, например, HP ALM, IBM Rational Quality Manager, MS Team Foundation Server.

В зависимости от нужд и возможностей клиента возможно использование альтернативных систем отслеживания ошибок: Jira, Redmine. Основные направления функционального тестирования Регрессионное тестирование Регрессионное тестирование - предназначено для проверки того, что программа после изменений продолжает соответствовать поставленным требованиям и успешно взаимодействовать с другими системами. Данный вид тестирования рекомендуется проводить каждый раз после корректировки программы, которая может включать исправление дефекта, слияние кода, миграцию на другую ОС или БД, добавление новой функциональности, и другие изменения. Если в процессе эксплуатации ПО существенно выросло число пользователей системы по сравнению с пилотной эксплуатацией, рекомендуется проводить регрессионное нагрузочное тестирование. Основной задачей регрессионного тестирования является проверка того, что исправление ошибки не затронуло существующую функциональность. Из-за необходимости частого выполнения одних и тех же сценариев тестирования (см. шаблон метода тестирования - сценарий) рекомендуется использовать автоматизированные регрессионные тесты, что позволит уменьшить сроки регрессионного тестирования.

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

Анализ архитектуры и построение модели угроз и рисков Определение критериев защищенности

 Поиск уязвимостей в исходном коде

 Fuzz тестирование

 Тестирование на проникновение

 Тестирование, основанное на рисках

 Проведение нагрузочного тестирования

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

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

Основные задачи системного тестирования сводятся к алгоритмизации и методическому описанию сценариев тестирования (см. шаблон метода сценариев):

Определение подхода к составлению тестовых сценариев

 Создание плана и методики испытаний

 Подготовка тестовых данных

 Проведение тестирования

 Интеграционное тестирование

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

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

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

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

 Бизнес-требования

 Функциональные требования

 Техническое задание

 Руководства пользователей

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

Любое ПО должно работать под нагрузкой длительное время. Сбои и отказы системы могут привести к убыткам, потере клиентов и другим неприятным последствиям. Нагрузочное тестирование позволяет определить, как и с какой скоростью работает программа под определенной нагрузкой. Таким образом оценивается соответствие производительности продукта требованиям, сформулированным в ТЗ.

Рассмотрим основные виды тестирования.

Нагрузочное тестирование рекомендуется проводить при выпуске нового программного обеспечения, доработке эксплуатируемого ПО и при изменении конфигурации стендов. Преимущества нагрузочного тестирования:

 Оценка возможностей системы и определение максимальной производительности.

 Выявление ошибок (например, утечка памяти, некорректные настройки или распределение ресурсов). Предупреждение отказов системы в промышленной эксплуатации.

 Поиск оптимального комплекса технических средств.

Проводится анализ целей и статистики эксплуатации системы. Определяются бизнес-операции, имеющие значение с точки зрения 10 нагрузки на систему. Создается и согласуется документ «Методика нагрузочного тестирования», который включает: стратегию тестирования, список и описание тестов, критерии успешного завершения, описание средств мониторинга и инструментов нагрузочного тестирования. Осуществляется подготовка тестовых данных, настраивается мониторинг, наполняется база данных. Выполняется запись и отладка скриптов нагрузочного тестирования и реализация сценариев нагрузочного тестирования. С помощью разработанной системы нагрузочного тестирования выполняется тестирование приложений. В рамках нагрузочных испытаний собирается различная статистическая информация, с помощью которой выполняется анализ производительности. 3. После проведения нагрузочного тестирования заказчику предоставляется отчет, который описывает результаты тестирования, отступления от методики (если имеются), список ошибок, предложения по оптимизации работы системы, общие замечания. Инженеры-тестировщики при выполнении нагрузочного тестирования чаще всего используют продукты следующих вендоров отрасли: HP LoadRunner, Apache JMeter, IBM Performance Tester, MS Visual Studio Ultimate. Направления нагрузочного тестирования Тестирование производительности Тестирование производительности позволяет определить максимальную интенсивность операций, при которой система удовлетворяет требованиям ко времени отклика. Тестирование производительности рекомендуется проводить для новой версии ПО, планируемого к внедрению. Результат проведения тестирования выявляет и предотвращает отказы системы перед внедрением в промышленную эксплуатацию, определяет максимальное количество одновременно работающих пользователей в системе и максимальное количество одновременно выполняемых операций без потери качества обслуживания.

В рамках тестирования производительности собирается статистика использования системы, на основе которой составляется профиль нагрузки. После этого вычисляется начальная точка и размер шага для увеличения интенсивности выполнения операций. В ходе выполнения тестирования определяется максимальная производительность системы (см. шаблон тестирования производительности): наибольшая интенсивность выполнения операций с требуемым качеством обслуживания (SLA); пиковая производительность системы, при которой происходит ухудшение показателей качества обслуживания операций (время выполнения, отказы).

Объемное тестирование.

Данный вид тестирования позволяет проверить использование системных ресурсов при увеличении объема данных и принять проактивные меры для предотвращения отказа системы в будущем. Объемное тестирование подходит не только для систем, планируемых к внедрению в опытно-промышленную эксплуатацию, но и на стадии проектирования. Объемное тестирование позволяет определить глубину хранения данных, при которой не произойдет деградации производительности системы, подобрать оптимальный комплекс технических средств, выявить лучшее архитектурное решение для системы, находящейся на этапе проектирования. Главной задачей объемного тестирования является оценка производительности системы при увеличении потока данных. В ходе тестирования эмулируется увеличение интенсивности операций системы с одновременным увеличением объемов базы данных. В процессе тестирования измеряется общая производительность системы: количество операций за определенный период времени, время отклика системы и количество пользователей, одновременно работающих в системе. 12 Тестирование стабильности Тестирование стабильности предназначено для оценки возможности системы работать длительное время под нагрузкой. Позволяет выявить утечки памяти или некорректные настройки ПО. Данный вид работ рекомендуется проводить как для новых систем, так и для новых версий уже эксплуатируемого ПО. Тестирование стабильности позволяет предупредить сбои системы и ухудшение скорости и качества обработки данных, проверить возможность стабильной работы системы, находящейся под длительной нагрузкой, определить характеристики системы, которые подлежат отслеживанию в ходе опытно-промышленной эксплуатации, выявить недостаток аппаратных и системных ресурсов до внедрения в опытно- промышленную эксплуатацию. В ходе тестирования стабильности на целевую систему в течение не менее 24 часов подается средний уровень нагрузки, 70-80% от максимального уровня.

Стресс-тестирование.

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

1. Если велика стоимость отказа системы в экстремальных ситуациях. 2. Если есть возможность резкого увеличения нагрузки на систему в экстремальных ситуациях. Выявляются узкие места в отдельных компонентах системы, из-за которых возможно снижение производительности системы в стрессовых 13 условиях. Определяются показатели нагрузки системы, при которых система отвечает требованиям к производительности, заявленным на этапе проектирования.

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

Подбор оборудования

Данный вид нагрузочного тестирования позволяет подобрать оптимальный комплекс технических средств, на котором система может быть введена в промышленную эксплуатацию. Подбор комплекса технических средств может осуществляться как для вновь вводимых в эксплуатацию систем, так и для систем, подлежащих миграции на новый комплекс средств. Конфигурационное тестирование Конфигурационное тестирование — это проверка работы программного обеспечения на различных программных и аппаратных окружениях. Данный вид тестирования применяется, если известно, что информационный продукт будет использоваться, например, на разных платформах, в различных браузерах, будет поддерживать разные версии драйверов. Преимущества конфигурационного тестирования: Конфигурационное тестирование полностью имитирует фактическое использование системы. Позволяет своевременно выявить системные ошибки ПО в работе под разными конфигурациями, и, таким образом, предотвратить проблемы при работе с ним.

Заключение

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

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

  • От каждой новой платформы пользователь хочет увидеть богатое приложение. Рассуждение человека строится так: «У меня был плохой  Java-телефон и я все же мог использовать аську. Но когда купил новый более дорогой телефон, то зашел в Marketplace и не увидел там ICQ. Почему?». Пользователь же не знает, что вам пришлось создавать приложение с нуля, а новая платформа включает в себя новые девайсы, документацию и ресурсы.
  • У более популярных платформ больше конкурентов. Увидеть эту закономерность можно на примере двух сторов: AppStore и Google Play. При наличии у вас идеи приложения, легко монетизируемого, или того, которое будут много скачивать, если вы введете ключевые слова в строке поиска, то увидите, что данное приложение уже есть. Получается, что чем платформа более популярная, тем больше конкурентов вы встретите. Поэтому очень внимательно следует изучить аналоги, анализировать статистику, а также пробовать понять, в каких сферах и параметрах вы можете превзойти конкурента.
  • Очень важно знать, как именно пользователь осуществляет выбор приложения. Обычно вначале пользователь не имеет желания покупать приложение, он просто просматривает список существующих предложений. Возьмем для примера запрос «бесплатная музыка». В первую очередь на глаза человеку попадается иконка и несколько строк с описанием. Именно это увидит и оценит пользователь, на основании чего сделает выбор – покупать приложение или нет. Важно знать, что плохая иконка значительно уменьшает шансы на скачивание, поэтому необходимо позаботиться о достойной иконке.
  • Если вы попадете в топ магазина приложений, то это очень хорошо, а если закрепитесь там – то успех вам обеспечен. Что это дает? Зайдя в чарт, при необходимости скачать какое-либо приложение, пользователь смотрит, какое именно из всех находится на первом месте по числу скачиваний. Так как считается, что самые популярные приложения – это самые лучшие и полезные.  Это, можно сказать, замкнутый круг, в который очень важно попасть. Когда приложение попадает в топ, то люди его видят и скачивают, не продолжая поиски далее. Из-за большого количества скачиваний это приложение продолжает оставаться на первом месте и его видят новые пользователи и так далее. Такая интеграция может продолжаться длительное время, поэтому направьте все свои силы и возможности для того, чтобы добиться скачиваний и рейтинга на первых порах. Вы можете просить друзей, родных, близких, соседей и знакомых скачать ваше приложение и поставить ему высокую оценку. Чем больше пятерок будет поставлено вашему приложению, тем ближе оно будет подбираться к топу. Необходимо также сообщить о том, что существует масса решений для попадания в топ на рынке, то это принесет недостаточное количество целевой аудитории. Хотя экспериментировать можно со всем.
  • Необходимо помнить, что время публикации может занимать даже несколько недель. К примеру, вы создали и протестировали приложение, позвонили всем блоггерам, сообщили в СМИ о том, что у вас новое приложение, и вы предлагаете прийти на пресс-конференцию. Прямо сегодня вы его отправили в AppStore, но вы должны подождать неделю (для России). А вот в Google Play публикация сможет занять всего лишь пару часов. Поэтому это настоящий рай для оперативных обновлений.
  • В сторе нет возможности для общения с пользователями. Допустим, пользователь написал, что у него в аське не идут сообщения. Он при этом выражает весьма красочно свое недовольство, но при этом недостаточно информативно. Мы не имеем возможности связаться с ним, чтобы узнать о его проблеме в подробностях. Все, что в наших силах, это лишь возможность посмотреть в мониторинге, ходят ли сообщения у нас. Существует вероятность, что он заблочен антиспамом. Но на сегодняшний день некоторые сторы имеют админки, где есть возможность задать вопросы пользователям, а также узнать их контактные данные. Можно даже посмотреть из каких стран идет скачивание приложения. Но пока что ситуация не очень улучшилась. Интересно знать, что Google Play добавляет такую возможность для некоторых разработчиков. У нас такая возможность также доступна.
  • Фрагментация операционной системы. При разработке приложения под Android необходимо принимать в учет фрагментацию, а также наличие огромного количества различных устройств. В свою очередь это не может не отразиться на времени разработки, на длительности проектирования, создания дизайна, а также особенно на этапе тестирования приложения. То есть увеличивается время всех этапов.
  • Время на тестирование. Приложение может быть протестировано несколькими методами. К примеру, можно нанять специальных тестеров в свой штат с тест-планами и тест-кейсами. Они все это обязательно проходят. Но стоит также помнить и о сервисах для тестирования, где вы будете платить лишь за найденные баги. То есть после того, как вы выложите приложение, оно будет протестировано, например, 20 тысячами пользователей, но такой подход имеет как плюсы, так и минусы, о которых также нельзя забывать.
  • При помощи кадров в мобильной индустрии можно решить все. Даже крупные компании, такие как Яндекс, Google  и Mail.Ru Group порой не могут найти достаточно хороших мобильных разработчиков. Исходя из этого, мы работаем со стажерами, ведь порой значительно проще взять умного студента и самостоятельно его обучить всему необходимому.

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

  1. Google Android программирование для мобильных устройств (Голощапов А.Л., 2011, BHV Санкт-Петербург)
  2. Разработка приложений для Android (С. Хашими, С. Коматинени, Д. Маклинr, 2011)
  3. Android 2. Программирование приложений для планшетных компьютеров и смартфонов (Рето Майер, Эксмо, 2011)
  4. Больше книг об Android - http://4pda.ru/forum/index.php?showtopic=159318
  5. Блог посвященный Android - http://android-zone.info
  6. Блог разработчика Android - http://androidengineer.ru/