SlideShare a Scribd company logo
Jubula – TDD UI QA Automation tool
Антон Наумович
DPI Solutions
О себе
Антон Наумович
Более 10 лет опыта в IT
• C++ тимлид и архитектор в LogicNow
• В DPI Solutions курирую проекты по автоматизации
• В прошлом – разработчик в Microsoft, команда
Hyper-V (Windows Server)
• Активист сообщества автоматизаторов COMAQA.BY
Что такое Jubula
Jubula – это мощный профессиональный инструмент
для автоматизации функционального тестирования ПО
через графический интерфейс пользователя
История
• Разработан в немецкой компании Bredex
• Основан на коммерческом инструменте GUIDancer
• Развивается сообществом Eclipse
• Является standalone-инструментом (существует
также плагин к Eclipse)
• Поддерживает автоматизацию десктопных
приложений: включая Java (Swing, SWT/RCP/GEF,
JavaFX), native Win32, .Net, HTML, iOS
• Платформы: Windows, Linux/Unix и Mac
• Полностью бесплатный и open-source
Что характерно
• Клиент – интегрированная среда для разработки, запуска
и анализа тестов (либо плагин к Eclipse)
• Сервер (AUT Agent) – сервис для запуска AUT-приложения
и контроля за выполнением тестов
• Поддерживается интерфейс командной строки для
интеграции в Continuous Integration системы
* AUT – Application Under Test
Архитектура Jubula
Только соответствие поддерживаемым технологиям:
• Не нужен доступ к исходным кодам
• Не нужны модификации исполняемых файлов
Что требуется от AUT-приложения
• Повторное использование тестов + рефакторинг
• Слой абстракций для UI-элементов
• Библиотека готовых действий, “ожидалок” и проверок
• Не требует навыков программирования
• Record-play есть, но не рекомендуется к использованию
• Test-Driven Development
• Data-Driven Testing
Идеология Jubula
Что же такое Test-Driven Development
Разработка через тестирование: сначала пишутся
тесты, затем реализуется соответствующий
функционал
«Разработка через тестирование поощряет
простой дизайн и внушает уверенность»
Цикл Test-Driven Development
• Пишем тест: конец немного предсказуем – FAIL (Red)
• Пишем код до успешного прохождения тестов (Green)
• Приводим код в должное состояние (Refactor)
• Раннее фиксирование требований через тесты
• Знакомство бизнес-специалистов с процессами разработки
• Поощряет взаимодействие между заказчиком,
разработчиками, тестировщиками
• Идеально подходит под agile-процессы
Почему важен TDD через UI?
Data-Driven Testing – это
• отвязывание данных, используемых для тестов, от самих тестов
• ожидаемый результат обычно идет вместе с данными
Data-Driven Testing
Легко поддерживать и расширять тестовые данные
Итак
Рассмотрим типовой процесс создания теста
Шаг 1
• Создаем тестовый
проект
Шаг 1
• Задаем имя проекта
Шаг 1
• Выбираем тулкит в
зависимости от типа
приложения
Шаг 1
• Выбираем языки,
используемые для
тестовых данных
Шаг 1
• Указываем название
приложения
(произвольное)
Шаг 1
• Вносим уникальный
идентификатор
приложения для проекта
• Выбираем директорию с
приложением
• Выбираем исполняемый
файл
Шаг 2
• Создаем Тест-кейс
• Задаем имя кейса
• Открываем кейс
двойным кликом
Шаг 3
Теперь нужно добавить степы в свой кейс:
• Первым степом
открываем
приложение
• Степы добавляются
обычным
перетаскиванием
Шаг 3
• Теперь нужно
добавить к степу
параметры
• Имя степа (для
удобства
использования)
• Метод активации
“TITLEBAR” = клик
по титульной
строке приложения
Шаг 3
• Таким же образом добавляем
все нужные степы
• В параметрах можно
использовать переменные,
для использования Data-
Driven подхода (=<ИМЯ
ПЕРЕМЕННОЙ>)
• В проверке необходимо
задать оператор сравнения
Шаг 3
Добавляем данные:
• Данные добавляются для всех выбранных языков
• Для каждого набора данных можно задать свой
оператор сравнения
Шаг 3
Добавляем имена использованных компонентов:
• Поочередно проходя по степам задаем имена
компонентов, с которыми будут проводиться действия,
в области “Component Names”
Шаг 4
Теперь мы готовы
создать тест-сьют…
…с любым удобным
именем
Шаг 4
Старый добрый drag-n-drop нашего кейса в область
редактирования тест-сьюта:
Шаг 4
Тест готов! А красный крест на сьюте говорит о том, что
функционал не реализован, а значит мы на стадии “Red”
Шаг 5
После реализации
функционала делаем
маппинг:
Шаг 5
• Для этого запускаем агент
• Запускаем приложение
• Стартуем маппер
Шаг 5
• Маппер подсвечивает элементы зеленым цветом
• Сочетанием
Ctrl+Shift+Q
добавляем
элемент в список
• Перетаскиваем
наш объект из
кейсов на мап
Шаг 5
• Повторяем действие для всех элементов
Шаг 6
Запускаем тесты
*Внимание! Приложение должно быть запущено с
подключенным агентом, как мы делали перед
маппингом
Шаг 6
Результаты:
Fail, Something wrong!Pass, Ok!
Сохраняются скриншоты
• Тестовые проекты и результаты хранятся во встроенной
базе данных
• При желании встроенная база заменяется на внешнюю
• Возможен экспорт в XML формат для хранения в системе
контроля версий
Хранение тестов и результатов
Tips and tricks
• Создавайте отдельные «ключевые слова» для
повторяющихся действий, это увеличит повторное
использование действий (Используйте Extract Test Case)
• Удобно иметь отдельный тест-сьют с тестами по
функционалу, который еще не реализован (Red). По мере
реализации функционала тесты оттуда необходимо будет
переносить в Regression
• Структурируйте эти «ключевые слова», располагая их в
именованных папках по категориям
• Максимально используйте возможности Data-Driven
Testing
Аналоги
Автоматизация десктопных приложений
Возможность писать как keyword, так и скриптовые тесты
Мощный встроенный mapping-tool
Нет поддержки TDD
ОЧЕНЬ дорогая лицензия
Аналоги
Автоматизация десктопных приложений
«Свободная» архитектура тестового проекта
Только скриптовые тесты, нет Keyword-driven
Ограниченная поддержка Java-приложений
Платная лицензия
Аналоги
Автоматизация десктопных приложений
Простой Basic-подобный синтаксис
Тесты – просто набор скриптов без архитектуры
Нет встроенной валидации
Бесплатный
Аналоги
Автоматизация десктопных приложений
Поддержка Record-play
Базирование на Record-play
Платная лицензия
Поддержка различных платформ, включая мобильные
Итого: плюсы
Jubula это:
• Собственный UI, встроенная база данных для хранения
тестов и результатов, встроенная поддержка DDT, включая
использование как встроенных, так и внешних источников
данных, например .xls-файлы
• Полноценный самостоятельный инструмент
автоматизации, не зависящий от сторонних библиотек,
инструментов, языков, IDE
• Бесплатная лицензия
• Встроенная поддержка TDD: маппинг объектов после
написания тестовых сценариев
Итого: минусы
Ложка дёгтя:
• Предопределенная архитектура проекта – на больших
проектах со временем образуется нагромождение степов и
тест-кейсов
• Тесты не портируются и не конвертируются в код
• UI и flow, требующие привыкания
• Ручная интеграция в Continuous Integration
Используйте Jubula, если:
• нужен бесплатный инструмент
• нужна базовая функциональная автоматизация через UI
• хотите быстро начать автоматизацию
• хотите по минимуму заниматься тестовой инфраструктурой
• хотите получить плюсы TDD и DDT
• хотите чтобы тесты мог разрабатывать нетехнический специалист
В итоге
Спасибо! Вопросы?
Антон Наумович
naumovich@dpi.solutions
skype: dpi.naumovich
Ad

