Статья:

Методика автоматизации тестирования мобильных приложений на Scrum-проектах

Журнал: Научный журнал «Студенческий форум» выпуск №16(109)

Рубрика: Технические науки

Выходные данные
Нестерова О.А. Методика автоматизации тестирования мобильных приложений на Scrum-проектах // Студенческий форум: электрон. научн. журн. 2020. № 16(109). URL: https://nauchforum.ru/journal/stud/109/70183 (дата обращения: 28.12.2024).
Журнал опубликован
Мне нравится
на печатьскачать .pdfподелиться

Методика автоматизации тестирования мобильных приложений на Scrum-проектах

Нестерова Ольга Александровна
магистрант Тольяттинского государственного университета, РФ, г. Тольятти

 

Аннотация. В ходе исследования была выявлена следующая проблема. Для автоматизации тестирования на scrum-проектах используется методика Scripting. Она подходит для создания автотестов API, но не подходит для GUI. В результате графический интерфейс тестируется вручную, с покрытием только базовых сценариев.

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

Актуальность: все больше мобильных приложений разрабатывается по методологии scrum. Чтобы повысить эффективность их тестирования, нужно пересмотреть подход к автоматизации этого процесса.

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

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

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

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

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

 

Ключевые слова: тестирование; quality assurance (QA); мобильное приложение (МП); Agile; методики автоматизации тестирования; автотесты

 

Вводная часть

Гибкая методология разработки (англ. Agile software development), agile-методы – это серия подходов к созданию программного обеспечения [5]. Один из ее ключевых принципов – регулярный выпуск работающего продукта. Частота выхода обновлений зависит от конкретной методологии.

В методологии Scrum используются двухнедельные итерации, называемые спринтами [7]. К концу каждой итерации заказчику предоставляется новая версия продукта, как правило, с новыми бизнес-возможностями.

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

Тестирование оптимизируется сразу двумя способами:

– этот процесс перестает быть фазой в создании ПО и активно применяется на всех стадиях его жизненного цикла;

– для ускорения тестирования применяются автотесты.

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

Проверка ранее созданного функционала отнимает много времени. Поэтому автоматизация на Scrum-проектах чаще всего применяется для регрессионных тестов.

Для их подготовки используется методика «написание сценария» (Scripting), которая подразумевает написание кода автотестов вручную. Хотя применение этой методики требует серьезных временных и финансовых затрат, созданные с ее помощью тесты отличаются высокой надежностью и легко поддерживаются.

Технически Scripting позволяет создавать автотесты как для API, так и для GUI. Но у последних есть такой недостаток как хрупкость. Для поиска графических элементов и взаимодействия с ними в коде тестов прописываются локаторы. Поэтому после изменения или замены существующих элементов тесты для графического интерфейса перестают работать.

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

Поэтому на Scrum-проектах сильно ограничивают объем автотестов GUI или отказываются от них в пользу ручного тестирования.

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

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

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

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

Таким образом, для эффективного тестирования МП на Scrum-проектах методики Scripting недостаточно.

Основная часть

Для автоматизации МП подойдет комбинированная методика, которая основана на применении разных методик для подготовки разных автотестов. Для создания тестов API используется Scripting, а тесты GUI автоматизируются с помощью методики «запись и воспроизведение» (Record and Play).

Record and Play подразумевает использование утилит для записи действий пользователя в МП. Программа преобразует запись в код и генерирует автотесты, которые в последствии выполняются без участия человека.

Применение этой методики не отменяет необходимость создавать новые автотесты после изменения элементов GUI. Но подготовка новых тестов Record and Play занимает гораздом меньше времени, чем при использовании Scripting.

В контексте Scrum имеет смысл применять автотесты Record and Play для тестирования новых или часто изменяемых экранов МП. Использование утилит позволяет генерировать автотесты для новых элементов GUI сразу после их разработки. Также с помощью этой методики можно оперативно создавать автотесты для покрытия внеплановых доработок в дизайне.

Для записи автотестов Record and Play для МП используются специальные драйверы, встроенные в платформенные средства разработки. Для Android это драйвер Espresso в составе Android Studio, для iOS – драйвер XCTest, встроенный в Xcode.

Алгоритм создания тестов одинаковый для обеих платформ. В среде разработки создается проект для тестируемого МП.

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

На рисунке 1 показан автотест Record and Play, созданный в Android Studio.

 

Рисунок 1. Автотест Record and Play для Android

 

Для создания автотестов API с применением методики Scripting потребуется фреймворк Cucumber и среда разработки, поддерживающая выбранный для написания тестов язык программирования. Cucumber подходит для написания автотестов на многих популярных языках, включая Java, Python и JavaScript.

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

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

На рисунке 2 показана сборка автотеста в среде IntelliJ IDEA.

 

Рисунок 2. Сборка автотеста Scripting в IntelliJ IDEA

 

После имплементации получается такой тест (в примере использован язык Java):

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

Заключительная часть

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

Анализ методики Scripting, активно применяемой для создания автотестов на scrum-проектах, показал, что в чистом виде она не подходит для МП. Scripting автотесты GUI требуют много времени на подготовку, но быстро устаревают.

Был сделан вывод, что для автоматизации МП необходима комбинированная методика, которая основана на применении разных методик для подготовки разных автотестов.

В дополнение к Scripting было предложено использовать методику Record and Play, которая позволяет генерировать автотесты для новых элементов GUI сразу после их разработки.

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

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

 

Список литературы:
1. Автоматизированное тестирование программного обеспечения - основные понятия [Электронный ресурс] – URL: http://www.protesting.ru/automation/
2. Криспин, Лайза Гибкое тестирование. Практическое руководство для тестировщиков ПО и гибких команд / Криспин Лайза, Грегори Джанет. – М: Изд-во Вильямс, 2016. – 464 с.
3. Куликов, С.С. Тестирование программного обеспечения. – Минск: Четыре четверти, 2015. – 294 с.
4. Путеводитель по инструментам автотестирования мобильных приложений. – [Электронный ресурс]. – URL: https://habr.com/ru/company/badoo/blog/347986/
5. Agile [Электронный ресурс] – URL: https://ru.wikipedia.org/wiki/Гибкая_методология_разработки
6. BDD [Электронный ресурс] – URL: https://ru.wikipedia.org/wiki/BDD_(программирование)
7. Scrum [Электронный ресурс] – URL: https://ru.wikipedia.org/wiki/SCRUM