Файл: Этапы разработки, тестирования и ввода в эксплуатацию мобильных приложений (Предварительный анализ рынка и целевой аудитории).pdf
Добавлен: 23.04.2023
Просмотров: 108
Скачиваний: 4
СОДЕРЖАНИЕ
Предварительный анализ рынка и целевой аудитории
Выбор средств и среды разработки
Тестирование и алгоритмизация. Безопасность
Защита информации от злоумышленников
Ввод приложения в эксплуатацию. Релиз
Процесс создания приложения и ввод в эксплуатацию
Согласно Соколовой В. В., процесс разработки от начала и до конца выглядит так:
«- проектирование и кодирование – написание программы;
- компилирование;
- предварительная проверка – выполнение предварительной проверки обработки классов Java до упаковки: проверка использования операций с плавающей точкой и методов завершения в классах Java;
- упаковка архивного файла;
- распаковка и размещение ресурсов приложения под контролем эмулятора;
- запуск приложения с использованием эмулятора;
- отладка, нахождение ошибок и внесение исправлений в исходный код.» [[10]]
В связи с глобальной популяризацией приложений на платформе Android, в дело пошел гибкий, легкоизменяющийся и также набирающий популярность JavaScript в связке с HTML5 и CSS3. Принцип и алгоритм процесса разработки на Java и JS - практически идентичны.
Существует множество языков программирования, средств разработки и операционных систем. Наиболее оптимальным мне кажется сочетание операционной системы Android, среды разработки Android Studio с поддержкой на Java или JS ввиду большого сообщества поддержки и количества вспомогательных средств.
Тестирование и алгоритмизация. Безопасность
Понятие алгоритма
Для того, чтобы прийти к решению задачи, разработчик должен указать последовательность действий, конец которой приведет его к нужному результату. Данная последовательность называется алгоритмом.
Белов М. П. в своем пособии «Основы алгоритмизации в информационных системах» дает следующее определение алгоритмическому процессу:
«Алгоритмизация задачи – процесс разработки (проектирования) алгоритма решения задачи с помощью ПК на основе ее условия и требований к конечному результату.» [[11]]
У любого алгоритма есть набор свойств, характерный для каждого вида:
- понятность;
- дискретность;
- определенность;
- результативность;
- массовость.
Объем текста в алгоритме определяется количеством задействованных операторов.
На алгоритмах строится весь этап разработки – начиная с идеи и заканчивая предрелизом. Основы алгоритмизации необходимы программисту для написания кода, SEO - для понимания работ поисковых систем, а также тестировщикам - для работы с тест-кейсами.
Тестирование приложения
Кандидат технических наук, доцент Белорусского Государственного Университета информатики и радиоэлектроники С. Куликов дает такое определение понятию «тестирование»:
«Тестирование программного обеспечения — процесс анализа программного средства и сопутствующей документации с целью выявления дефектов и повышения качества продукта.» [[12]] (см. рис. 5)
Соответственно, тестировщик – это специалист, анализирующий программное обеспечение на предмет ошибок и багов. Как правило, обладает базовыми познаниями в программировании, однако нередки случаи, когда тестированием занимается и сам разработчик.
«Тестирование программного обеспечения выполняет две базовых функции: верификацию и аттестацию. В функции верификации и аттестации (verification and validation, V&V) определяются следующим образом:
Верификация (verification) обеспечивает соответствие результатов конкретной фазы процесса разработки требованиям данной и предшествующей стадий. В большей мере сосредоточена на действиях в рамках конкретной стадии процесса разработки.
Аттестация (validation) есть гарантия того, что программный продукт удовлетворяет системным требованиям. Цель аттестации заключается в том, что система должна отвечать всем предъявляемым требованиям, так чтобы происхождение каждой функции можно было проследить до конкретного требования заказчика. Другими словами, аттестация дает гарантию того, что строится правильный продукт.» [[13]]
Возьмем абстрактное мобильное приложение, которое нужно проверить на предмет багов и ошибок. В общем и целом, весь процесс характеризуется так:
«Модель разработки ПО (Software Development Model, SDM) - структура, систематизирующая различные виды проектной деятельности, их взаимодействие и последовательность в процессе разработки ПО. Выбор той или иной модели зависит от масштаба и сложности проекта, предметной области, доступных ресурсов и множества других факторов.» [[14]]
То есть, модель разработки – это совокупность данных, включающих в себя подробную документацию, объем задач и, собственно, исходный код, который необходимо протестировать. Существует множество видов МР, самые распространенные из них:
- спиральная,
- гибкая,
- водопадная,
- v-образная,
- итерационная инкрементальная.
Крайне важно следовать заданным в модели алгоритмам.
«Требование (requirement49) — описание того, какие функции и с соблюдением каких условий должно выполнять приложение в процессе решения полезной для пользователя задачи.» [[15]]
Оно же техническое задание. Чем яснее и прозрачнее оно составлено, тем быстрее и лучше будет продвигаться проект. После ТЗ вторым по важности понятием, является упомянутая выше техническая документация – продуктная и проектная.
Первая включает в себя план проекта, требования к нему, тестовый план, тест-кейсы, дизайн и архитектуру, а также технические спецификации (алгоритмы, описание интерфейсов, список баз данных).
Во второй – пользовательская и сопроводительная документация, необходимая на начальных этапах разработки и последующего тестирования, плюс маркетинговая документация.
Сам процесс тестирования состоит из нескольких этапов:
- Планирование. Анализ требований. На данном этапе уточняется объем работы, планируются сроки и выбирается модель разработки, на алгоритм которой будет опираться тестировщик в работе.
- Уточнение критериев, по которым будет производиться тестирование.
- Стратегия тестирования. Продолжение первого пункта – на данном этапе уточняются первоочередные задачи.
- Тест-кейс. Разработка, рассмотрение и прием в работу необходимой документации, разработка тестовых сценариев и сценариев на случай непредвиденных обстоятельств.
- Выполнение тест-кейсов. Фиксация обнаруженных дефектов. Передача данных разработчикам.
- Анализ результатов и отчетность по итогам тестирования.
Совокупность этапов называется жизненным циклом тестирования. [[16]] (см. рис. 6) После шестого этапа данные окончательно утверждаются и передаются разработчикам, которые обрабатывают исходный код с соответствии с рекомендациями и требованиями, и устраняют дефекты, после чего цикл начинается заново.
«Дефект возникает в результате того, что человек допускает ошибку (error), осуществляя некоторый вид деятельности, который имеет отношение к разработке программного обеспечения. К упомянутым видам деятельности относятся, например, формулирование требований, проектирование программы или написание программного кода. Эта ошибка вкрадывается в рабочий продукт (перечень требований, проектный документ или программный код) в виде неисправности (fault). До тех пор пока эта неисправность (известная еще как дефект (bug, defect)) присутствует в рабочем продукте, она может служить причиной появления других дефектов. Например, если неисправность, допущенная в перечне требований, остается необнаруженной, вполне вероятно, что это приведет к возникновению соответствующих ошибок в проекте системы, в проекте программы, в программном коде и даже в документации для пользователя.» [[17]]
Из описанного выше следует вывод: идеального программного обеспечения не существует. Однако минимализировать риск провала, вполне по силам грамотному тестировщику.
Защита информации от злоумышленников
С учетом того, что мобильные ИТ становятся основой повседневных операций, компании, разрабатывающие стратегию мобильной информатизации, должны решить и задачу обеспечения безопасности. Для этого важно понимать характер угроз. (См. рис. 3)
Угрозы, возникающие при мобильной обработке информации, делятся на четыре основных типа:
- Потеря или кража мобильных информационных устройств;
- Несанкционированный доступ к данным;
- Риски, обусловленные одновременным использованием устройств и в служебных, и в личных целях;
- Недостатки в управлении устройствами и обеспечении соблюдения правил. [[18]]
Аутентификация и авторизация пользователей требует определенных мер безопасности:
Вход в систему всегда осуществляется посредством ввода логина и пароля. Пароль должен быть сложным и отвечать следующим требованиям:
1.) Длина не более 16 символов;
2.) Пароль должен состоять из больших и малых латинских букв и цифр, включая символы «_», «!», «<», «>»;
Смена пароля должна проводиться 1 раз в месяц, чтобы минимализировать вероятность взлома и потери данных пользователя. Защита от копирования предусматривает собой включение ряда скриптов, обеспечивающих защиту от копирования информации клиента и исходного кода приложения (если он не является открытым). Также распространено принудительное отключение пользователя от системы, если тот не проявляет активных действий по истечении определенного периода времени. Например, когда утерян мобильный телефон, данные пользователя (фото, видео, пароли от банковских карт, прочая финансовая и личная информация) должны оставаться в безопасности.
Передаваемая информация модифицируется таким образом, чтобы их невозможно было изменить (аутентификация) или просмотреть (криптография) на пути их следования. При совместном применении этих двух механизмов обеспечивается как сокрытие информации, так и невозможность ее подмены на всем пути следования.
Защита персональных данных является важным шагом на пути к созданию мобильного приложения. Никому не хочется в одночасье лишиться личной информации.
Как говорилось выше, восстановить доверие пользователя после краха – весьма трудная задача.
Ввод приложения в эксплуатацию. Релиз
Процесс создания приложения и ввод в эксплуатацию
Процесс создания мобильного приложения – трудоемкая задача, задействующая в себе множество специалистов разных сфер деятельности, имеющих отношение к разработкам в сети Интернет.
«Он включает в себя следующие основные этапы, показывающие логическую последовательность действий от постановки задачи до получения результата.» [[19]]
Ниже приведена общепринятая последовательность действий, что была подробно рассмотрена выше, и краткое резюме, характеризующее результат.
- Формулировка задачи. Компанией, заказчиком или же самим разработчиком поставлена задача и ожидаемый результат, к которому должна прийти команда или отдельно взятый программист.
- Математическая модель. Определение математических величин, описывающих задачу, и получение связи между ними. Как правило, используются общепринятые уравнения.
- Метод решения задачи. Выбор языка программирования и среды разработки, что будут задействованы в процессе создания мобильной программы.
- Составление алгоритма. Или выбор из уже существующих моделей. Помогает просчитать примерные сроки разработки, является ориентировочной последовательностью действий.
- Написание кода. А также прототипирование, принятие определенных решений, что могли не учитываться при написании кода: дизайн, расположение элементов, цветовая гамма.
- Отладка. Приход к единому решению.
- Тестирование. Поиск дефектов в коде, а также незначительных багов. Возвращение к пункту №5. Цикличный режим, повторение.
- Собственно, демонстрация готового продукта пользователю. Релиз. Жизненный цикл тестирования - при обнаружении неполадок пользователями, - повторение пунктов 5-7.
Результат работы во многом зависит от слаженности работы команды. Основная цепь – дизайнер, разработчик, тестировщик – практически никогда не прерывается.
Разумеется, ожидаемый итог: удовлетворение потребностей клиента. В будущем требуется лишь грамотная поддержка, своевременная установка обновлений, а также предварительное тестирование обновлений на симуляторах перед установкой на реальное приложение.