SlideShare ist ein Scribd-Unternehmen logo
1 von 33
Software quality assurance days
21 Международная конференция
по вопросам качества ПО
sqadays.com
Москва. 26–27 мая 2017
Денис Марковцев
Inflectra Corporation. Москва, Россия
Автоматизация UI тестирования в
неконтролируемо улучшаемой внешней среде
2Автоматизация UI тестирования в неконтролируемо улучшаемой внешней среде
инструменты
для разработчиков и
тестировщиков
3Автоматизация UI тестирования в неконтролируемо улучшаемой внешней среде
инструмент
для автоматизации
тестирования UI
Desktop. Web. Mobile.
4Автоматизация UI тестирования в неконтролируемо улучшаемой внешней среде
5Автоматизация UI тестирования в неконтролируемо улучшаемой внешней среде
Реальная задача
Опыт решения
6Автоматизация UI тестирования в неконтролируемо улучшаемой внешней среде
Задача реальная
Пример демонстрационный
Почему?
7Автоматизация UI тестирования в неконтролируемо улучшаемой внешней среде
Outlook плагин для Офис 365
8Автоматизация UI тестирования в неконтролируемо улучшаемой внешней среде
Работает в
десктоп Outlook
и
9Автоматизация UI тестирования в неконтролируемо улучшаемой внешней среде
Зачем тестировать UI?
Есть ли необходимость?
10Автоматизация UI тестирования в неконтролируемо улучшаемой внешней среде
Внешняя среда
меняется
11Автоматизация UI тестирования в неконтролируемо улучшаемой внешней среде
Плагин
не загружается
12Автоматизация UI тестирования в неконтролируемо улучшаемой внешней среде
Плагин отображается
некорректно
13Автоматизация UI тестирования в неконтролируемо улучшаемой внешней среде
Приложение Город Тип клиента Результат
Браузер Нью Йорк платный работает
Браузер Гонконг пробный не работает
Outlook Москва пробный работает
Outlook Лондон платный не работает
Зависимость от типа клиента и
его географического положения
14Автоматизация UI тестирования в неконтролируемо улучшаемой внешней среде
Матрица контролирует нас
15Автоматизация UI тестирования в неконтролируемо улучшаемой внешней среде
Внешняя среда постоянно
улучшается
и
мы не можем это
контролировать
16Автоматизация UI тестирования в неконтролируемо улучшаемой внешней среде
Важна скорость реакции
17Автоматизация UI тестирования в неконтролируемо улучшаемой внешней среде
Автоматические UI тесты
нужны
18Автоматизация UI тестирования в неконтролируемо улучшаемой внешней среде
19Автоматизация UI тестирования в неконтролируемо улучшаемой внешней среде
Outlook плагин - веб
приложение,
даже в десктоп версии
20Автоматизация UI тестирования в неконтролируемо улучшаемой внешней среде
//span[@class='badge ng-binding']
21Автоматизация UI тестирования в неконтролируемо улучшаемой внешней среде
Локаторы
Десктоп: контейнер IE XPATH
Браузер: xpath_to_frame XPATH
22Автоматизация UI тестирования в неконтролируемо улучшаемой внешней среде
Одни и те же тесты для
Outlook и браузеров
23Автоматизация UI тестирования в неконтролируемо улучшаемой внешней среде
Загрузка писем
Запуск почтового клиента
Авторизация
Открытие письма
Активация плагина
Тест
Завершение процесса
24Автоматизация UI тестирования в неконтролируемо улучшаемой внешней среде
Microsoft Active Accessibility
UI Automation
Managed
Java Access Bridge
25Автоматизация UI тестирования в неконтролируемо улучшаемой внешней среде
Немного деталей
26Автоматизация UI тестирования в неконтролируемо улучшаемой внешней среде
SeS('Mail_Folders')
.DoClickNode(userName + ";Inbox");
JavaScript
Объект
Локаторы
Свойства
Методы
27Автоматизация UI тестирования в неконтролируемо улучшаемой внешней среде
«Без программирования»
28Автоматизация UI тестирования в неконтролируемо улучшаемой внешней среде
Результаты проекта тестирования
29Автоматизация UI тестирования в неконтролируемо улучшаемой внешней среде
Другие проекты
30Автоматизация UI тестирования в неконтролируемо улучшаемой внешней среде
Тестовый набор
регрессионное тестирование
31Автоматизация UI тестирования в неконтролируемо улучшаемой внешней среде
Мониторинг
32Автоматизация UI тестирования в неконтролируемо улучшаемой внешней среде
Один инструмент
Один язык
Единый подход
Отчеты
33Автоматизация UI тестирования в неконтролируемо улучшаемой внешней среде
Get Rapise
https://www.inflectra.com/SQADAYS21.aspx
GitHub
https://github.com/Inflectra/office365-outlook-
plugin-ui-testing
Email
denis@inflectra.com

Weitere ähnliche Inhalte

