jubula – tdd ui qa automation tool

44
Jubula – TDD UI QA Automation tool Антон Наумович DPI Solutions

Upload: comaqaby

Post on 05-Aug-2015

95 views

Category:

Software


1 download

TRANSCRIPT

Page 1: Jubula – TDD UI QA Automation Tool

Jubula – TDD UI QA Automation tool

Антон НаумовичDPI Solutions

Page 2: Jubula – TDD UI QA Automation Tool

О себе

Антон НаумовичБолее 10 лет опыта в IT

• C++ тимлид и архитектор в LogicNow• В DPI Solutions курирую проекты по автоматизации• В прошлом – разработчик в Microsoft, команда

Hyper-V (Windows Server)• Активист сообщества автоматизаторов COMAQA.BY

Page 3: Jubula – TDD UI QA Automation Tool

Что такое Jubula

Jubula – это мощный профессиональный инструмент для автоматизации функционального тестирования ПО через графический интерфейс пользователя

Page 4: Jubula – TDD UI QA Automation Tool

История

• Разработан в немецкой компании Bredex• Основан на коммерческом инструменте GUIDancer• Развивается сообществом Eclipse

Page 5: Jubula – TDD UI QA Automation Tool

• Является standalone-инструментом (существует также плагин к Eclipse)• Поддерживает автоматизацию десктопных

приложений: включая Java (Swing, SWT/RCP/GEF, JavaFX), native Win32, .Net, HTML, iOS• Платформы: Windows, Linux/Unix и Mac• Полностью бесплатный и open-source

Что характерно

Page 6: Jubula – TDD UI QA Automation Tool

• Клиент – интегрированная среда для разработки, запуска и анализа тестов (либо плагин к Eclipse)• Сервер (AUT Agent) – сервис для запуска AUT-приложения

и контроля за выполнением тестов• Поддерживается интерфейс командной строки для

интеграции в Continuous Integration системы

* AUT – Application Under Test

Архитектура Jubula

Page 7: Jubula – TDD UI QA Automation Tool

Только соответствие поддерживаемым технологиям:• Не нужен доступ к исходным кодам• Не нужны модификации исполняемых файлов

Что требуется от AUT-приложения

Page 8: Jubula – TDD UI QA Automation Tool

• Повторное использование тестов + рефакторинг• Слой абстракций для UI-элементов• Библиотека готовых действий, “ожидалок” и проверок• Не требует навыков программирования• Record-play есть, но не рекомендуется к использованию• Test-Driven Development• Data-Driven Testing

Идеология Jubula

Page 9: Jubula – TDD UI QA Automation Tool

Что же такое Test-Driven Development

Разработка через тестирование: сначала пишутся тесты, затем реализуется соответствующий функционал

«Разработка через тестирование поощряет простой дизайн и внушает уверенность»

Page 10: Jubula – TDD UI QA Automation Tool

Цикл Test-Driven Development

• Пишем тест: конец немного предсказуем – FAIL (Red)• Пишем код до успешного прохождения тестов (Green)• Приводим код в должное состояние (Refactor)

Page 11: Jubula – TDD UI QA Automation Tool

• Раннее фиксирование требований через тесты• Знакомство бизнес-специалистов с процессами разработки• Поощряет взаимодействие между заказчиком,

разработчиками, тестировщиками• Идеально подходит под agile-процессы

Почему важен TDD через UI?

Page 12: Jubula – TDD UI QA Automation Tool

Data-Driven Testing – это • отвязывание данных, используемых для тестов, от самих тестов• ожидаемый результат обычно идет вместе с данными

Data-Driven Testing

Легко поддерживать и расширять тестовые данные

Page 13: Jubula – TDD UI QA Automation Tool

Итак

Рассмотрим типовой процесс создания теста

Page 14: Jubula – TDD UI QA Automation Tool

Шаг 1

• Создаем тестовый проект

Page 15: Jubula – TDD UI QA Automation Tool

Шаг 1

• Задаем имя проекта

Page 16: Jubula – TDD UI QA Automation Tool

Шаг 1

• Выбираем тулкит в зависимости от типа приложения

Page 17: Jubula – TDD UI QA Automation Tool

Шаг 1

• Выбираем языки, используемые для тестовых данных

Page 18: Jubula – TDD UI QA Automation Tool

Шаг 1

• Указываем название приложения (произвольное)

Page 19: Jubula – TDD UI QA Automation Tool

Шаг 1

• Вносим уникальный идентификатор приложения для проекта

• Выбираем директорию с приложением

• Выбираем исполняемый файл

Page 20: Jubula – TDD UI QA Automation Tool

Шаг 2

• Создаем Тест-кейс

• Задаем имя кейса

• Открываем кейс двойным кликом

Page 21: Jubula – TDD UI QA Automation Tool

Шаг 3

Теперь нужно добавить степы в свой кейс:

• Первым степом открываем приложение

• Степы добавляются обычным перетаскиванием

Page 22: Jubula – TDD UI QA Automation Tool

Шаг 3

• Теперь нужно добавить к степу параметры

• Имя степа (для удобства использования)

• Метод активации “TITLEBAR” = клик по титульной строке приложения

Page 23: Jubula – TDD UI QA Automation Tool

Шаг 3

• Таким же образом добавляем все нужные степы• В параметрах можно

