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

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

Содержание:

ВВЕДЕНИЕ

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

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

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

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

Концепции комплексной автоматизации представлены в работах Щербакова В. В., Мерзляк А. В., Капустина Н. М., Голова Р. С., а также у таких крупных компаний, как ООО «1C» и ООО «Siemens». В них описаны проблемы автоматизации бизнес-процессов, изложены основные этапы комплексной автоматизации, в том числе технологическое проектирование и создание систем управления процессами. Раскрыты методы и средства моделирования программного обеспечения, функции и задачи информационно-аналитических систем.

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

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

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

Задачи:

1. Изучение технологий разработки веб-приложений и мобильных приложений.

2. Изучение этапов жизненного цикла ПО.

1. ТЕОРЕТИЧЕСКИЕ АСПЕКТЫ ПРОЕКТИРОВАНИЯ И РАЗРАБОТКИ МОБИЛЬНЫХ ПРИЛОЖЕНИЙ

1.1. Жизненный цикл программного обеспечения

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

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

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

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

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

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

Рис. 1. Каскадная модель жизненного цикла [13]

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

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

Рис. 2. Каскадная модель с промежуточным контролем [13]

V-образная модель. Унаследовала структуру «шаг за шагом» от каскадной модели. V-образная модель применима к системам, которым особенно важно бесперебойное функционирование. Например, прикладные программы в клиниках для наблюдения за пациентами, интегрированное ПО для механизмов управления аварийными подушками безопасности в транспортных средствах и так далее [6]. Особенностью модели можно считать то, что она направлена на тщательную проверку и тестирование продукта, находящегося уже на первоначальных стадиях проектирования [Там же]. Стадия тестирования проводится одновременно с соответствующей стадией разработки, например, во время кодирования пишутся модульные тесты. Такая модель используется в малых и средних проектах, где требования четко определены и фиксированы.

Рис. 3. V-образная модель [13]

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

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

Рис. 4. Инкрементная модель [13]

На рис. 5 показана итерационная «разработка» Мона Лизы. Как видно, в первой итерации есть лишь набросок Джоконды, во второй – появляются цвета, а третья итерация добавляет деталей, насыщенности и завершает процесс. В инкрементной же модели (рис. 6) функционал продукта наращивается по кусочкам, продукт составляется из частей. В отличие от итерационной модели, каждый кусочек представляет собой целостный элемент.

Рис. 5. Итерационная модель на примере Мона Лизы [13]

Рис. 6. Инкрементная модель на примере Мона Лизы [13]

Примером итерационной разработки может служить распознавание голоса. Первые исследования и подготовка научного аппарата начались давно, в начале – в мыслях, затем – на бумаге. С каждой новой итерацией качество распознавания улучшалось. Тем не менее, идеальное распознавание еще не достигнуто, следовательно, задача еще не решена полностью [13].

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

Рис. 7. Спиральная модель [13]

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

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

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

1.2. Методы разработки мобильных приложений

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

Для каждой мобильной платформы существует собственный, нативный, язык программирования, например, для Android это Java или Kotlin, для iOS – Objective-C или Swift, для Windows Phone – C#. Все перечисленные языки программирования имеют свой набор технологий и фреймворков.

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

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

Рис. 11. Нативная разработка [8]

Существует два кроссплатформенных подхода к разработке мобильных приложений: создание обертки для разных платформ на языке программирования C++ или использование специально разработанных технологий, например, Xamarin.

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

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

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

2. Нативную, которая обеспечивает инициализацию приложения, управление жизненным циклом и имеющую полный доступ к системным API [8].

Рис. 9. Мост для связи между кроссплатформенной и нативной частью [8]

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

Платформы iOS, Android и Windows UWP предоставляют необходимые API для работы кроссплатформенных фреймворков:

– WebView – используется в гибридных приложениях и представляет собой среду выполнения веб-приложений.

– JavaScript(JS)-движки – используются для быстрого выполнения JS-кода и обмена данными.

– OpenGL ES (или DirectX) используется в играх или приложениях для отрисовки интерфейса.

– UI-подсистема отвечает за нативный пользовательский интерфейс приложения.

Технологий для кроссплатформенной разработки мобильных приложений существует множество, но с архитектурной точки зрения все они аналогичны наиболее популярным Apache Cordova, ReactNative, Xamarin.Forms и Qt, поэтому рассмотрим только перечисленных лидеров.