Recommended

QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QAFest
 
Great functional testing with WebDriver and Thucydides
Great functional testing with WebDriver and Thucydides
Mikalai Alimenkou
 
Способы организаций больших Java проектов по Автоматизированному тестированию
Способы организаций больших Java проектов по Автоматизированному тестированию
COMAQA.BY
 
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
COMAQA.BY
 
Новый процесс тестирования на "старом" проекте
Новый процесс тестирования на "старом" проекте
SQALab
 
Do you know what you are testing?
Do you know what you are testing?
Mikalai Alimenkou
 
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
COMAQA.BY
 
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайников
QA Fest 2016. Андрей Мясников. Тест-дизайн для чайников
QAFest
 
10 принципов автоматизации, которые я не предам
10 принципов автоматизации, которые я не предам
SQALab
 
Денис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в Яндексе
Yandex
 
Yandex allure
Yandex allure
Anton Shapin
 
Гибкое тестирование
Гибкое тестирование
Rina Uzhevko
 
Mva stf module 5 - rus
Mva stf module 5 - rus
Maxim Shaptala
 
Quality Assurance vs Quality Control - так в чем же заключается работа специа...
Quality Assurance vs Quality Control - так в чем же заключается работа специа...
COMAQA.BY
 
Agile Testing & Agile Tester
Agile Testing & Agile Tester
COMAQA.BY
 
