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

Заказать уникальную дипломную работу
Тип работы: Дипломная работа
Предмет: Программирование
  • 4545 страниц
  • 9 + 9 источников
  • Добавлена 29.07.2018
3 000 руб.
  • Содержание
  • Часть работы
  • Список литературы
  • Вопросы/Ответы
СОДЕРЖАНИЕ

ВВЕДЕНИЕ 2
1 АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ 3
1.1 Понятие тестирования программного обеспечения 3
1.2 Классификация видов тестирования 6
1.3 Методологии тестирования 21
2 ТЕХНОЛОГИЯ РАЗРАБОТКИ МОБИЛЬНЫХ ПРИЛОЖЕНИЙ 26
2.1 Особенности разработки мобильных приложений 26
2.2 Общие характеристики операционной системы Android 27
2.3 Интерфейс пользователя на основе Material Design 32
3 РАЗРАБОТКА ПРОГРАММНОЙ РЕАЛИЗАЦИИ 34
3.1 Выбор программного продукта 34
3.2 Описание работы приложения 35
ЗАКЛЮЧЕНИЕ 40

Фрагмент для ознакомления

Это многосторонняя платформа, представляющая собой программный стек операционной системы на основе Linux, предназначенный для управления устройствами, памятью и процессами. В библиотеках Android содержатся функции, связанные с телефонией, видео, графикой, программированием пользовательских интерфейсов и некоторыми другими возможностями мобильного устройства. Комплект Android SDK поддерживает большинство функций платформы JavaStandardEdition (Java SE), кроме абстрактного оконного интерфейса (AbstractWindowToolkit, AWT) и Swing. Вместо AWT и Swing в Android применяется собственный расширенный современный фреймворк пользовательского интерфейса. Существует виртуальная машина Java (JavaVirtualMachine, JVM), которая отвечает за интерпретацию исполняемого байт-кода Java. Обычно JVM обеспечивает необходимую оптимизацию, чтобы помочь Java достичь уровней производительности, сравнимых с аналогичными уровнями транслируемых языков - таких как С и C++. В Android предлагается собственный оптимизированный вариант JVM для исполнения скомпилированных файлов классов Java. Это делается, чтобы преодолеть ограничения, которые свойственны для мобильных устройств, в частности связанные с памятью, скоростью работы процессора и мощностью. Эта виртуальная машина называется Dalvik VM. Понятность и простота языка Java, усиленная обширной библиотекой классов Android, превращает Android в конкурентоспособную платформу для написания программ [6,7]. Рисунок 2.1. Схематичное представление программного стека AndroidВ Android используется комплексный, целенаправленный и сфокусированный подход к созданию мобильной платформы, а для этого недостаточно обычных решений, основанных на JVM. В Android все, что вам нужно, - операционная система, драйверы устройств, библиотеки ядра, собственный интерфейс Java, оптимизированная версия Dalvik VM и среда разработки Java - находится в одном пакете. Разработчик может быть уверен, что при разработке нового приложения все основные библиотеки будут на мобильном устройстве. Такой комплексный подход отличается от других решений, используемых в программировании для мобильных устройств, например от Java ME. Кратко рассмотрим Java ME, и сравним оба подхода. Рисунок 2.2.ОрганизацияJava для различных конфигураций машинСтандартная версия платформы Java (Java SE) подходит для персональных компьютеров и рабочих станций. Корпоративная версия платформы Java (Java ЕЕ) разработана для серверов. Микроверсия платформы Java (Java ME) является сокращенной и предназначена для небольших устройств. Java ME доступна в виде двух вариантов конфигурации. Первый вариант называется "конфигурация коммуникационных устройств" (Connected Device Configuration, CDC). Java ME для CDC содержит упрощенную версию Java SE - с меньшим количеством пакетов, с меньшим количеством классов в них, и даже с меньшим количеством методов и полей в этих классах. Для оборудования и устройств, имеющих дополнительные ограничения, в Java применяется конфигурация для устройств с ограниченными ресурсами (Connected Limited Device Configuration, CLDC). Каждый заданный профиль предоставляет разработчику дополнительный набор интерфейсов прикладного программирования [7-9].Сравним Java ME с Android:Варианты конфигурации с несколькими устройствами. В Java ME различаются два класса микроустройств, для каждого из которых предлагаются стандартные и особые решения. Android, в свою очередь, использует только одну модель. Она не будет работать с низкоуровневыми устройствами, если их конфигурация не будет усовершенствована;Понятность. Поскольку Android ориентирована на работу с конкретным устройством, она понятнее, чем Java ME. В Java ME используется несколько вариантов пользовательских интерфейсов для каждой конфигурации, в зависимости от того, какие функции поддерживает устройство.Быстрота реагирования. Dalvik VM оптимизирована лучше и будет иметь более высокую скорость отклика, чем стандартная виртуальная машина JVM, используемая на устройстве с аналогичной конфигурацией. Совместимость с Java. Поскольку Android работает с Dalvik VM, в ней используется не байт-код Java. Широта внедрения. Java ME широко поддерживается в мобильных устройствах, так как на ее основе работает большинство мобильных телефонов. Но Android отличается однородностью, дешевизной и простотой разработки программ - поэтому разработчиков Java могут заинтересовать и написание программ для Android;Поддержка Java SE. Если сравнить поддержку Java SE в CDC и в Android, то в Android такая поддержка реализована чуть более полно, если не считать AWT и Swing. Как уже упоминалось выше, в Android используется собственный подход к работе с пользовательскими интерфейсами. Таким образом, сравнительный анализ позволяет сделать вывод, что Android является более предпочтительной платформой для разработки приложений.SQLite — компактная встраиваемая реляционная база данных. Исходный код библиотеки передан в общественное достояние.Слово «встраиваемый» означает, что SQLite не использует парадигму клиент-сервер, то есть движок SQLite не является отдельно работающим процессом, с которым взаимодействует программа, а предоставляет библиотеку, с которой программа компонуется и движок становится составной частью программы. Таким образом, в качестве протокола обмена используются вызовы функций (API) библиотеки SQLite. Такой подход уменьшает накладные расходы, время отклика и упрощает программу. SQLite хранит всю базу данных (включая определения, таблицы, индексы и данные) в единственном стандартном файле на том компьютере, на котором исполняется программа. Простота реализации достигается за счёт того, что перед началом исполнения транзакции записи весь файл, хранящий базу данных, блокируется; ACID-функции достигаются в том числе за счёт создания файла журнала.Несколько процессов или потоков могут одновременно без каких-либо проблем читать данные из одной базы. Запись в базу можно осуществить только в том случае, если никаких других запросов в данный момент не обслуживается; в противном случае попытка записи оканчивается неудачей, и в программу возвращается код ошибки. Другим вариантом развития событий является автоматическое повторение попыток записи в течение заданного интервала времени.SQLite поддерживает динамическое типизирование данных. Возможныетипыполей: INTEGER, REAL, TEXT, BLOB [7,8].Старые версии SQLite были спроектированы без каких-либо ограничений, единственным условием было то, чтобы база данных умещалась в памяти, в которой все вычисления производились при помощи 32-разрядных целых чисел. Это создавало определённые проблемы. Из-за того, что верхние пределы не были определены и соответственно должным образом протестированы, часто обнаруживались ошибки при использовании SQLite в достаточно экстремальных условиях. Поэтому в новых версиях SQLite были введены пределы, которые теперь проверяются вместе с общим набором тестов.2.3Интерфейс пользователя на основе Material DesignВ 2014 году на конференции I/O была представлена новая дизайн-система, подход, который получил название Material Design. Новая дизайн-система позволяет создавать консистентный пользовательский опыт на всех экранах: десктоп, смартфон, планшеты, часы, телевизоры, машины. Для Android-приложений Material Design представляет собой эволюцию визуального языка Holo и дизайн-гайдлайнов. Во многих смыслах это более гибкая система, которая создавалась с учетом того, что пользоваться ей будут другие дизайнеры — Google был лишь первым пользователем.MaterialDesign позволяет более объективно подходить к принятию дизайн-решений: как что-то выглядит, как что-то работает, как осуществляется анимация и так далее. Она задает разумные рамки, но не излишние ограничения.Рисунок 2.3 – Основные принципы MaterialDesignMaterialDesign держится на четырех основных принципах:Тактильные поверхности. В Material Design интерфейс складывается из осязаемых слоёв так называемой «цифровой бумаги». Эти слои расположены на разной высоте и отбрасывают тени друг на друга, что помогает пользователям лучше понимать анатомию интерфейса и принцип взаимодействия с ним.Полиграфический дизайн. Если считать слои кусками «цифровой бумаги», то в том, что касается «цифровых чернил» (всего того, что изображается на «цифровой бумаге»), используется подход из традиционного графического дизайна: например, журнального и плакатного.Осмысленная анимация. В реальном мире предметы не возникают из ниоткуда и не исчезают в никуда — такое бывает только в кино. Поэтому в Material Design мы всё время думаем о том, как с помощью анимации в слоях и в «цифровых чернилах» давать пользователям подсказки о работе интерфейса.Адаптивный дизайн. Речь идет о том, как мы применяем предыдущие три концепции на разных устройствах с разными разрешениями и размерами экранов.Рисунок 2.4 – Слои интерфейса в MaterialDesign3РАЗРАБОТКА ПРОГРАММНОЙ РЕАЛИЗАЦИИВыбор программного продуктаВ качестве инструмента по разработке приложения была выбрана технология Java[8].Технология Java включает в себя язык программирования Java,средства трансляции исходного текста программы - исходного кода – вспециальную форму, пригодную для исполнения компьютером, и средстваисполнения Java-программ на различных платформах, то есть в различныхоперационных системах и на различном аппаратном обеспечении. Основнаяособенность JAVA-технологии в том, что преобразованная на этапетрансляции в специальный код Java-программа полностью"машинонезависима".Если исполняемый код, полученный из программ на другихраспространѐнных языках, обычно не пригоден для исполнениякомпьютером "другой платформы", то к исполняемому коду Java такоеограничение не относится. Правда, необходимо, чтобы для "целевойплатформы" имелась реализация так называемой Java-машины – средыисполнения JAVA-программ.JAVA-технологии, активно продвигаемые компанией SUN, получилиширокое распространение (далеко не только в web-решения). Аплатформонезависимость Java, позволившая интегрировать средстваисполнения Java-программ в браузеры, работающие в самых разныхоперационных системах, определила распространение Java в качествеэлемента Web-технологий.JAVA используется для создания сложных интерактивных элементов,связанных с web-сайтом. Например, на Java реализуются сложныеинструменты для работы с базами данных, размещѐнными в Web. Илиграфические интерфейсы, требующие вывода сложных интерактивныхэлементов. И, конечно, многое другое, от сетевых шахматных программ досредств редактирования звуковых файлов.Описание работы приложенияВ рамках дипломной работы было разработано приложение, выполняющее анализ времени реакции сайта при многократном посещении. Так же возможна реализация последовательных переходов по ссылкам.В качестве исходных данных задается список веб-ссылок, по которым необходимо переходить.В качестве управляющих параметров используются такие величины, как число испытаний и задержка между переходами, выражаемая в миллисекундах.Общий вид дизайна приложения приведен на рисунке 3.1.Рисунок 3.1. Общий дизайн приложенияДизайн формы настроек приведен на рисунке 3.2.Рисунок 3.2. Дизайн формы настроекПри нажатии на кнопку «Настройки тестов» происходит переход к форме на рисунке 3.2. При нажатии кнопки «Задать» на рисунке 3.2 выполняется задание параметров тестирования.Форма представления результатов представлена на рисунке 3.3.Рисунок 3.3. Дизайн формы результатов нагрузочного тестированияФорма представления результатов тестирования производительности представлена на рисунке 3.4.Рисунок 3.4. Дизайн формы результатов тестирования производительностиВ качестве результатов были выбраны следующие параметры:минимальное время реакции сайта на запрос;максимальное время реакции сайта на запрос;среднее время реакции сайта на запрос.Программа работает следующим образом. В окно на рисунке 3.1 вводятся ссылки в построчном режиме. В дальнейшем по ним будут выполняться HTTP-запросы со стороны приложения. Тест представляет собой последовательность HTTP-запросов, выполняемых по ссылкам и командам, задаваемым в поле главной формы. По результатам обхода вычисляется время реакции сайта. Следующим этапом является задание настроек тестирования, для чего на главной форме необходимо параметров тестирования. Для этого необходимо нажать кнопку «Настройки тестов».В результате появляется форма настроек, представленная на рисунке 3.2. Число тестов задается в поле «Число запусков». В качестве второй составляющей настроек в поле «Задержка между запусками» задается задержка между выполнением тестов в миллисекундах. Таким образом моделируется пауза между посещением сайта. Само тестирование начинается при нажатии кнопки «Запуск» на главной форме. После нажатия кнопки «Результаты» выполняется переход к форме результатов на рисунке 3.3.Вид рабочего приложения приведен на рисунке 3.4.Рисунок 3.4. Общий вид приложенияВ приложении можно выбирать тип теста: нагрузочный тест или тест производительности. Зададим данные, как это показано на рисунке 3.5.Рисунок 3.5. Общий вид приложенияПосле задания данных можно перейти к настройкам приложения и задать соответствующие опции (рисунок 3.6). Рисунок 3.6. Пример настроек приложенияПосле нажатия кнопки «Запуск» выполнится цикл тестирования. Примерный вид результатов приведен на рисунке 3.7.Рисунок 3.7. Пример настроек приложенияРезультаты теста производительности приведены на рисунке 3.8.Рисунок 3.8. Результаты теста производительностиКак видно из приведенных результатов, приложение показывает результаты статистики приведенных тестов. На качественном уровне при достаточно большой выборке их можно считать достоверными. Они позволяют сделать вывод о характере влияния нагрузки на общий процесс функционирования сайта.ЗАКЛЮЧЕНИЕВ работе изучался вопрос исследования возможностей мобильных систем для организации тестирования веб-приложений. Проведенный анализ предметной области показал, что тестирование программного обеспечения является задачей, которая носит во многом системный характер. Методы ее решения в конечном счете определяются целями тестирования. В этой связи существует широкий спектр инструментов тестирования.Исследование архитектуры мобильных систем позволило сделать вывод о многообразии существующих подходов и решений в этом направлении. Одной из ключевых особенностей мобильных операционных систем является распределенный характер и ограничения, связанные с аппаратной инфраструктурой устройства. При этом сами приложения могут быть как проприетарными, так и обладать открытым кроссплатформенным кодом. Последнее обстоятельство позволяет строить более гибкие решения как пользовательского, так и системного уровня.В этой связи в работе рассматривалась операционная система Android. Она отличается тем, что обладает развитой архитектурой, а также является кроссплатформенным решением. В качестве языка реализации приложений был выбран язык Java и среда AndroidStudio.При разработке приложения для тестирования веб-приложений рассматривался функционал его нагрузочного тестирования. В качестве исходных данных задавалась последовательность переходов по ссылкам приложения. Также задавалось число переходов по ссылкам и задержка между вызовами пользователя. В качестве результата выводилось минимальное, среднее и максимальное время реакции приложения на запрос. Тестовый запуск приложения показал его работоспособность.СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВСтепанченко И. В. Методы тестирования программного обеспечения: Учеб. пособие / ВолгГТУ, Волгоград, 2006. – 74 с.Современные технологии разработки и тестирования программного обеспечения (ПО). (часть 1): Разработка ПО средствами технологии графосимволического программирования: Методические указания для студентов специальности ИС. - Самара: СамИИТ, 2000. – 50с.Основы современного тестирования программного обеспечения, разработанного на С#, Учебное пособие / В.П.Котляров, Т.В.Коликова; под ред.В.П.Котлярова. Санкт-Петербург, 2004, – 170с.Макгрегор Дж, Сайкс Д . Тестирование объектно-ориентированного программного обеспечения. – К: Диасофт, 2002.– 432с.Блэк Р. Ключевые процессы тестирования. Планирование, подготовка, проведение, совершенствование. М.: Лори, 2011. – 544 с.Соколова В.В. Разработка мобильных приложений: учебное пособие / В.В. Соколова; Томский политехнический университет. – Томск: Изд-во Томского политехнического университета, 2011. – 175 с.Дейтел П., Дейтел Х., Уолд А. Android для разработчиков. 3-е изд. – СПб.: Питер, 2016. – 512 с.Харди Б., Филлипс Б., Стюарт К., Марсикано К. Х20 Android. Программирование для профессионалов. 2-е изд. — СПб.: Питер, 2016. — 640 с.Шилдт Г. Java 8. Руководство для начинающих. Вильямс, 2017. –

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Степанченко И. В. Методы тестирования программного обеспечения: Учеб. пособие / ВолгГТУ, Волгоград, 2006. – 74 с.
2. Современные технологии разработки и тестирования программного обеспечения (ПО). (часть 1): Разработка ПО средствами технологии графосимволического программирования: Методические указания для студентов специальности ИС. - Самара: СамИИТ, 2000. – 50с.
3. Основы современного тестирования программного обеспечения, разработанного на С#, Учебное пособие / В.П.Котляров, Т.В.Коликова; под ред.В.П.Котлярова. Санкт-Петербург, 2004, – 170с.
4. Макгрегор Дж, Сайкс Д . Тестирование объектно-ориентированного программного обеспечения. – К: Диасофт, 2002.– 432с.
5. Блэк Р. Ключевые процессы тестирования. Планирование, подготовка, проведение, совершенствование. М.: Лори, 2011. – 544 с.
6. Соколова В.В. Разработка мобильных приложений: учебное пособие / В.В. Соколова; Томский политехнический университет. – Томск: Изд-во Томского политехнического университета, 2011. – 175 с.
7. Дейтел П., Дейтел Х., Уолд А. Android для разработчиков. 3-е изд. – СПб.: Питер, 2016. – 512 с.
8. Харди Б., Филлипс Б., Стюарт К., Марсикано К. Х20 Android. Программирование для профессионалов. 2-е изд. — СПб.: Питер, 2016. — 640 с.
9. Шилдт Г. Java 8. Руководство для начинающих. Вильямс, 2017.

Вопрос-ответ:

Какие виды тестирования мобильных приложений существуют?

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

Какие методологии тестирования мобильных приложений существуют?

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

Какие особенности разработки мобильных приложений нужно учитывать?

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

Какие характеристики операционной системы Android нужно знать при разработке мобильных приложений?

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

Какой программный продукт выбрать для разработки мобильного приложения?

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

Какие методы тестирования мобильных приложений существуют?

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

Какие методологии тестирования мобильных приложений существуют?

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

Какие особенности разработки мобильных приложений нужно учитывать?

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

Какие характеристики операционной системы Android важно знать для разработки мобильных приложений?

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

Какой программный продукт выбрать для разработки мобильных приложений?

Выбор программного продукта для разработки мобильных приложений зависит от различных факторов, таких как требования проекта, стоимость, наличие необходимых функциональностей и инструментов. Некоторые популярные программные продукты для разработки мобильных приложений включают Android Studio, Xcode и React Native.