Решения на базе Apache Cordova используют WebView и являются простыми с точки зрения реализации: создается небольшое нативное приложение, которое осуществляет вызов нативного функционала из JavaScript в локальном WebView приложения. Таким образом, приложение может иметь один универсальный код на JavaScript и реализованный на разных платформах единый API для доступа к нативному функционалу. Apache Cordova позволяет разделять весь код между платформами (рис. 10) и требует реализации нативной части на языках программирования Objective C, Java и C#. При разработке приложений в данной среде так же требуется опыт работы с такими языками, как HTML, JavaScript, CSS, и хорошие инженерные знания для интеграции нативной и кроссплатформенной частей.

Рис. 10. Архитектура Apache Cordova [8]

Apache Cordova подходит для небольших приложений, так доступ к нативной части достаточно затруднен.

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

Рис. 11. Архитектура ReactNative [8]

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

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

Решения схожие с Xamarin.Forms предлагают писать кроссплатформенный код на каком-то одном языке, в данном случае на C#.

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

Рис. 12. Архитектура Xamarin.Forms [8]

Xamarin-приложение состоит из двух частей: нативной и кроссплатформенной (среда Mono). Эти части общаются друг с другом через специальный мост (bridge). Вокруг каждого нативного класса и типа создается обертка для окружения Mono. Стоит отметить, что для разработки простых приложений не требуется глубоких знаний iOS, Android или Windows, а также их родных языков программирования. Архитектура Qt (рис. 13) позволяет портировать приложения в те операционные системы, которые имеют API для C++. Qt предоставляет собственную систему отрисовки пользовательского интерфейса на базе растрового движка или на базе Open GL, то есть приложение будет выглядеть нативным настолько, насколько оно стилизовано под каждую операционную систему.

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

Ещё одна отличительная способность – использование метаобъектного компилятора – предварительной системы обработки исходного кода.

Рис. 13. Архитектура Qt [8]