TestLink
TestLink
ISsoft
 
Темная сторона метрик
Темная сторона метрик
Roman Ivliev
 
SoapUI one key to all doors
SoapUI one key to all doors
Yegor Maksymchuk
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестов
SQALab
 
Тимур Шевляков
Тимур Шевляков
CodeFest
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
SQALab
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIs
SQALab
 
Mva stf module 1 - rus
Mva stf module 1 - rus
Maxim Shaptala
 
Что ждет тестировщиков при организации процесса тестирования Enterprise-проду...
Что ждет тестировщиков при организации процесса тестирования Enterprise-проду...
SQALab
 
Continious integration-Automated Testing-Solid-Agile
Continious integration-Automated Testing-Solid-Agile
Kairat Yussupov
 
QA Fest 2017. Иван Пашко. Антипаттерны и запахи в автоматизации тестирования
QA Fest 2017. Иван Пашко. Антипаттерны и запахи в автоматизации тестирования
QAFest
 
QA Fes 2016. Василий Сливка. 10 лучших практик для тестирования мобильных при...
QA Fes 2016. Василий Сливка. 10 лучших практик для тестирования мобильных при...
QAFest
 
Test design techniques basics
Test design techniques basics
Artem Bykovets
 
Bdd with java using concordion and selenium ui tests
Bdd with java using concordion and selenium ui tests
automated-testing.info
 
Bdd with java_using_concordion_and_selenium_ui_tests
Bdd with java_using_concordion_and_selenium_ui_tests
Oleksiy Rezchykov
 

More Related Content

What's hot (20)

10 принципов автоматизации, которые я не предам
10 принципов автоматизации, которые я не предам
SQALab
 
Денис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в Яндексе
Yandex
 
Yandex allure
Yandex allure
Anton Shapin
 
Гибкое тестирование
Гибкое тестирование
Rina Uzhevko
 
Mva stf module 5 - rus
Mva stf module 5 - rus
Maxim Shaptala
 
Quality Assurance vs Quality Control - так в чем же заключается работа специа...
Quality Assurance vs Quality Control - так в чем же заключается работа специа...
COMAQA.BY
 
Agile Testing & Agile Tester
Agile Testing & Agile Tester
COMAQA.BY
 
TestLink
TestLink
ISsoft
 
Темная сторона метрик
Темная сторона метрик
Roman Ivliev
 
SoapUI one key to all doors
SoapUI one key to all doors
Yegor Maksymchuk
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестов
SQALab
 
Тимур Шевляков
Тимур Шевляков
CodeFest
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
SQALab
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIs
SQALab
 
Mva stf module 1 - rus
Mva stf module 1 - rus
Maxim Shaptala
 
Что ждет тестировщиков при организации процесса тестирования Enterprise-проду...
Что ждет тестировщиков при организации процесса тестирования Enterprise-проду...
SQALab
 
Continious integration-Automated Testing-Solid-Agile
Continious integration-Automated Testing-Solid-Agile
Kairat Yussupov
 
QA Fest 2017. Иван Пашко. Антипаттерны и запахи в автоматизации тестирования
QA Fest 2017. Иван Пашко. Антипаттерны и запахи в автоматизации тестирования
QAFest
 
QA Fes 2016. Василий Сливка. 10 лучших практик для тестирования мобильных при...
QA Fes 2016. Василий Сливка. 10 лучших практик для тестирования мобильных при...
QAFest
 
Test design techniques basics
Test design techniques basics
Artem Bykovets
 
10 принципов автоматизации, которые я не предам
10 принципов автоматизации, которые я не предам
SQALab
 
Денис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в Яндексе
Yandex
 
Гибкое тестирование
Гибкое тестирование
Rina Uzhevko
 