Was ist angesagt?

Нагрузочное тестирование: Нестандартные методы анализа потока данных в прилож...
Нагрузочное тестирование: Нестандартные методы анализа потока данных в прилож...Нагрузочное тестирование: Нестандартные методы анализа потока данных в прилож...
Нагрузочное тестирование: Нестандартные методы анализа потока данных в прилож...SQALab
 
Использование комбинаторного тестирования для мобильных приложений
Использование комбинаторного тестирования для мобильных приложенийИспользование комбинаторного тестирования для мобильных приложений
Использование комбинаторного тестирования для мобильных приложенийSQALab
 
Ядро автоматизации под микро-сервисную архитектуру
Ядро автоматизации под микро-сервисную архитектуруЯдро автоматизации под микро-сервисную архитектуру
Ядро автоматизации под микро-сервисную архитектуруSQALab
 
Практика тестирования web сервисов
Практика тестирования web сервисовПрактика тестирования web сервисов
Практика тестирования web сервисовSQALab
 
Становление процесса автоматизированного тестирования в интернет-магазине ОКЕЙ
Становление процесса автоматизированного тестирования в интернет-магазине ОКЕЙСтановление процесса автоматизированного тестирования в интернет-магазине ОКЕЙ
Становление процесса автоматизированного тестирования в интернет-магазине ОКЕЙCEE-SEC(R)
 
QA Fest 2016. Дмитрий Химион. Векторы развития систем автоматизации тестиров...
QA Fest 2016. Дмитрий Химион.  Векторы развития систем автоматизации тестиров...QA Fest 2016. Дмитрий Химион.  Векторы развития систем автоматизации тестиров...
QA Fest 2016. Дмитрий Химион. Векторы развития систем автоматизации тестиров...QAFest
 
GUI-автоматизация в Telerik Test Studio
GUI-автоматизация в Telerik Test StudioGUI-автоматизация в Telerik Test Studio
GUI-автоматизация в Telerik Test StudioSQALab
 
Тестирование доступности ПО для людей с ограниченными возможностями
Тестирование доступности ПО для людей с ограниченными возможностямиТестирование доступности ПО для людей с ограниченными возможностями
Тестирование доступности ПО для людей с ограниченными возможностямиSQALab
 
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...WrikeTechClub
 
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщика
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщикаQA Fest 2016. Александр Неделяев. Браузерные помощники тестировщика
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщикаQAFest
 
Всевидящее око. Мониторинг нагрузочного тестирования с InfluxDB и Grafana
Всевидящее око. Мониторинг нагрузочного тестирования с InfluxDB и GrafanaВсевидящее око. Мониторинг нагрузочного тестирования с InfluxDB и Grafana
Всевидящее око. Мониторинг нагрузочного тестирования с InfluxDB и GrafanaSQALab
 
Организация процесса ручного тестирования
Организация процесса ручного тестированияОрганизация процесса ручного тестирования
Организация процесса ручного тестированияIT61
 
Автоматизация тестирования ролей и привилегий
Автоматизация тестирования ролей и привилегийАвтоматизация тестирования ролей и привилегий
Автоматизация тестирования ролей и привилегийSQALab
 
Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...
Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...
Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...SQALab
 
QA Fest 2016. Инна Блажко. ISTQB – What is it? Who needs it? How to prepare a...
QA Fest 2016. Инна Блажко. ISTQB – What is it? Who needs it? How to prepare a...QA Fest 2016. Инна Блажко. ISTQB – What is it? Who needs it? How to prepare a...
QA Fest 2016. Инна Блажко. ISTQB – What is it? Who needs it? How to prepare a...QAFest
 
Эволюция нагрузочного тестирования – от простой автоматизации до BDD
Эволюция нагрузочного тестирования – от простой автоматизации до BDDЭволюция нагрузочного тестирования – от простой автоматизации до BDD
Эволюция нагрузочного тестирования – от простой автоматизации до BDDCEE-SEC(R)
 
Опыт автоматизации интеграционного тестирования и внедрения DevOps в банковск...
Опыт автоматизации интеграционного тестирования и внедрения DevOps в банковск...Опыт автоматизации интеграционного тестирования и внедрения DevOps в банковск...
Опыт автоматизации интеграционного тестирования и внедрения DevOps в банковск...COMAQA.BY
 
Как Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QAКак Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QASQALab
 
Автоматизация тестирования. Разбор конкретного примера - продукта XML2Selenium
Автоматизация тестирования. Разбор конкретного примера - продукта XML2SeleniumАвтоматизация тестирования. Разбор конкретного примера - продукта XML2Selenium
Автоматизация тестирования. Разбор конкретного примера - продукта XML2Seleniumjazzteam
 
Разработка системы автоматизированного тестирования при помощи фреймворка Pro...
Разработка системы автоматизированного тестирования при помощи фреймворка Pro...Разработка системы автоматизированного тестирования при помощи фреймворка Pro...
Разработка системы автоматизированного тестирования при помощи фреймворка Pro...CEE-SEC(R)
 

