ВВЕДЕНИЕ 3
1. ПОСТАНОВКА ЗАДАЧИ 5
1.1. Требования к программному решению 5
1.2. Альтернативные решения 7
2. ПРОЕКТИРОВАНИЕ БИБЛИОТЕКИ 8
2.1. Архитектура системы 8
2.2. Модели 10
2.2.1. Issue 10
2.2.2. API Manager и API Delegate 11
2.2.3. Screen recorder 12
2.3. Пользовательский интерфейс 13
3. РЕАЛИЗАЦИЯ БИБЛИОТЕКИ 15
3.1. API Manager 15
3.2. Веб-запросы 16
3.2.1. Создание запроса 16
3.2.2. Отправка запроса 18
3.3. Интеграция с сервисами (реализация API Delegate) 19
3.3.1 Jira 20
3.3.2. Email 22
3.4. Запись видео с экрана 23
4. ДЕМОНСТРАЦИЯ ИСПОЛЬЗОВАНИЯ БИБЛИОТЕКИ 26
ЗАКЛЮЧЕНИЕ 29
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 30
ПРИЛОЖЕНИЕ
С недавних пор, повседневная жизнь современного человека уже не может обходиться без использования смартфона. В нём заключена если не вся, то наибольшая часть коммуникационной, деловой и развлекательной жизнедеятельности владельца мобильного устройства. Согласно ресурсу Statista, в 2017 году в руках человечества около 4,6 миллиардов мобильных устройств [1], 17-24% из которых приходится на долю устройств на базе iOS [2].
Такой стремительный рост пользователей породил рынок мобильных приложений, и соответственно индустрию разработки мобильного программного обеспечения. С каждым годом производительная мощность мобильных устройств растёт, растёт и сложность самих приложений. Таким образом, процесс проектирования и реализации программного продукта становится всё более ресурсоёмким.
Каждый поставщик программного обеспечения стремится к тому, чтобы сократить финансовые и временные затраты на разработку каждого продукта. Помимо проектирования и реализации приложения, важным этапом разработки качественного программного продукта является его тестирование. Само тестирование можно разделить на две части: ручное и автоматизированное. Если инструменты автоматизированного тестирования доступны разработчикам изначально (применительно к iOS-разработке: Xcode IDE позволяет проводить Unit и UI тестирование), то ручное тестирование по прежнему требует значительные временные затраты от тестировщиков.
Обычно, тестировщик, занимаясь ручным тестированием, действует по следующему алгоритму:
- обнаруживает баг (ошибку/несоответствие требованиям);
- делает снимок экрана или записывается видео (так как только по
скриншоту (снимку) проблема может быть не ясна);
- создает в системе отслеживания ошибок отчет об ошибке, указывая:
- краткое описание бага
- подробное описание
- шаги воспроизведения
- область обнаружения
- степень важности
- при необходимости, снимок экрана и/или видео
- версию программы и операционной системы
Путем опроса мобильных тестировщиков было выяснено, что почти все используют компьютер для создания отчета об ошибке, в отрыве от смартфона. Это накладывает такие неудобства как отправка медиаданных с мобильного устройства на персональный компьютер и привязанность тестировщика к компьютеру.
Таким образом, проблема оптимизации временных затрат и удобства процесса ручного тестировании в данной сфере актуальна. Данная проблема является объектом исследования данной работы.
Цель работы - разработка мобильной библиотеки, встраиваемой в проект на этапе разработки приложения для автоматизированного сбора результатов ручного тестирования мобильных устройств на базе iOS.
В результате выполнения данной дипломной работы была разработана встраиваемая библиотека для автоматизированного сбора данных о тестировании iOS-приложений. Для достижения поставленной цели были решены следующие задачи:
1. Разработка архитектуры библиотеки;
2. Создание и обработка НТТР-запросов;
3. Интеграция библиотеки с JIRA и отправкой по email;
4. Запись видео с экрана.
После настройки библиотеки на определенный сервис отслеживания ошибок, тестировщик может в любой момент открыть меню библиотеки, встряхнув смартфон с тестируемым приложением.
Из меню можно открыть новую форму отчета об ошибке, заполнить в ней базовые и дополнительные поля. При необходимости можно добавить фото/видео приложение к отчету.
Также из меню можно включить видеозапись и оттуда же её остановить.
Данный функционал доступен на любом экране тестируемого проекта, что позволяет легко и быстро регистрировать баги тестируемого приложения и тут же отправлять соответствующие отчеты на сервер Системы Отслеживания Ошибок, либо на иной сервис.
Реализация протокола API Delegate также позволяет настроить отправку отчетов в мессенджеры, например Slack.
Проект можно усовершенствовать, добавив поддержку больших сервисов, возможность управления своими отчетами.