Mva stf module 5 - rus
Mva stf module 5 - rus
Maxim Shaptala
 
Quality Assurance vs Quality Control - так в чем же заключается работа специа...
Quality Assurance vs Quality Control - так в чем же заключается работа специа...
COMAQA.BY
 
Agile Testing & Agile Tester
Agile Testing & Agile Tester
COMAQA.BY
 
TestLink
TestLink
ISsoft
 
Темная сторона метрик
Темная сторона метрик
Roman Ivliev
 
SoapUI one key to all doors
SoapUI one key to all doors
Yegor Maksymchuk
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестов
SQALab
 
Тимур Шевляков
Тимур Шевляков
CodeFest
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
SQALab
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIs
SQALab
 
Mva stf module 1 - rus
Mva stf module 1 - rus
Maxim Shaptala
 
Что ждет тестировщиков при организации процесса тестирования Enterprise-проду...
Что ждет тестировщиков при организации процесса тестирования Enterprise-проду...
SQALab
 
Continious integration-Automated Testing-Solid-Agile
Continious integration-Automated Testing-Solid-Agile
Kairat Yussupov
 
QA Fest 2017. Иван Пашко. Антипаттерны и запахи в автоматизации тестирования
QA Fest 2017. Иван Пашко. Антипаттерны и запахи в автоматизации тестирования
QAFest
 
QA Fes 2016. Василий Сливка. 10 лучших практик для тестирования мобильных при...
QA Fes 2016. Василий Сливка. 10 лучших практик для тестирования мобильных при...
QAFest
 
Test design techniques basics
Test design techniques basics
Artem Bykovets
 

Similar to Jubula – TDD UI QA Automation Tool (17)

Bdd with java using concordion and selenium ui tests
Bdd with java using concordion and selenium ui tests
automated-testing.info
 
Bdd with java_using_concordion_and_selenium_ui_tests
Bdd with java_using_concordion_and_selenium_ui_tests
Oleksiy Rezchykov
 
Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?
Dmitry Buzdin
 
Agile Java Development компания JazzTeam - Техническая презентация Xml2Selenium
Agile Java Development компания JazzTeam - Техническая презентация Xml2Selenium
jazzteam
 
Solit 2013, Разбор конкретного примера – продукта XML2Selenium, Горячко Дмитрий
Solit 2013, Разбор конкретного примера – продукта XML2Selenium, Горячко Дмитрий
solit
 
Performance Test Driven Development (CEE SERC 2013 Moscow)
Performance Test Driven Development (CEE SERC 2013 Moscow)
aragozin
 
JS Lab2017_Евгений Сафронов_Тестирование Javascript кода. Инструменты, практи...
JS Lab2017_Евгений Сафронов_Тестирование Javascript кода. Инструменты, практи...
GeeksLab Odessa
 
Автоматизация.pptx
Автоматизация.pptx
MadirimovShohrux
 
5 колчинская
5 колчинская
qasib
 
Automation Overview
Automation Overview
KiraKeiss
 
Автоматизированное тестирование мобильных приложений
Автоматизированное тестирование мобильных приложений
Транслируем.бел
 
Тестирование осень 2013 лекция 3
Тестирование осень 2013 лекция 3
Technopark
 
Средства автоматизации тестирования десктопных приложений. Сравнительный анализ
Средства автоматизации тестирования десктопных приложений. Сравнительный анализ
COMAQA.BY
 
Дело тестера боится: как в опытных руках могут заиграть Java и TestNg
Дело тестера боится: как в опытных руках могут заиграть Java и TestNg
IT61
 
QAFest. Роль тестирования в Devops
QAFest. Роль тестирования в Devops
Анастасия Асеева
 
Тестирование весна 2014 смешанное занятие 1
Тестирование весна 2014 смешанное занятие 1
Technopark
 
Victor Kuliamin.CSEDays
Victor Kuliamin.CSEDays
LiloSEA
 
Bdd with java using concordion and selenium ui tests
Bdd with java using concordion and selenium ui tests
automated-testing.info
 
Bdd with java_using_concordion_and_selenium_ui_tests
Bdd with java_using_concordion_and_selenium_ui_tests
Oleksiy Rezchykov
 
Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?
Dmitry Buzdin
 
Agile Java Development компания JazzTeam - Техническая презентация Xml2Selenium
Agile Java Development компания JazzTeam - Техническая презентация Xml2Selenium
jazzteam
 