Was ist angesagt? (20)

Нагрузочное тестирование: Нестандартные методы анализа потока данных в прилож...
Нагрузочное тестирование: Нестандартные методы анализа потока данных в прилож...Нагрузочное тестирование: Нестандартные методы анализа потока данных в прилож...
Нагрузочное тестирование: Нестандартные методы анализа потока данных в прилож...
 
Использование комбинаторного тестирования для мобильных приложений
Использование комбинаторного тестирования для мобильных приложенийИспользование комбинаторного тестирования для мобильных приложений
Использование комбинаторного тестирования для мобильных приложений
 
Ядро автоматизации под микро-сервисную архитектуру
Ядро автоматизации под микро-сервисную архитектуруЯдро автоматизации под микро-сервисную архитектуру
Ядро автоматизации под микро-сервисную архитектуру
 
Практика тестирования web сервисов
Практика тестирования web сервисовПрактика тестирования web сервисов
Практика тестирования web сервисов
 
Становление процесса автоматизированного тестирования в интернет-магазине ОКЕЙ
Становление процесса автоматизированного тестирования в интернет-магазине ОКЕЙСтановление процесса автоматизированного тестирования в интернет-магазине ОКЕЙ
Становление процесса автоматизированного тестирования в интернет-магазине ОКЕЙ
 
QA Fest 2016. Дмитрий Химион. Векторы развития систем автоматизации тестиров...
QA Fest 2016. Дмитрий Химион.  Векторы развития систем автоматизации тестиров...QA Fest 2016. Дмитрий Химион.  Векторы развития систем автоматизации тестиров...
QA Fest 2016. Дмитрий Химион. Векторы развития систем автоматизации тестиров...
 
GUI-автоматизация в Telerik Test Studio
GUI-автоматизация в Telerik Test StudioGUI-автоматизация в Telerik Test Studio
GUI-автоматизация в Telerik Test Studio
 
Тестирование доступности ПО для людей с ограниченными возможностями
Тестирование доступности ПО для людей с ограниченными возможностямиТестирование доступности ПО для людей с ограниченными возможностями
Тестирование доступности ПО для людей с ограниченными возможностями
 
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
 
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщика
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщикаQA Fest 2016. Александр Неделяев. Браузерные помощники тестировщика
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщика
 
Всевидящее око. Мониторинг нагрузочного тестирования с InfluxDB и Grafana
Всевидящее око. Мониторинг нагрузочного тестирования с InfluxDB и GrafanaВсевидящее око. Мониторинг нагрузочного тестирования с InfluxDB и Grafana
Всевидящее око. Мониторинг нагрузочного тестирования с InfluxDB и Grafana
 
Организация процесса ручного тестирования
Организация процесса ручного тестированияОрганизация процесса ручного тестирования
Организация процесса ручного тестирования
 
Автоматизация тестирования ролей и привилегий
Автоматизация тестирования ролей и привилегийАвтоматизация тестирования ролей и привилегий
Автоматизация тестирования ролей и привилегий
 
Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...
Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...
Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...
 
QA Fest 2016. Инна Блажко. ISTQB – What is it? Who needs it? How to prepare a...
QA Fest 2016. Инна Блажко. ISTQB – What is it? Who needs it? How to prepare a...QA Fest 2016. Инна Блажко. ISTQB – What is it? Who needs it? How to prepare a...
QA Fest 2016. Инна Блажко. ISTQB – What is it? Who needs it? How to prepare a...
 
Эволюция нагрузочного тестирования – от простой автоматизации до BDD
Эволюция нагрузочного тестирования – от простой автоматизации до BDDЭволюция нагрузочного тестирования – от простой автоматизации до BDD
Эволюция нагрузочного тестирования – от простой автоматизации до BDD
 
Опыт автоматизации интеграционного тестирования и внедрения DevOps в банковск...
Опыт автоматизации интеграционного тестирования и внедрения DevOps в банковск...Опыт автоматизации интеграционного тестирования и внедрения DevOps в банковск...
Опыт автоматизации интеграционного тестирования и внедрения DevOps в банковск...
 
Как Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QAКак Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QA
 
Автоматизация тестирования. Разбор конкретного примера - продукта XML2Selenium
Автоматизация тестирования. Разбор конкретного примера - продукта XML2SeleniumАвтоматизация тестирования. Разбор конкретного примера - продукта XML2Selenium
Автоматизация тестирования. Разбор конкретного примера - продукта XML2Selenium
 
Разработка системы автоматизированного тестирования при помощи фреймворка Pro...
Разработка системы автоматизированного тестирования при помощи фреймворка Pro...Разработка системы автоматизированного тестирования при помощи фреймворка Pro...
Разработка системы автоматизированного тестирования при помощи фреймворка Pro...
 

