Файл: Этапы разработки, тестирования и ввода в эксплуатацию мобильных приложений (Теоретические сведения о разработки мобильных приложений).pdf
Добавлен: 28.03.2023
Просмотров: 109
Скачиваний: 2
СОДЕРЖАНИЕ
1. Теоретические сведения о разработки мобильных приложений
1.1 Особенности классификации мобильных приложений
1.2 Анализ технологий разработки мобильных приложений
1.3 Анализ языков программирования
1.4 Анализ сред программирования
2. Разработка моделей и структур мобильного приложения
База данных - совокупность данных, хранящихся в соответствии со схемой данных и отражают состояние объектов и их взаимосвязей, манипулирование которыми выполняются в соответствии с правилами средств моделирования данных. Базы данных является мощным и удобным способом хранения и пользования информацией. Они жизненно необходимы в огромном количестве учебных заведений, учреждений, организаций, предприятий. Важность баз данных трудно переоценить. Реляционная база данных - коллекция связанных таблиц. Разница между базой данных и реляционной базой данных находится в строении таблиц. Если вести учет компании на серии таблиц Excel, то работа идет только с базой данных. Можно получать информацию по каждой таблице, но тогда не будет возможности использовать информацию из одной таблицы в качестве основы для запроса информации, содержащейся на другом листе. В реляционной базе данных, таблицы построены так, что есть логическая связь между ними. На основании информации, найдено в одной таблице, можно получить соответствующую информацию из другой таблицы.
В Android используется база данных SQLite - это достаточно популярная, легкая и быстрая реляционная база данных [7]. Особенностью SQLite является то, что она не использует парадигму клиент-сервер, то есть движок SQLite не является отдельным процессом, с которым взаимодействует приложение, а предоставляет библиотеку, с которой программа компилируется и движок становится составной частью программы. Таким образом, как протокол обмена используются вызовы функций (API) библиотеки SQLite. Такой подход уменьшает накладные расходы, время отклика и упрощает программу. SQLite хранит всю базу данных (включая определения, таблицы, индексы и данные) в единственном стандартном файле на том устройстве, на котором выполняется приложение. Простота реализации достигается за счет того, что перед началом выполнения транзакции весь файл, хранящий базу данных, блокируется; ACID-функции достигаются, в том числе за счет создания файла-журнала. Несколько процессов могут одновременно без проблем читать данные из одной базы. Запись в базу можно осуществить только в том случае, когда никаких других запросов в это время не обслуживается; иначе попытка записи заканчивается неудачей, и в программу возвращается код ошибки. Другим вариантом развития событий является автоматическое повторение попыток записи в течение заданного интервала времени.
В комплекте поставки идет также функциональная клиентская часть в виде исполняемого файла sqlite3, с помощью которого демонстрируется реализация функций основной библиотеки. Клиентская часть работает из командной строки, и позволяет обращаться к файлу БД на основе типовых функций ОС. Благодаря архитектуре движка, возможно, использовать SQlite как на встраиваемых (embedded) системах, так и на выделенных машинах с гигабайтными массивами данных.
Особенности SQLite:
- транзакции атомарные, последовательные, изолированные и крепкие (ACID) даже после сбоев системы и сбоев питания;
- установление конфигурации - не требует ни установки, ни администрирования;
- база данных хранится в одном кроссплатформенном файле на диске;
- поддержка терабайтных размеров баз данных и гигабайтного размера строк и BLOB (Binary Large Object) - малый размер кода: меньше 350KB полностью настроен, и менее 200KB с опущенными дополнительными функциями; - быстрее популярные движки клиент-серверных баз данных для наиболее распространенных операций;
- простой, легкий в использовании API; написанная в ANSI C, включена привязка к TCL; доступны также привязки для десятков других языков;
- хорошо прокомментирован исходный код со 100% тестовым покрытием ветвей;
- доступен как единый файл исходного кода на ANSI C, который можно легко вставить в другой проект;
- автономность (нет внешних зависимостей) - кроссплатформенность: из коробки поддерживается Unix (Linux и Mac OS X), OS / 2, Windows (Win32 и WinCE). Легко переносится на другие системы;
- поставляется с автономным клиентом интерфейса командной строки, который может быть использован для управления базами данных SQLite.
Думая о построении различных таблиц, которые нужны в нашей базе данных, необходимо рассмотреть, как организовать эти таблицы и связать друг с другом. В основном, это будет сделано с помощью ключей. Есть 2 типа ключей в таблице: первичный ключ - значение, является уникальным для каждой записи; внешний ключ - первичный ключ одной таблицы находится в другой таблице. Использование SQLite дает разработчику и пользователю несколько неоспоримых преимуществ: - не нужно устанавливать дополнительное программное обеспечение; - данные хранятся в локальном файле, что создает прозрачность их контроля, то есть их можно просматривать и редактировать независимо от вашего приложения; - возможность импорта или экспорта таблиц в другие СУБД; - в коде используются привычные SQL запросы, что позволяет в любой момент перевести приложение на работу с другими СУБД .
Для работы мобильного приложения необходима локальная база данных для хранения информации о бюджетах пользователей, которая синхронизируется с серверной базой в облачной среде. Синхронизация осуществляется через web-сервис с помощью HTTP-запросов при наличии подключения до интернета. С помощью мобильного приложения отображается информация пользователя, и он может манипулировать своими данными.
2.2 Тестирование
Тестирование программного обеспечения - это процесс технического исследования, который выполняется по требованию заказчиков, и предназначен для выявления информации о качестве продукта относительно контекста, в котором он должен использоваться; процесс анализа или эксплуатации программного обеспечения с целью выявления дефектов. Тестирование предусматривает "анализ" или "эксплуатацию" программного продукта. Тестовая деятельность, связанная с анализом результатов разработки программного обеспечения, называется статическим тестированием. Оно предусматривает проверку программных кодов, контроль и проверку программы без запуска. Тестовая деятельность, предполагающая эксплуатацию программного продукта, называется динамическим тестированием. Динамическое и статическое тестирование дополняют друг друга.
Тестирование программного кода - процесс выполнения программного кода, направленный на выявление существующих в нем дефектов.
Под дефектом здесь понимается участок кода, выполнение которого при определенных условиях приводит к неожиданному поведению системы (то есть поведения, не соответствует требованиям). Неожиданное поведение системы может приводить к сбоям в ее работе и отказов, в этом случае говорят о существенные дефекты программного кода. Некоторые дефекты вызывают незначительные проблемы, которые не нарушают процесс функционирования системы, но немного усложняют работу с ней. В этом случае говорят о средних или незначительных дефектах.
Цель применения процедуры тестирования программного кода - минимизация количества дефектов (особенно существенных) в конечном продукте. Тестирование само по себе не может гарантировать полное отсутствие дефектов в программном коде системы. Однако, в сочетании с процессами верификации и валидации, направленными на устранение противоречивости и неполноты проектной документации (в частности - требований на систему), грамотно организованное тестирование дает гарантию того, что система удовлетворяет требованиям и ведет себя в соответствии с ними во всех предусмотренных ситуациях. Программный продукт качественным, если: во время работы пользователя с программным продуктом возникает небольшое отказов; программный продукт надежен, а это значит, что его использование редко вызывало аварийные отказы; программный продукт удовлетворяет требованиям большинства пользователей.
Анализ методов тестирования
Черный ящик
Основная идея в тестировании системы как черного ящика заключается в том, что все материалы, которые доступны тестировщикам - требования на систему, описывающие его поведение, и сама система, работать с которой он может, только подавая на ее входы некоторые внешние воздействия и наблюдая на выходах некоторый результат. Все внутренние особенности реализации системы скрыты от тестировщика, таким образом, система представляет собой "черный ящик", правильность поведения которого по отношению к требованиям и предстоит проверить. С точки зрения программного кода черный ящик может представлять с собой набор классов (или модулей) с известными внешними интерфейсами, но недоступными исходными текстами. Основная задача тестировщика для данного метода тестирования заключается в последовательной проверке соответствия поведения системы требованиям. Кроме того, тестировщик должен проверить работу системы в критических ситуациях: что происходит в случае представления неверных входных значений. В идеальной ситуации все варианты критических ситуаций должны быть описаны в требованиях на систему, и тестировщиков остается только придумывать конкретные проверки этих требований. Однако в реальности в результате тестирования обычно оказывается два типа проблем системы. Несоответствие поведения системы требованиям. Неадекватное поведение системы в ситуациях, не предусмотренных требованиями. Отчеты по обоим типам проблем документируются и передаются разработчикам. При этом проблемы первого типа обычно вызывают изменение программного кода, гораздо реже - изменение требований. Изменение требований в данном случае может потребоваться из-за их противоречивости (несколько различных требований описывают различные модели поведения системы в одной и той же ситуации) или некорректности (требования не соответствуют действительности). Проблемы второго типа однозначно требуют изменения требований за их неполноту - в требованиях явно пропущена ситуация, приводящая к неадекватному поведению системы. При этом под неадекватным поведением может пониматься как полный крах системы, так и вообще поведение, не описанное в требованиях. Тестирование черного ящика называют также тестированием по требованиям, так как это единственный источник информации для построения тест-плана.
Белый ящик
При тестировании системы как белого ящика тестировщик имеет доступ не только к требованиям к системе, ее входов и выходов, но и к её внутренней структуры, то есть видит ее программный код. Доступность программного кода расширяет возможности тестировщика тем, что он может видеть соответствие требований участков кода и определять тем самым, или на весь программный код существуют требования. Программный код, для которого отсутствуют требования, называют кодом, не покрытой требованиями. Такой код является потенциальным источником неадекватного поведения системы. Кроме того, прозрачность системы позволяет углубить анализ ее участков, вызывающих проблемы, часто одна проблема нейтрализует другую, и они никогда не возникают одновременно.
Тестирование с использованием эмулятора
Тестирование мобильных приложений происходит в среде разработки с использованием эмулятора. После этого приложение тестируется на устройстве. Эмуляторы является простым способом тестировать приложение на мобильном телефоне, не используя его физически.
Ниже представлен список доступных инструментов для тестирования приложений среди самых популярных мобильных операционных систем:
1) Google Android Emulator. Android Эмулятор запускается на Windows как отдельное приложение без необходимости полностью загружать и устанавливать Android SDK.
2) Официальный Android SDK Emulator. Включает в себя эмулятор мобильного устройства, реализующий все аппаратные и программные особенности типичного устройства.
3) MobiOne. MobiOne Developer это mobile Web IDE для Windows помогает разработчику программировать, тестировать, отлаживать упаковывать и внедрять мобильные веб-приложения на устройства, такие как iPhone, BlackBerry, устройства на Android и Palm Pre.
4) TestiPhone. Основанный на браузере симулятор для быстрого тестирования веб-приложений для iPhone. Работает с использованием Internet Explorer 7, Firefox 2 и Safari 3.
5) iPhoney. Предоставляет точную среду веб-браузера, разработанная Safari. Может быть использована для разработки веб-сайтов для iPhone. Не является эмулятором iPhone. iPhoney запускается только на Mac OS X 10.4.7 и выше.
6) BlackBerry Simulator. Существует множество официальных эмуляторов BlackBerry. С любым из них возможна проверка того, как ПО, экран, клавиатура устройства будут работать с приложением. Для платформы Android самыми популярными эмуляторами являются: Bluestacks, Android SDK Emulator, Andy, Youwave, Oracle VM VirtualBox, GenyMotion. Ниже приведены их преимущества и недостатки.
Bluestacks [8] на данный момент является одним из самых известных эмуляторов для ПК благодаря довольно-таки простому интерфейсу и хорошего арсенала возможностей.
Из плюсов можно назвать следующие: возможность работы в полноэкранном режиме; установка неограниченного количества андроид-приложений в оболочку; получения root-прав, позволит работать с эмулятором как с полностью разблокированным гаджетом; синхронизация с устройством android, что позволит загрузить и установить игры и программы с вашего смартфона в программу; установка 3d android игр на компьютер; возможность управления android-приложениями с помощью клавиатуры; совместимость с проводными контроллерами; возможность играть в онлайн-игры.
К явным минусам эмулятора можно отнести: некорректная работа в Windows x64; может встречаться проблема при запуске из-за конфликтов с антивирусом; сложность в работе с онлайн-приложениями.