Solit 2013, Разбор конкретного примера – продукта XML2Selenium, Горячко Дмитрий
Solit 2013, Разбор конкретного примера – продукта XML2Selenium, Горячко Дмитрий
solit
 
Performance Test Driven Development (CEE SERC 2013 Moscow)
Performance Test Driven Development (CEE SERC 2013 Moscow)
aragozin
 
JS Lab2017_Евгений Сафронов_Тестирование Javascript кода. Инструменты, практи...
JS Lab2017_Евгений Сафронов_Тестирование Javascript кода. Инструменты, практи...
GeeksLab Odessa
 
Автоматизация.pptx
Автоматизация.pptx
MadirimovShohrux
 
5 колчинская
5 колчинская
qasib
 
Automation Overview
Automation Overview
KiraKeiss
 
Автоматизированное тестирование мобильных приложений
Автоматизированное тестирование мобильных приложений
Транслируем.бел
 
Тестирование осень 2013 лекция 3
Тестирование осень 2013 лекция 3
Technopark
 
Средства автоматизации тестирования десктопных приложений. Сравнительный анализ
Средства автоматизации тестирования десктопных приложений. Сравнительный анализ
COMAQA.BY
 
Дело тестера боится: как в опытных руках могут заиграть Java и TestNg
Дело тестера боится: как в опытных руках могут заиграть Java и TestNg
IT61
 
Тестирование весна 2014 смешанное занятие 1
Тестирование весна 2014 смешанное занятие 1
Technopark
 
Victor Kuliamin.CSEDays
Victor Kuliamin.CSEDays
LiloSEA
 
Ad

More from COMAQA.BY (20)