Ähnlich wie Автоматизация UI тестирования в неконтролируемо улучшаемой внешней среде

Автоматизация функционального тестирования с использованием платформы MS Visu...
Автоматизация функционального тестирования с использованием платформы MS Visu...Автоматизация функционального тестирования с использованием платформы MS Visu...
Автоматизация функционального тестирования с использованием платформы MS Visu...Александр Шамрай
 
автоматизация тестирования веб приложений павел липский
автоматизация тестирования веб приложений   павел липскийавтоматизация тестирования веб приложений   павел липский
автоматизация тестирования веб приложений павел липскийMedia Gorod
 
Автоматизация тестирования в iOS-проекте на примере ICQ / Д.Куркин, М.Манаев ...
Автоматизация тестирования в iOS-проекте на примере ICQ / Д.Куркин, М.Манаев ...Автоматизация тестирования в iOS-проекте на примере ICQ / Д.Куркин, М.Манаев ...
Автоматизация тестирования в iOS-проекте на примере ICQ / Д.Куркин, М.Манаев ...Ontico
 
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестированияCodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестированияCodeFest
 
MockServer-driven development
MockServer-driven developmentMockServer-driven development
MockServer-driven developmentTestableapple
 
Сергей Ревко
Сергей РевкоСергей Ревко
Сергей РевкоSQALab
 
зуева татьяна - опыт автоматизации тестирования в Agile проекте
зуева татьяна -  опыт автоматизации тестирования в Agile проектезуева татьяна -  опыт автоматизации тестирования в Agile проекте
зуева татьяна - опыт автоматизации тестирования в Agile проектеMagneta AI
 
Организация автоматического тестирования в схеме непрерывной интеграции
Организация автоматического тестирования в схеме непрерывной интеграцииОрганизация автоматического тестирования в схеме непрерывной интеграции
Организация автоматического тестирования в схеме непрерывной интеграцииSQALab
 
Тестирование осень 2013 лекция 5
Тестирование осень 2013 лекция 5 Тестирование осень 2013 лекция 5
Тестирование осень 2013 лекция 5 Technopark
 
автоматизация тестирования огурцом
автоматизация тестирования огурцомавтоматизация тестирования огурцом
автоматизация тестирования огурцомVadim Glebov
 
Внедрение тестирования в Scrum
Внедрение тестирования в ScrumВнедрение тестирования в Scrum
Внедрение тестирования в ScrumDenis Petelin
 
Внедрение тестирования в Scrum
Внедрение тестирования в ScrumВнедрение тестирования в Scrum
Внедрение тестирования в ScrumDenis Petelin
 
Автоматизация тестирования iOS приложений: от идеи к готовому решению
Автоматизация тестирования iOS приложений: от идеи к готовому решениюАвтоматизация тестирования iOS приложений: от идеи к готовому решению
Автоматизация тестирования iOS приложений: от идеи к готовому решениюSQALab
 
Visual Studio Connect() Russia Инструменты управления жизненным циклом Micros...
Visual Studio Connect() Russia Инструменты управления жизненным циклом Micros...Visual Studio Connect() Russia Инструменты управления жизненным циклом Micros...
Visual Studio Connect() Russia Инструменты управления жизненным циклом Micros...Microsoft
 
Виртуальные среды тестирования (ADD2010)
Виртуальные среды тестирования (ADD2010)Виртуальные среды тестирования (ADD2010)
Виртуальные среды тестирования (ADD2010)Dmitry Lobasev
 
Виктор Розаев - Как не сломать обратную совместимость в Public API
Виктор Розаев - Как не сломать обратную совместимость в Public APIВиктор Розаев - Как не сломать обратную совместимость в Public API
Виктор Розаев - Как не сломать обратную совместимость в Public APIMoscowJS
 
Михаил Левин: Автоматизация в мобильном тестировании
Михаил Левин: Автоматизация в мобильном тестированииМихаил Левин: Автоматизация в мобильном тестировании
Михаил Левин: Автоматизация в мобильном тестированииYandex
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеSQALab
 
Автоматизация функционального тестирования с использованием платформы MS Visu...
Автоматизация функционального тестирования с использованием платформы MS Visu...Автоматизация функционального тестирования с использованием платформы MS Visu...
Автоматизация функционального тестирования с использованием платформы MS Visu...Александр Шамрай
 
Quality Assurance vs Quality Control - так в чем же заключается работа специа...
Quality Assurance vs Quality Control - так в чем же заключается работа специа...Quality Assurance vs Quality Control - так в чем же заключается работа специа...
Quality Assurance vs Quality Control - так в чем же заключается работа специа...COMAQA.BY
 

Ähnlich wie Автоматизация UI тестирования в неконтролируемо улучшаемой внешней среде (20)

Автоматизация функционального тестирования с использованием платформы MS Visu...
Автоматизация функционального тестирования с использованием платформы MS Visu...Автоматизация функционального тестирования с использованием платформы MS Visu...
Автоматизация функционального тестирования с использованием платформы MS Visu...
 