В данной дипломной работе для разработки мобильных приложений используется технология Xamarin.Forms. Данный выбор обуславливается тем, что доступ к инструментам для создания кроссплатформенных приложений является бесплатным. Кроме этого, Xamarin.Forms обладает рядом преимуществ: производительность приложений близка к нативным, используется единый стек технологий для всех платформ, для написания логики приложений используется один язык программирования (C#), предоставляется возможность быстрой разработки прототипов приложений, которые в дальнейшем могут развиваться в сложные приложения.

В том числе, язык программирования C# имеет много встроенных функций, использование которых позволят экономить время.

2. АНАЛИЗ МОБИЛЬНЫХ ПЛАТФОРМ ДЛЯ МОБИЛЬНЫХ ПРИЛОЖЕНИЙ

2.1 Мобильная платформа BlackBerry OS

Мобильная платформа BlackBerry OS представляет из себя проприетарную платформу, созданную компанией Reseach In Motion для ее линии наладонных устройств. Благодаря встроенной поддержке множества офисных приложений, таких как корпоративная почта MIDP, позволяющая проводить синхронизацию с сетевыми протоколами Microsoft Exchange, Lotus Domino, Novell GroupWise.

Также мобильная платформа BlackBerry OS является самой популярной платформой в бизнес-среде. Разработка под платформу ведется на языка Java с использованием специального интерфейса для создания приложений – BlackBerry API. Текущая версия мобильной платформы BlackBerry OS 10.3.

Интерфейс операционной системы (далее ОС) представлен на рисунке 14.

Рис. 14. Интерфейс мобильной платформы BlackBerry ОС 10.3

2.2 Мобильная платформа Windows Phone

Мобильная платформа Windows Phone – это мобильная операционная система, разрабатываемая корпорацией Microsoft и предназначенная для использования в смартфонах и других мобильных устройствах. Первый релиз состоялся 11 октября 2010 года, текущая версия имеет название Windows 10 Mobile. Приложения для данной ОС разрабатываются при помощи средств разработки Visual C++ и .NET Compact Framework, также существуют некоторые сторонние среды для разработки. Интерфейс ОС представлен на рисунке 15.

Рис. 15. Интерфейс мобильной платформы Windows 10 Mobile

2.3 Мобильная платформа Android

Мобильная платформа Android – самая молодая из мобильных платформ.

Первый выпуск состоялся 23 сентября 2008 года.

Компания Google, сотовый оператор T-Mobile, производители оборудования HTC, Qualcomm, Motorola и другие – всего 34 компании – объединились в сообщество Open Handset Alliance, чтобы создать Android – первую открытую комплексную программную платформу для сотовых телефонов, и разработать технологии, которые должны значительно снизить стоимость разработки. Интерфейс ОС представлен на рисунке 16.

Рис. 16 – Интерфейс мобильной платформы Android 6.0.1

Мобильная платформа Android разработана на базе открытого программного обеспечения, используется ядро Linux. Разрабатывать приложения для мобильной платформы Android можно на языке программирования Java с использованием специального интерфейса создания приложений – API, разработанных корпорацией Google.

Текущей версией платформы для мобильных устройств и планшетов является Anroid 6.0.1 Marshmallow. На рисунке 17 изображен график обновления версии платформы Android.

Рис. 17 – График обновления версии мобильной платформы Android относительно времени

2.4 Мобильная платформа iOS

iOS – это мобильная операционная система, разрабатываемая компанией Apple Inc. Впервые представлена в 2007 году. Представляет из себя облегченную и специально доработанную версию операционной системы Mac OS X.

Мобильная платформа iOS устанавливается только на устройствах корпорации Apple (смартфонах iPhone, плеерах iPod Touch, планшетах iPad), использование других аппаратных платформ не разрешается. Разработка приложений под данную ОС происходит на языках програмирования С, С++ и Objective-C при помощи комплекта средств разработки – iPhone SDK. Это Unix-подобная система, использующая гибридное ядро Darwin. На рисунке 18 представлен интерфейс мобильной платформы iOS 9.

Рис. 18 – Интерфейс мобильной платформы iOS 9

3. ОСНОВЫ ТЕСТИРОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

3.1 Основы программного обеспечения для устройств

Многие , занимающиеся программного обеспечения, до 50% , выделенных на разработку , тратят на тестирование, что миллиарды по всему миру в . И все же, несмотря на громадные , знаний о сути явно не и большинство программных неприемлемо ненадежно после «основательного ».

О состоянии дел всего свидетельствует тот , что большинство людей, в области обработки , даже не правильно определить «тестирование», и это на самом главная причина .

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

основные моменты, на необходимо особое внимание при тестировании мобильных .

Размер экрана и -интерфейс.

проверить размеры элементов графического пользователя, при этом особое на возможность использования элементов.

Также проследить, за тем, чтобы в работы не возникало пустых , так как появление пустого часто приводит в недоумение [1].

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

проверять использование в так называемых "" жестов (например, , doubletap), если , то соответствующий жест использоваться по , а если над каким-то действие, соответствующее не предусмотрено, то жест не должен. , в случае поддержки части приложения, должен использоваться по , если же нет выделять какой-то , то doubletap не должен ее [1].

Ресурсы устройства.

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

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

Обязательно проверить на целевом наличие всех приложением функций (, 3G, SD-карта и т. д.).

разрешения экрана и ОС.

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

Необходимо возможность адаптации к портретной и альбомной устройства. [24]

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

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

Реакция на внешние прерывания.

проверить работу в условиях эксплуатации устройства, а для устройств характерны изменения состояния: и исходящие звонки, SMS, MMS; устройства; в режим ожидания (в том и с защитой паролем); ориентации устройства в ожидания; и включение сети, , авиарежима, GPS; потеря с сервером или прокси ( есть, но не проходят); отключение и SD-карты, дополнительных ; зарядка устройства; с акселерометром; с физической клавиатурой ( в списке поддерживаемых есть такие) [3].

основные , характерные для мобильных , в некоторых типах .

Тестирование обновлений. обновления системы (по сравнению с компьютерами) требуют приложений, которое проходить и не требовать от пользователя знаний. Необходимо различные возможные установки (Wi-Fi, 3G, установка с ПК, на SD).

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

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

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

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

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

тестирование. имитацию реальных качества связи и среды, позволяет как поведет приложение при нестабильном Wi-Fi или с нулевым на счету в сети 3G [2].

тестирование. для подтверждения соответствия стандартам, лицензионным и условиям использования.

требования к , разработанным для мобильных , работающих под управлением .

Установочный файл (.apk) должен согласован с Program (http://play.google.com/about/developer-content-policy.html).

В случае обновленной сборки придерживаться управления версиями (, принятого порядка версий) [4].

Приложение не противоречить GUI (http://developer.android.com/design/index.html).

Для отдельных ов приложений (Amazon App (URL: https://www.amazon.com/-apps) Apps (URL: http://www..com/ru/apps/mobile), .Store (URL: https://.yandex.ru) и подобных) могут свои собственные и гайдлайны.

3.2 Виды мобильных приложений

В процессе инсталляционного проверяется корректность и деинсталляции программного в среде приближенной к эксплуатационной. правильности установки продукта должна обязательным проекта по тестированию продукта [5]

Цель: цель состоит в том, убедиться, что может быть при различных условиях – как: новая инсталляция, системы (), установка по умолчанию, установка, установка по .

Дымовое тестирование ( testing): Первый прогон (после написания или внесения существенных ). Как правило, для определения, готова ли для проведения более тестирования.

Цель: проблем « на поверхности» – тестируется всего основная логика программы.

тестирование ( testing): соответствия продукта требованиям и спецификациям.

Цель: Проверка продукта функциональным и спецификациям.

Регрессионное (Regression testing): Повторное после внесения в программное обеспечение или в его (в новой версии ), чтобы в том, что функции, которые в предыдущей версии , по-прежнему работают так, как , а найденные успешно исправлены ( протестированное ранее повторно).

Цель: потенциальных , которые могли в результате изменений. исправления найденных дефектов.

тестирование (Integration ): Проверка компонентов прикладной с целью корректности их совместного .

Цель: Выявление проблем в совместном компонент.

графического интерфейса (User Interface ): Тестирование – экранов, и т.д. Большая часть ПО реализуется, как правило, пользовательский интерфейс.

Цель: Обнаружение в интерфейсе и поиск в функциональности посредством .

Тестирование производительности ( testing): Проверка скорости системы (время , частота транзакций и зависящие от ) в имитационной и реальной .

Цель: Установить производительность программного .

Нагрузочное (Load testing): Это те же тесты производительности, при система подвергается нагрузкам; при цель этого – оценить способность правильно функционировать при превышении нагрузок при реальной (система имеет «запас прочности») [1].

Цель: Убедиться в том, что работает соответственно рабочим нагрузочным (какой предел ).

Стресс (Stress testing): Является одним из тестирования на производительность. поведение при недостатке ресурсов ( пространства, обрывов и т.д.).

Цель: Проверка , что система реагирует на те или иные ситуации.

Конфигурационное (Configuration testing): Конфигурационное – тестирование работы на платформах. Различные аппаратной конфигурации, операционной и окружения.

Цель: работоспособность системы при конфигурациях.

Локализационное (Localization ): Локализационное , в свою очередь, , правильно ли локализован . То есть, на другой язык и работает с учетом особенностией страны или , в котором продаваться и использоваться .

Цель: Проверить, ли локализован продукт.

тестов на производится в соответствие с показателями качества, проверяются с их помощью. словами, тестирования на виды в зависимости от типа (функциональные, нефункциональные), с помощью [17].

Для проверки функциональности () ПО необходимо испытать ние на выполнение функциональных к нему ( использования и др.). Для этого собственно функциональные , а также тесты , объема и .

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

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

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

3.3 Особе тестирования мобильных

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

В с этими особенностями, к разработке приложений и, в , тестированию на мобильных довольно отличается от десктопного. множество дополнительных нюансов и требований, необходимо . Немного осветим отличия в некоторых тестирования [4]:

Тестирование – частые операционной системы ( десктопов) приводят к обновлять приложение. должно просто и не требовать от специфических знаний. так же проверять различные пути приложения (Wi-Fi, 3G, с ПК, на SD).

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

Тестирование пользования (usability). вид тестирования одним из важных, так как в высокой конкуренции приложения входит в основных , влияющих на популярность . Позволяет выявить приложения, которые привлекательны или затруднения в навигации или на сенсорных экранах. так же убедиться, что модель ресурсов соответствует целевой . Например, приложения-напоминания не вызывать чрезмерное энергии. это тестирование пров в виде бета-тестирования [1].

тестирование подразумевает за использованием и системных ресурсов; того, нагрузочное позволяет выявить “” места в , связанные с производительностью, а обнаружить опасные памяти.

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

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

Лабораторное тестирование – реальных качества связи и среды. Обычно , как поведёт себя , например, при сигнале Wi-Fi или с балансом на счету в 3G. Данный вид тестирования проверить случаи.

Аттестационное используется для подтверждения приложения стандартам, соглашениям и использования [16, 9]:

Рассмотрим популярные платформы и их при тестировании:

Android:

  • файл (.apk) должен быть с Program Policies .
  • В публикации обновлённой желательно порядка управления (например, принятого нумерации версий).
  • не должно документу GUI.

iPhone:

  • должно иметь имя.
  • Приложение должно к определённой .
  • Нужно предоставить для осуществления обратной с разработчиком.
  • Приложение не противоречить Human Interface .

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

ЗАКЛЮЧЕНИЕ

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

1. Рассмотрены модели жизненного цикла разработки программного обеспечения (ПО). В ходе анализа были изучены такие модели, как каскадная, каскадная с промежуточным контролем, V-образная модель, итеративная и инкрементная, а также спиральная модель.

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

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

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

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

1. Вендров А. М. Case-технологии. Современные методы и средства проектирования информационных систем. / А. М. Вендров. Москва: Финансы и статистика, 2016. 544 с.

2. Гудов А. М., Завозкин С. Ю., Трофимов С. Н. Спецкурс. Технология разработки программного обеспечения. / А. М. Гудов, С. Ю. Завозкин, С. Н. Трофимов // Учебно-методический комплекс. Кемерово, КГУ, 2017. URL: http://unesco.kemsu.ru/study_work/method/po/UMK (Дата обращения 09.11.2018).

3. Зараменских Е. П. Управление жизненным циклом информационных систем: монография. / Е. П. Зараменских. Новосибирск: Издательство ЦРНС, 2014. 270 с.

4. Курапова М. В. Разработка методического обеспечения дисциплины «Управление жизненным циклом информационных систем». / М. В. Курапова // Выпускная квалификационная работа. Пермь, ПГГПУ, 2016. URL: http://vkr.pspu.ru/uploads/3681/Kurapova_vkr.pdf (Дата обращения 08.11.2018).

5. Лобода Ю. Г., Орлова О. Ю. Технологии разработки веб-приложений. / Ю. Г. Лобода, О. Ю. Орлова // Научные работы. Одесская национальная академия пищевых технологий. Одесса, Национальная библиотека Украины имени В. И. Вернадского, 2014. Вып. 46, том 1. С. 239-244.

6. Орлик С. В. Введение в программную инженерию и управление жизненным циклом ПО. / С. В. Орлик. Москва: Символ-Плюс, 2015. 183 с.

7. Сенина А. А. Обзор основных современных технологий разработки веб-приложений. / А. А. Сенина // XIII Всероссийская научно-практическая конференция «Технологии Microsoft в теории и практике программирования». Технологии разработки и проектирования информационных систем. Томск, ТНИПУ, 2010. Секция 6. С. 233-235.

8. Архитектуры ReactNative, Xamarin, PhoneGap и Qt. / Блок компании Microsoft. URL: https://habr.com/company/microsoft/blog/340116/ (Дата обращения 30.10.2018).

9. Веб-приложения. URL: http://megabook.ru/article/Web-приложения (Дата обращения 28.10.2018).

10. Информационное сопровождение деятельности. URL: http://comagency.ru/pr-support-of-evets (Дата обращения 25.10.2018).

11. Лекция 2: Информационные технологии и информационные системы. URL: https://www.intuit.ru/studies/courses/3735/977/lecture/14671?page=5 (Дата обращения 10.11.2018).

12. Лучшие среды разработки веб-приложений. URL: http://ccc.ru/magazine/depot/99_16/read.html?0801.htm (Дата посещения 28.10.2018).

13. Модели жизненного цикла программного обеспечения. URL: https://habrahabr.ru/post/111674/ (Дата обращения 09.11.2018).

14. Модель жизненного цикла RAD. URL: https://commons.wikimedia.org/w/index.php?curid=17833563 (Дата обращения 01.11.2018).

15. Настоящее и будущее решений для разработки кросс-платформенных мобильных гибридных приложений в корпоративной сфере. URL: http://files.tautechnologies.com/Events/2016_10_CEE_SECR/TAU_Technologies_CEE_SECR_2016_RUS.pdf (Дата обращения 29.10.2018).

16. Общие сведения о жизненном цикле приложения ASP.NET для служб IIS 7.0. URL: https://msdn.microsoft.com/library/bb470252.aspx (Дата обращения 23.11.2018).

17. Паттерны для новичков: MVC vs MVP vs MVVM. URL: https://habr.com/post/215605/ (Дата обращения 28.11.2018).