Тестирование аналогов инсталлируемых приложений (Android Instant Apps, Progre...
Тестирование аналогов инсталлируемых приложений (Android Instant Apps, Progre...
COMAQA.BY
 
Anton semenchenko. Comaqa Spring 2018. Nine circles of hell. Antipatterns in ...
Anton semenchenko. Comaqa Spring 2018. Nine circles of hell. Antipatterns in ...
COMAQA.BY
 
Vivien Ibironke Ibiyemi. Comaqa Spring 2018. Enhance your Testing Skills With...
Vivien Ibironke Ibiyemi. Comaqa Spring 2018. Enhance your Testing Skills With...
COMAQA.BY
 
Roman Soroka. Comaqa Spring 2018. Глобальный обзор процесса QA и его важность
Roman Soroka. Comaqa Spring 2018. Глобальный обзор процесса QA и его важность
COMAQA.BY
 
Roman Iovlev. Comaqa Spring 2018. Архитектура Open Source решений для автомат...
Roman Iovlev. Comaqa Spring 2018. Архитектура Open Source решений для автомат...
COMAQA.BY
 
Vladimir Polyakov. Comaqa Spring 2018. Особенности тестирования ПО в предметн...
Vladimir Polyakov. Comaqa Spring 2018. Особенности тестирования ПО в предметн...
COMAQA.BY
 
Kimmo Hakala. Comaqa Spring 2018. Challenges and good QA practices in softwar...
Kimmo Hakala. Comaqa Spring 2018. Challenges and good QA practices in softwar...
COMAQA.BY
 
Дмитрий Лемешко. Comaqa Spring 2018. Continuous mobile automation in build pi...
Дмитрий Лемешко. Comaqa Spring 2018. Continuous mobile automation in build pi...
COMAQA.BY
 
Ivan Katunov. Comaqa Spring 2018. Test Design and Automation for Rest API.
Ivan Katunov. Comaqa Spring 2018. Test Design and Automation for Rest API.
COMAQA.BY
 
Vadim Zubovich. Comaqa Spring 2018. Красивое тестирование производительности.
Vadim Zubovich. Comaqa Spring 2018. Красивое тестирование производительности.
COMAQA.BY
 
Alexander Andelkovic. Comaqa Spring 2018. Using Artificial Intelligence to Te...
Alexander Andelkovic. Comaqa Spring 2018. Using Artificial Intelligence to Te...
COMAQA.BY
 
Моя роль в конфликте
Моя роль в конфликте
COMAQA.BY
 
Организация приемочного тестирования силами матерых тестировщиков
Организация приемочного тестирования силами матерых тестировщиков
COMAQA.BY
 
Развитие или смерть
Развитие или смерть
COMAQA.BY
 
Системный взгляд на параллельный запуск Selenium тестов
Системный взгляд на параллельный запуск Selenium тестов
COMAQA.BY
 
Эффективная работа с рутинными задачами
Эффективная работа с рутинными задачами
COMAQA.BY
 
Как стать синьором
Как стать синьором
COMAQA.BY
 
Open your mind for OpenSource
Open your mind for OpenSource
COMAQA.BY
 
JDI 2.0. Not only UI testing
JDI 2.0. Not only UI testing
COMAQA.BY
 
Out of box page object design pattern, java
Out of box page object design pattern, java
COMAQA.BY
 
Тестирование аналогов инсталлируемых приложений (Android Instant Apps, Progre...
Тестирование аналогов инсталлируемых приложений (Android Instant Apps, Progre...
COMAQA.BY
 
Anton semenchenko. Comaqa Spring 2018. Nine circles of hell. Antipatterns in ...
Anton semenchenko. Comaqa Spring 2018. Nine circles of hell. Antipatterns in ...
COMAQA.BY
 
Vivien Ibironke Ibiyemi. Comaqa Spring 2018. Enhance your Testing Skills With...
Vivien Ibironke Ibiyemi. Comaqa Spring 2018. Enhance your Testing Skills With...
COMAQA.BY
 
Roman Soroka. Comaqa Spring 2018. Глобальный обзор процесса QA и его важность
Roman Soroka. Comaqa Spring 2018. Глобальный обзор процесса QA и его важность
COMAQA.BY
 
Roman Iovlev. Comaqa Spring 2018. Архитектура Open Source решений для автомат...
Roman Iovlev. Comaqa Spring 2018. Архитектура Open Source решений для автомат...
COMAQA.BY
 
Vladimir Polyakov. Comaqa Spring 2018. Особенности тестирования ПО в предметн...
Vladimir Polyakov. Comaqa Spring 2018. Особенности тестирования ПО в предметн...
COMAQA.BY
 
Kimmo Hakala. Comaqa Spring 2018. Challenges and good QA practices in softwar...
Kimmo Hakala. Comaqa Spring 2018. Challenges and good QA practices in softwar...
COMAQA.BY
 
Дмитрий Лемешко. Comaqa Spring 2018. Continuous mobile automation in build pi...
Дмитрий Лемешко. Comaqa Spring 2018. Continuous mobile automation in build pi...
COMAQA.BY
 
Ivan Katunov. Comaqa Spring 2018. Test Design and Automation for Rest API.
Ivan Katunov. Comaqa Spring 2018. Test Design and Automation for Rest API.
COMAQA.BY
 
Vadim Zubovich. Comaqa Spring 2018. Красивое тестирование производительности.
Vadim Zubovich. Comaqa Spring 2018. Красивое тестирование производительности.
COMAQA.BY
 
Alexander Andelkovic. Comaqa Spring 2018. Using Artificial Intelligence to Te...
Alexander Andelkovic. Comaqa Spring 2018. Using Artificial Intelligence to Te...
COMAQA.BY
 
Моя роль в конфликте
Моя роль в конфликте
COMAQA.BY
 
Организация приемочного тестирования силами матерых тестировщиков
Организация приемочного тестирования силами матерых тестировщиков
COMAQA.BY
 
Развитие или смерть
Развитие или смерть
COMAQA.BY
 
Системный взгляд на параллельный запуск Selenium тестов
Системный взгляд на параллельный запуск Selenium тестов
COMAQA.BY
 
Эффективная работа с рутинными задачами
Эффективная работа с рутинными задачами
COMAQA.BY
 
Как стать синьором
Как стать синьором
COMAQA.BY
 
Open your mind for OpenSource
Open your mind for OpenSource
COMAQA.BY
 
JDI 2.0. Not only UI testing
JDI 2.0. Not only UI testing
COMAQA.BY
 
Out of box page object design pattern, java
Out of box page object design pattern, java
COMAQA.BY
 
Ad

Jubula – TDD UI QA Automation Tool

  • 1. Jubula – TDD UI QA Automation tool Антон Наумович DPI Solutions
  • 2. О себе Антон Наумович Более 10 лет опыта в IT • C++ тимлид и архитектор в LogicNow • В DPI Solutions курирую проекты по автоматизации • В прошлом – разработчик в Microsoft, команда Hyper-V (Windows Server) • Активист сообщества автоматизаторов COMAQA.BY
  • 3. Что такое Jubula Jubula – это мощный профессиональный инструмент для автоматизации функционального тестирования ПО через графический интерфейс пользователя
  • 4. История • Разработан в немецкой компании Bredex • Основан на коммерческом инструменте GUIDancer • Развивается сообществом Eclipse
  • 5. • Является standalone-инструментом (существует также плагин к Eclipse) • Поддерживает автоматизацию десктопных приложений: включая Java (Swing, SWT/RCP/GEF, JavaFX), native Win32, .Net, HTML, iOS • Платформы: Windows, Linux/Unix и Mac • Полностью бесплатный и open-source Что характерно
  • 6. • Клиент – интегрированная среда для разработки, запуска и анализа тестов (либо плагин к Eclipse) • Сервер (AUT Agent) – сервис для запуска AUT-приложения и контроля за выполнением тестов • Поддерживается интерфейс командной строки для интеграции в Continuous Integration системы * AUT – Application Under Test Архитектура Jubula
  • 7. Только соответствие поддерживаемым технологиям: • Не нужен доступ к исходным кодам • Не нужны модификации исполняемых файлов Что требуется от AUT-приложения
  • 8. • Повторное использование тестов + рефакторинг • Слой абстракций для UI-элементов • Библиотека готовых действий, “ожидалок” и проверок • Не требует навыков программирования • Record-play есть, но не рекомендуется к использованию • Test-Driven Development • Data-Driven Testing Идеология Jubula
  • 9. Что же такое Test-Driven Development Разработка через тестирование: сначала пишутся тесты, затем реализуется соответствующий функционал «Разработка через тестирование поощряет простой дизайн и внушает уверенность»
  • 10. Цикл Test-Driven Development • Пишем тест: конец немного предсказуем – FAIL (Red) • Пишем код до успешного прохождения тестов (Green) • Приводим код в должное состояние (Refactor)
  • 11. • Раннее фиксирование требований через тесты • Знакомство бизнес-специалистов с процессами разработки • Поощряет взаимодействие между заказчиком, разработчиками, тестировщиками • Идеально подходит под agile-процессы Почему важен TDD через UI?
  • 12. Data-Driven Testing – это • отвязывание данных, используемых для тестов, от самих тестов • ожидаемый результат обычно идет вместе с данными Data-Driven Testing Легко поддерживать и расширять тестовые данные
  • 14. Шаг 1 • Создаем тестовый проект
  • 15. Шаг 1 • Задаем имя проекта
  • 16. Шаг 1 • Выбираем тулкит в зависимости от типа приложения
  • 17. Шаг 1 • Выбираем языки, используемые для тестовых данных
  • 18. Шаг 1 • Указываем название приложения (произвольное)
  • 19. Шаг 1 • Вносим уникальный идентификатор приложения для проекта • Выбираем директорию с приложением • Выбираем исполняемый файл
  • 20. Шаг 2 • Создаем Тест-кейс • Задаем имя кейса • Открываем кейс двойным кликом
  • 21. Шаг 3 Теперь нужно добавить степы в свой кейс: • Первым степом открываем приложение • Степы добавляются обычным перетаскиванием
  • 22. Шаг 3 • Теперь нужно добавить к степу параметры • Имя степа (для удобства использования) • Метод активации “TITLEBAR” = клик по титульной строке приложения
  • 23. Шаг 3 • Таким же образом добавляем все нужные степы • В параметрах можно использовать переменные, для использования Data- Driven подхода (=<ИМЯ ПЕРЕМЕННОЙ>) • В проверке необходимо задать оператор сравнения
  • 24. Шаг 3 Добавляем данные: • Данные добавляются для всех выбранных языков • Для каждого набора данных можно задать свой оператор сравнения
  • 25. Шаг 3 Добавляем имена использованных компонентов: • Поочередно проходя по степам задаем имена компонентов, с которыми будут проводиться действия, в области “Component Names”
  • 26. Шаг 4 Теперь мы готовы создать тест-сьют… …с любым удобным именем
  • 27. Шаг 4 Старый добрый drag-n-drop нашего кейса в область редактирования тест-сьюта:
  • 28. Шаг 4 Тест готов! А красный крест на сьюте говорит о том, что функционал не реализован, а значит мы на стадии “Red”
  • 30. Шаг 5 • Для этого запускаем агент • Запускаем приложение • Стартуем маппер
  • 31. Шаг 5 • Маппер подсвечивает элементы зеленым цветом • Сочетанием Ctrl+Shift+Q добавляем элемент в список • Перетаскиваем наш объект из кейсов на мап
  • 32. Шаг 5 • Повторяем действие для всех элементов
  • 33. Шаг 6 Запускаем тесты *Внимание! Приложение должно быть запущено с подключенным агентом, как мы делали перед маппингом
  • 34. Шаг 6 Результаты: Fail, Something wrong!Pass, Ok! Сохраняются скриншоты
  • 35. • Тестовые проекты и результаты хранятся во встроенной базе данных • При желании встроенная база заменяется на внешнюю • Возможен экспорт в XML формат для хранения в системе контроля версий Хранение тестов и результатов
  • 36. Tips and tricks • Создавайте отдельные «ключевые слова» для повторяющихся действий, это увеличит повторное использование действий (Используйте Extract Test Case) • Удобно иметь отдельный тест-сьют с тестами по функционалу, который еще не реализован (Red). По мере реализации функционала тесты оттуда необходимо будет переносить в Regression • Структурируйте эти «ключевые слова», располагая их в именованных папках по категориям • Максимально используйте возможности Data-Driven Testing
  • 37. Аналоги Автоматизация десктопных приложений Возможность писать как keyword, так и скриптовые тесты Мощный встроенный mapping-tool Нет поддержки TDD ОЧЕНЬ дорогая лицензия
  • 38. Аналоги Автоматизация десктопных приложений «Свободная» архитектура тестового проекта Только скриптовые тесты, нет Keyword-driven Ограниченная поддержка Java-приложений Платная лицензия
  • 39. Аналоги Автоматизация десктопных приложений Простой Basic-подобный синтаксис Тесты – просто набор скриптов без архитектуры Нет встроенной валидации Бесплатный
  • 40. Аналоги Автоматизация десктопных приложений Поддержка Record-play Базирование на Record-play Платная лицензия Поддержка различных платформ, включая мобильные
  • 41. Итого: плюсы Jubula это: • Собственный UI, встроенная база данных для хранения тестов и результатов, встроенная поддержка DDT, включая использование как встроенных, так и внешних источников данных, например .xls-файлы • Полноценный самостоятельный инструмент автоматизации, не зависящий от сторонних библиотек, инструментов, языков, IDE • Бесплатная лицензия • Встроенная поддержка TDD: маппинг объектов после написания тестовых сценариев
  • 42. Итого: минусы Ложка дёгтя: • Предопределенная архитектура проекта – на больших проектах со временем образуется нагромождение степов и тест-кейсов • Тесты не портируются и не конвертируются в код • UI и flow, требующие привыкания • Ручная интеграция в Continuous Integration
  • 43. Используйте Jubula, если: • нужен бесплатный инструмент • нужна базовая функциональная автоматизация через UI • хотите быстро начать автоматизацию • хотите по минимуму заниматься тестовой инфраструктурой • хотите получить плюсы TDD и DDT • хотите чтобы тесты мог разрабатывать нетехнический специалист В итоге

Editor's Notes

  • #4: В книге Стива Макконела “Совершенный код” дается средний процент дефектов, которые можно обнаружить применяя тестирование различных видов (код ревью, статический анализ кода, юнит-тестирование, регрессионное тестирование). Средний процент каждой методики – около 40. Максимальный – до 70. Следовательно если мы хотим достичь качества в 90% и более – нам необходимо пользоваться комбинацией различных видов тестирования. Одним из таких видом является тестирование через интерфейс пользователя.
  • #12: Очень хотелось бы методолгию TDD распространить на UI. Огромное количество проектов сейчас ведется по той или иной agile методологии. Для четкого определения такого понятия как Definition of Done настоятельно рекомендуется иметь high level acceptance test для каждого куска функционала. Этот acceptance test потом попадает в регрессию. В условиях нехватки ресурсов зачастую не хватает людей для написания автотестов. А что, если дать возможность Product Owner-у фиксировать поведение UI через разработку тестов? Убиваем много зайцев – Часть сделанной работы по автоматизации Фиксация требований UI обдумывается более вдумчиво Люди от бизнеса получают возможность непосредственно участвовать в разработке, делать что-то своими руками.
  • #44: На разных платформах Запускать параллельно Запускать на клауде