использовать переменные, для использования Data-Driven подхода (=<ИМЯ ПЕРЕМЕННОЙ>)• В проверке необходимо

задать оператор сравнения

Page 24: Jubula – TDD UI QA Automation Tool

Шаг 3

Добавляем данные:• Данные добавляются для всех выбранных языков• Для каждого набора данных можно задать свой

оператор сравнения

Page 25: Jubula – TDD UI QA Automation Tool

Шаг 3

Добавляем имена использованных компонентов:

• Поочередно проходя по степам задаем имена компонентов, с которыми будут проводиться действия, в области “Component Names”

Page 26: Jubula – TDD UI QA Automation Tool

Шаг 4

Теперь мы готовы создать тест-сьют……с любым удобным именем

Page 27: Jubula – TDD UI QA Automation Tool

Шаг 4

Старый добрый drag-n-drop нашего кейса в область редактирования тест-сьюта:

Page 28: Jubula – TDD UI QA Automation Tool

Шаг 4

Тест готов! А красный крест на сьюте говорит о том, что функционал не реализован, а значит мы на стадии “Red”

Page 29: Jubula – TDD UI QA Automation Tool

Шаг 5

После реализации функционала делаем маппинг:

Page 30: Jubula – TDD UI QA Automation Tool

Шаг 5

• Для этого запускаем агент

• Запускаем приложение

• Стартуем маппер

Page 31: Jubula – TDD UI QA Automation Tool

Шаг 5

• Маппер подсвечивает элементы зеленым цветом

• Сочетанием Ctrl+Shift+Q добавляем элемент в список

• Перетаскиваем наш объект из кейсов на мап

Page 32: Jubula – TDD UI QA Automation Tool

Шаг 5

• Повторяем действие для всех элементов

Page 33: Jubula – TDD UI QA Automation Tool

Шаг 6

Запускаем тесты

*Внимание! Приложение должно быть запущено с подключенным агентом, как мы делали перед маппингом

Page 34: Jubula – TDD UI QA Automation Tool

Шаг 6

Результаты:

Fail, Something wrong!Pass, Ok!

Сохраняются скриншоты

Page 35: Jubula – TDD UI QA Automation Tool

• Тестовые проекты и результаты хранятся во встроенной базе данных• При желании встроенная база заменяется на внешнюю• Возможен экспорт в XML формат для хранения в системе

контроля версий

Хранение тестов и результатов

Page 36: Jubula – TDD UI QA Automation Tool

Tips and tricks• Создавайте отдельные «ключевые слова» для

повторяющихся действий, это увеличит повторное использование действий (Используйте Extract Test Case)

• Удобно иметь отдельный тест-сьют с тестами по функционалу, который еще не реализован (Red). По мере реализации функционала тесты оттуда необходимо будет переносить в Regression

• Структурируйте эти «ключевые слова», располагая их в именованных папках по категориям

• Максимально используйте возможности Data-Driven Testing

Page 37: Jubula – TDD UI QA Automation Tool

Аналоги

Автоматизация десктопных приложений

Возможность писать как keyword, так и скриптовые тесты

Мощный встроенный mapping-tool

Нет поддержки TDD

ОЧЕНЬ дорогая лицензия

Page 38: Jubula – TDD UI QA Automation Tool

Аналоги

Автоматизация десктопных приложений

«Свободная» архитектура тестового проекта

Только скриптовые тесты, нет Keyword-driven

Ограниченная поддержка Java-приложений

Платная лицензия

Page 39: Jubula – TDD UI QA Automation Tool

Аналоги

Автоматизация десктопных приложений

Простой Basic-подобный синтаксис

Тесты – просто набор скриптов без архитектуры

Нет встроенной валидации

Бесплатный

Page 40: Jubula – TDD UI QA Automation Tool

Аналоги

Автоматизация десктопных приложений

Поддержка Record-play

Базирование на Record-play

Платная лицензия

Поддержка различных платформ, включая мобильные

Page 41: Jubula – TDD UI QA Automation Tool

Итого: плюсы

Jubula это:

• Собственный UI, встроенная база данных для хранения тестов и результатов, встроенная поддержка DDT, включая использование как встроенных, так и внешних источников данных, например .xls-файлы

• Полноценный самостоятельный инструмент автоматизации, не зависящий от сторонних библиотек, инструментов, языков, IDE

• Бесплатная лицензия

• Встроенная поддержка TDD: маппинг объектов после написания тестовых сценариев

Page 42: Jubula – TDD UI QA Automation Tool

Итого: минусы

Ложка дёгтя:

• Предопределенная архитектура проекта – на больших проектах со временем образуется нагромождение степов и тест-кейсов

• Тесты не портируются и не конвертируются в код

• UI и flow, требующие привыкания

• Ручная интеграция в Continuous Integration

Page 43: Jubula – TDD UI QA Automation Tool

Используйте Jubula, если:• нужен бесплатный инструмент• нужна базовая функциональная автоматизация через UI• хотите быстро начать автоматизацию• хотите по минимуму заниматься тестовой инфраструктурой• хотите получить плюсы TDD и DDT• хотите чтобы тесты мог разрабатывать нетехнический специалист

В итоге

Page 44: Jubula – TDD UI QA Automation Tool

Спасибо! Вопросы?

Антон Наумович[email protected]: dpi.naumovich