автоматизация тестирования веб приложений павел липский
автоматизация тестирования веб приложений   павел липскийавтоматизация тестирования веб приложений   павел липский
автоматизация тестирования веб приложений павел липский
 
Автоматизация тестирования в iOS-проекте на примере ICQ / Д.Куркин, М.Манаев ...
Автоматизация тестирования в iOS-проекте на примере ICQ / Д.Куркин, М.Манаев ...Автоматизация тестирования в iOS-проекте на примере ICQ / Д.Куркин, М.Манаев ...
Автоматизация тестирования в iOS-проекте на примере ICQ / Д.Куркин, М.Манаев ...
 
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестированияCodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
 
MockServer-driven development
MockServer-driven developmentMockServer-driven development
MockServer-driven development
 
Сергей Ревко
Сергей РевкоСергей Ревко
Сергей Ревко
 
зуева татьяна - опыт автоматизации тестирования в Agile проекте
зуева татьяна -  опыт автоматизации тестирования в Agile проектезуева татьяна -  опыт автоматизации тестирования в Agile проекте
зуева татьяна - опыт автоматизации тестирования в Agile проекте
 
Организация автоматического тестирования в схеме непрерывной интеграции
Организация автоматического тестирования в схеме непрерывной интеграцииОрганизация автоматического тестирования в схеме непрерывной интеграции
Организация автоматического тестирования в схеме непрерывной интеграции
 
Тестирование осень 2013 лекция 5
Тестирование осень 2013 лекция 5 Тестирование осень 2013 лекция 5
Тестирование осень 2013 лекция 5
 
автоматизация тестирования огурцом
автоматизация тестирования огурцомавтоматизация тестирования огурцом
автоматизация тестирования огурцом
 
Внедрение тестирования в Scrum
Внедрение тестирования в ScrumВнедрение тестирования в Scrum
Внедрение тестирования в Scrum
 
Внедрение тестирования в Scrum
Внедрение тестирования в ScrumВнедрение тестирования в Scrum
Внедрение тестирования в Scrum
 
Автоматизация тестирования iOS приложений: от идеи к готовому решению
Автоматизация тестирования iOS приложений: от идеи к готовому решениюАвтоматизация тестирования iOS приложений: от идеи к готовому решению
Автоматизация тестирования iOS приложений: от идеи к готовому решению
 
Visual Studio Connect() Russia Инструменты управления жизненным циклом Micros...
Visual Studio Connect() Russia Инструменты управления жизненным циклом Micros...Visual Studio Connect() Russia Инструменты управления жизненным циклом Micros...
Visual Studio Connect() Russia Инструменты управления жизненным циклом Micros...
 
Виртуальные среды тестирования (ADD2010)
Виртуальные среды тестирования (ADD2010)Виртуальные среды тестирования (ADD2010)
Виртуальные среды тестирования (ADD2010)
 
Виктор Розаев - Как не сломать обратную совместимость в Public API
Виктор Розаев - Как не сломать обратную совместимость в Public APIВиктор Розаев - Как не сломать обратную совместимость в Public API
Виктор Розаев - Как не сломать обратную совместимость в Public API
 
Михаил Левин: Автоматизация в мобильном тестировании
Михаил Левин: Автоматизация в мобильном тестированииМихаил Левин: Автоматизация в мобильном тестировании
Михаил Левин: Автоматизация в мобильном тестировании
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
 
Автоматизация функционального тестирования с использованием платформы MS Visu...
Автоматизация функционального тестирования с использованием платформы MS Visu...Автоматизация функционального тестирования с использованием платформы MS Visu...
Автоматизация функционального тестирования с использованием платформы MS Visu...
 
Quality Assurance vs Quality Control - так в чем же заключается работа специа...
Quality Assurance vs Quality Control - так в чем же заключается работа специа...Quality Assurance vs Quality Control - так в чем же заключается работа специа...
Quality Assurance vs Quality Control - так в чем же заключается работа специа...
 

Mehr von SQALab

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировкуSQALab
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаSQALab
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиSQALab
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияSQALab
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...SQALab
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testingSQALab
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженSQALab
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииSQALab
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовSQALab
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовSQALab
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsSQALab
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеSQALab
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииSQALab
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестированиеSQALab
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"SQALab
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовSQALab
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных системSQALab
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросSQALab
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...SQALab
 
Истинная сила тестировщика - информация
Истинная сила тестировщика - информацияИстинная сила тестировщика - информация
Истинная сила тестировщика - информацияSQALab
 

Mehr von SQALab (20)

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировку
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщика
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержки
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testing
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нужен
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихии
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советов
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестов
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIs
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджменте
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестирование
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектов
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных систем
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопрос
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
 
Истинная сила тестировщика - информация
Истинная сила тестировщика - информацияИстинная сила тестировщика - информация
Истинная сила тестировщика - информация
 

Автоматизация UI тестирования в неконтролируемо улучшаемой внешней среде

Hinweis der Redaktion

  1. Добрый день. Спасибо что пришли. Меня зовут Денис. Так сложилось, что уже больше 15 лет я занимаюсь разработкой инструментов для программистов и тестировщиков. В разное время это были и компиляторы, и интегрированные среды разработки, инструменты для нагрузочного и функционального тестирования.
  2. Сейчас я работаю в компании Inflectra. Inflectra – один из ведущих производителей ПО для управления жизненным циклом приложений и функционального тестирования приложений с графическим интерфейсом.
  3. В настоящий момент я занимаюсь автоматизацией тестирования пользовательского интерфейса. В Inflectra мы делаем Рапизу - это среда разработки и выполнения автоматических тестов для веб, десктоп и мобильных приложений. Продукт востребован на зарубежных рынках, и до сегодняшнего дня не был представлен в России. Мы в компании подумали, что стоит восполнить этот пробел и посмотреть, что из этого выйдет.
  4. Просто рассказывать об инструменте и его возможностях было бы информативно, но несколько скучно. Для этого существуют вебинары, которые можно слушать сидя в тапочках в любимом кресле.
  5. Поэтому я расскажу о реальной задаче, которую мы помогли решить с помощью Рапизы. Опыт, которым я хочу сегодня поделиться, довольно универсален, и его можно применить и в других проектах, пользующихся другими инструментами, включая бесплатные.
  6. Мы часто помогаем клиентам решать сложные вопросы в организации процесса тестирования. Как правило наши клиенты - это не магазины электронной торговли и не производители ПО для массового пользователя Часто это крупные компании, использующие ПО для поддержки внутренних бизнес процессов. Это могут быть решения для финансового сектора, управления производством, здравоохранения, например, банки крови. Как правило такие клиенты весьма закрыты и не спешат давать доступ к своим внутренним системам. При этом у них достаточно высокие требования к качеству ПО. И они часто обращаются за помощью, так как ПО достаточно сложное, реализованное с применением множества технологий, различных фреймворков и языков программирования. Поэтому иногда наша деятельность напоминает удаленные хирургические операции. Задачи стоят сложные и мы не всегда имеем возможность работать с системой напрямую. Мы даже не всегда знаем какие показатели были достигнуты клиентом в процессе тестирования. Часто это просто бинарное значение - клиент доволен - клиент не доволен. Почти всегда подписывается соглашение о конфиденциальности, что не дает нам права использовать данные о клиенте и его приложении в целях демонстрации возможностей инструмента. Поэтому сегодня я буду рассказывать о реальной задаче, но на демонстрационном примере, который мы подготовили специально для конференции. Это позволит вам не только получить информацию, но и при желании запустить демонстрационные примеры самим. Наш пример состоит из свободно доступного приложения, инструмента и тестов. Все это можно потрогать руками.
  7. Итак, о задаче. Тестируем Outlook плагин для Офис 365. Outlook – почтовый клиент от компании Микрософт. А Офис 365 – это Микрософт офис в облаке. Плагин называется TextMiner, он находит в тексте письма подписи и автоматически извлекает такую информацию, как имя, адрес, должность, название компании и т.д.
  8. Outlook плагин - это по сути веб приложение, которое может работать как в браузере, так и в десктоп версиях почтового клиента Outlook под Windows и Mac
  9. Зачем делать автоматические тесты пользовательского интерфейса в данном случае? Все мы знакомы с пирамидой тестирования и знаем, что данный вид тестирования является наиболее сложным и дорогим. Можно ли сэкономить ресурсы? Есть ли альтернатива? Бэкенд можно проверить модульными тестами. Можно сделать интеграционные тесты и закидывать письма в бэкенд с помощью CURL (в народе Курл). Это понятно, и не вызывает трудностей. Вопрос, что делать с фронтендом, с пользовательской частью? Хотя пользовательский интерфейс и достаточно прост есть одно "Но".
  10. Плагин работает во внешней среде, которая может измениться в любую минуту. И то, что работало минуту назад, просто перестает работать. Последствия неожиданных обновлений на стороне Микрософт могут быть достаточно разнообразными. Вот некоторые из них.
  11. Ночной кошмар для разработчика – получить отчет о проблеме от пользователя в виде – «ничего не работает». Причиной может быть проблема во взаимодействии с облачным API. Что-то не загрузилось, что-то изменилось.
  12. Может поехать верстка. Такая ситуация может возникнуть в результате изменения размеров фрейма, в который грузится плагин или проблем с получением данных из почтового ящика.
  13. Причем появление указанных проблем может зависеть от типа клиента и его географического положения. Причины этих явлений кроются в облачной природе такого сервиса как Офис 365. Разные аккаунты сидят на разных версиях/сборках почтового сервера. Причем вероятно, что обновления сначала выкатываются для не платящих клиентов и в выбранных регионах. Например, пользователи из Европы могут испытывать проблемы с загрузкой плагина, в то время как для клиентов из северной Америки все может по прежнему прекрасно работать. Также аккаунты, полученные в разное время, могут оказаться привязаны к различным версиям серверной части.
  14. Таким образом возникает ситуация, когда мы не контролируем происходящее на сто процентов. Мы в облаке и оно принимает решения за нас. В случае десктоп приложений хотя бы есть возможность следить за анонсами выхода обновлений операционной системы и своевременно проверять работоспособность приложения на виртуальных машинах с заданной нами конфигурацией. В облаке же нет возможности контролировать версию программного обеспечения, с которым мы работаем. Так бывает конечно не всегда, например, в коммерческих облачных системах, сопровождающих производство и продажи, где сбой в работе ПО приводит к явным финансовым потерям, о предстоящих обновлениях и изменениях предупреждают заранее и дают возможность адаптироваться. К сожалению, в случае с Офис 365 – не так. Усугубляет ситуацию также современная тенденция выпускать частые релизы. Хотя всем разработчикам знакома ситуация, когда исправление проблемы в одном модуле приводит к появлению новых в других частях системы. Потому что другие модули рассчитывали на «неправильное» поведение.
  15. Возникает парадокс. Нам делают как лучше, а получается как всегда. И глядя на возникающие при эксплуатации плагина проблемы, иногда хочется сказать словами политического классика: «Никогда такого не было – и вот опять!»
  16. В подобной ситуации важна скорость реакции и возможность вовремя потушить пожар. И очень желательно обнаружить проблему раньше пользователей.
  17. Поэтому необходим минимальный набор автоматических UI тестов, который бы проверял работоспособность плагина в десктоп версиях Outlook и в различных браузерах. Причем этот набор необходимо запускать постоянно, в режиме мониторинга, и для разных типов аккаунтов. А если плагин рассчитан на глобальную аудиторию, то и в различных географических зонах, чтобы увидеть проблемы максимально быстро и каким-то образом отреагировать. У меня есть вопрос к экспертам из зала. Стали бы вы делать автотесты в подобной ситуации? Если нет, то какова альтернатива? Если да, то какими бы инструментами стали пользоваться?
  18. Наш клиент в этой ситуации использовал Рапизу. Я не буду показывать код тестов и сам инструмент в подробностях. На это просто не хватит времени. В конце доклада я расскажу как бесплатно получить Рапизу и скачать тесты. Чтобы запустить тестовый набор вам понадобится только аккаунт Офис 365 (вы можете легко подписаться на пробную версию) и установка плагина TextMiner.
  19. Итак, перейдем непосредственно к тестовому набору. Напомню, что плагин – это веб приложение. Даже в десктоп версии Outlook загружает плагин во встроенный браузер.
  20. Поэтому локатор элемента интерфейса плагина не зависит от контейнера. Во всех случаях это один и тот же XPATH для заданного элемента.
  21. Чтобы добраться до элемента на десктопе необходимо подключиться к встроенному в процесс Outlook браузеру (на Windows это Internet Explorer), а затем использовать XPATH локатор. В случае с обычным браузером используется XPATH фрейма, в который загружен плагин, а затем XPATH элемента. Это позволяет построить тестовую систему таким образом, что тест записанный для браузера, можно без изменений запускать на десктоп.
  22. Таким образом клиент смог сэкономить и время и ресурсы необходимые на разработку и поддержку тестов. А дополнительную экономию дала возможность записывать действия пользователя при работе с приложением, в этом случае локаторы для элементов вычисляются автоматически (хотя и в некоторых случаях требуют обработки напильником).
  23. Отдельно для десктопа и браузеров реализовали только несколько вспомогательных процедур. Например навигацию в почтовом клиенте с целью открыть определенное письмо. Загрузку писем в систему реализовали с помощью встроенного в Рапизу SOAP клиента.
  24. Одной из решенных задач была автоматизация Outlook для Windows. Той его части, которая использовалась для открытия нужного письма в почтовом ящике и запуска плагина. Windows предлагает несколько технологий, для автоматизации тестирования десктоп приложений. Это Microsoft Active Accessibility. Технология доступная на Windows с конца прошлого века. Она была придумана чтобы помочь людям с ограниченными возможностями использовать компьютер. - UI Automation – последователь MSAA, но уже разработанный с мыслью о поддержке инструментов для автоматического тестирования пользовательского интерфейса. Наибольшая свобода при тестировании на Windows достигается для .NET (managed) приложений. В этом случае возможно внедриться в процесс приложения и получить доступ к классам и объектам. Java Access Bridge – компонент от Oracle, делающий возможными тестирование интерфейса Java приложений на Windows. Рапизв поддерживает все перечисленные технологии. Поэтому было из чего выбирать. Почтовый клиент Outlook не является Java или .NET приложением, поэтому выбор был очевидным – использовать UI Automation.
  25. Теперь немного деталей для тех, кто захочет попробовать демонстрационный фреймворк своими руками или понять как инструмент устроен изнутри.
  26. Рапиза работает с объектами, соответствующими элементам интерфейса. У объектов есть локаторы, свойства и методы. Локаторы используются для автоматического поиска элементов в приложении. Свойства и методы позволяют тестировщику, не вникая в низкоуровневые детали, узнать необходимую информацию об элементе, например, получить координаты, текст, снимок экрана. и взаимодействовать с ним, например, раскрыть нужный узел дерева, выбрать элемент из списка, нажать кнопку, ввести текст. Этот подход реализован для всех типов приложений: десктоп, мобильных и веб-приложений. В заголовке слайда вы видите код, сгенерированный Рапизой в процессе записи теста. Единственное что изменили вручную – параметризировали почтовый адрес. Здесь ‘Mail_Folders’ – идентификатор объекта, к нему привязан локатор, который вы здесь не видите, он хранится отдельно. Тип объекта – дерево, поэтому у него есть метод DoClickNode, который позволяет, указав путь к узлу, кликнуть на него.
  27. Часто клиенты просят, чтобы к созданию и модификации тестов можно было бы привлечь людей, не занимающихся программированием. Это происходит по разным причинам. Это могут быть люди, пришедшие из ручного тестирования Или аналитики, менеджеры, которые хорошо разбираются в предметной области (например, в технологии запуска атмосферных зондов) и не занимаются написанием кода) В таких случаях команда может состоять из тестировщиков-программистов, которые занимаются локаторами и эмуляцией действий пользователя (для них ПО – просто набор форм и элементов) и людей, которые занимаются непосредственной реализацией тестовых сценариев и работают на более высоком уровне абстракции. Для тестировщиков второго типа Рапиза предоставляет возможность создавать тестовые сценарии используя электронные таблицы. Примеры таких таблиц вы видите на экране. В первом примере вызывается сценарий, реализованный программистом (MyLogin). Во втором заполняется и отправляется веб-форма (в библиотеке регистрируется новая книга).
  28. Перейдем теперь к результатам проекта тестирования. Удалось ли достичь поставленной цели и можно ли использовать полученный опыт где-нибудь еще? Итак, основные результаты из реального проекта. В произвольном порядке важности.
  29. Аналогичный описанному подход оказался применим и для других приложений. Клиент тестировал ERP систему Dynamics AX. Это десктоп приложение. Большой конструктор. Одним из кирпичиков в нем оказался встраиваемый браузер Chromium Embedded Framework. Нам удалось подключиться к нему как реальному браузеру и тестировщики работали с содержимым как веб приложением, используя XPATH локаторы.
  30. Дополнительный плюс. Тестовый набор, разработанный заказчиком, используется им также для регрессионного тестирования. Тем самым тестировщики заработали благодарность от разработчиков.
  31. Думаю, это главный результат. С помощью разработанного тестового покрытия стало возможным постоянное наблюдение за работоспособностью плагина. Это принесло свои плоды и позволило своевременно поймать ряд проблем связанных с изменением внешней среды - обновлениями от Микрософт. Также удалось поймать определенные шаблоны в поведении внешней среды. И это позволило службе поддержки заказчика лучше взаимодействовать с пользователями. Пример шаблона – временные перебои - иногда кнопка запуска плагина (вообще всех плагинов в Outlook 365) просто пропадает и его невозможно открыть.
  32. Тестовый набор полностью реализован в рамках одного инструмента. Весь код тестов написан на JavaScript. На одном языке, который очень распространен и хорошо известен. Используется единый объектный подход для работы с элементами интерфейса на десктопе и в вебе. Настроен постоянный запуск тестов, сбор и анализ телеметрии, построение отчетов. Такой тестовый набор легко поддерживать и дополнять. Даже если сменится команда тестировщиков. Вообще к конечной цели часто есть много путей. И в этом проекте тестирования заказчик мог применить и другие инструменты. Разница в том, насколько быстро и качественно можно добиться желаемого результата. Мы считаем, что Рапиза справилась неплохо. Дополнительно в пользу инструмента сыграло то, что Рапиза является частью продуктовой линейки, включающей инструменты для планирования и удаленного запуска тестов, отслеживания дефектов и требований – и это дало дополнительные преимущества в проекте. В любом случае, каким инструментом пользоваться - в конечном счете решать вам.
  33. Спасибо за внимание. Как и обещал - ссылка на страницу, где можно бесплатно получить Рапизу (там нужно оставить свой мейл, на него придет письмо с ключом и ссылкой для скачивания). Эта возможность будет активна две недели. Также ссылка на ГитХаб репозиторий с кодом тестов. Эта ссылка есть еще в аннотации к докладу. Если хотите связаться со мной лично – пишите на почту. У нас еще есть время на вопросы и ответы. Пожалуйста.