SlideShare ist ein Scribd-Unternehmen logo
1 von 41
Deutsche Bank Technology Center
Deutsche Bank
Vladimir Perevalov
Deutsche Bank Technology Centre. Moscow, Russia
WPF Automation – test injection approach to
application testing
Deutsche Bank Technology Center
Deutsche Bank WPF Automation – test injection approach to application testing
SQA Days
Владимир Перевалов
Lead Software Developer
Обо мне
Deutsche Bank Technology Center
Deutsche Bank WPF Automation – test injection approach to application testing
SQA Days
Автоматическое тестирование GUI
• Тестировать GUI автоматически возможно
• Это дорого вначале, но потом вложения
окупаются
• Ещё один фреймворк для тестирования
Deutsche Bank Technology Center
Deutsche Bank WPF Automation – test injection approach to application testing
SQA Days
Обзор
• Приложение и его окружение
• Тест фреймворк – обзор технологии
• Как используем фреймворк в проекте
• Чего в итоге добились
Deutsche Bank Technology Center
Deutsche Bank WPF Automation – test injection approach to application testing
SQA Days
Приложение и его окружение
Deutsche Bank Technology Center
Deutsche Bank WPF Automation – test injection approach to application testing
SQA Days
Приложение
• Финансовое ПО
• Создает заявки и исполняет их на бирже
Панель инструментов
id Сторона Колонка N
Заявка 1 BUY IBM 120 20.12 2% 09:35:01 -0.21 … …
Заявка 2 SELL AAPL 130 4.69 8% 09:47:48 0.67 … …
Заявка 3 BUY MSFT 50 45.01 3% 09:53:04 -0.89 … …
... … … … … … … … … …
… … … … … … … … … …
… … … … .. … … … … …
Заявка N SELL NVDA 165 11.45 6% 12:53:04 0.91 …
Действие 1 Действие 2 Действие N
Deutsche Bank Technology Center
Deutsche Bank WPF Automation – test injection approach to application testing
SQA Days
UI
• 10 окон с таблицами данных
• Уникальные действия в каждом окне
серверUI
Бизнес-логика распределена
Deutsche Bank Technology Center
Deutsche Bank WPF Automation – test injection approach to application testing
SQA Days
Сервер UI
Приложение
Клиентские
заявки
Еще один
сервер
Рыночные
данные
Приложение
Deutsche Bank Technology Center
Deutsche Bank WPF Automation – test injection approach to application testing
SQA Days
Как тестировали изначально
Deutsche Bank Technology Center
Deutsche Bank WPF Automation – test injection approach to application testing
SQA Days
Было
1
QA
1500+
тестов*
3
недели на
регрессию
*Не готовых для автоматизации
Deutsche Bank Technology Center
Deutsche Bank WPF Automation – test injection approach to application testing
SQA Days
Хотим
• Сократить время выполнения регрессионного
тестирования
• Короткие релизы
• Тесты – как документация
Deutsche Bank Technology Center
Deutsche Bank WPF Automation – test injection approach to application testing
SQA Days
Время автоматизировать!
Deutsche Bank Technology Center
Deutsche Bank WPF Automation – test injection approach to application testing
SQA Days
Решение
Deutsche Bank Technology Center
Deutsche Bank WPF Automation – test injection approach to application testing
SQA Days
Интеграционные UI тесты
UI Сервер
Запрос
Ответ
Тест
Проверка данных
Deutsche Bank Technology Center
Deutsche Bank WPF Automation – test injection approach to application testing
SQA Days
Windows Automation API
• Проблемы со сложными
кастомными конролами
• Нет доступа к внутреннему
состоянию
DLL Injection
• Поддержка любых контролов
• Доступ к DataContext/ViewModel
Выбор технологии
Deutsche Bank Technology Center
Deutsche Bank WPF Automation – test injection approach to application testing
SQA Days
Анализ тестовых фреймворков
Движок Язык разработки
White Windows UI Automation C#
Ms Test Windows UI Automation C#
Pywinauto Windows UI Automation Python
Test Complete Dll Injection JavaScript и другие
Squish Dll Injection JavaScript и другие
WPF Automation Dll Injection C#
Написан в Дойче банке!
Deutsche Bank Technology Center
Deutsche Bank WPF Automation – test injection approach to application testing
SQA Days
WPF Automation
Deutsche Bank Technology Center
Deutsche Bank WPF Automation – test injection approach to application testing
SQA Days
Процесс приложенияПроцесс тест раннера
WPFA
Выполнение
теста
Вызов тестового
метода
перехватывается
Исключения
передаются
обратно тест
ранеру
DLL Injection
Deutsche Bank Technology Center
Deutsche Bank WPF Automation – test injection approach to application testing
SQA Days
Три уровня написания тестов
На примере.. калькулятора!
Deutsche Bank Technology Center
Deutsche Bank WPF Automation – test injection approach to application testing
SQA Days
Тест на сложение 5+7=12
Deutsche Bank Technology Center
Deutsche Bank WPF Automation – test injection approach to application testing
SQA Days
Уровень 0. Простые тесты
Deutsche Bank Technology Center
Deutsche Bank WPF Automation – test injection approach to application testing
SQA Days
Уровень 1. Структурируем
Deutsche Bank Technology Center
Deutsche Bank WPF Automation – test injection approach to application testing
SQA Days
CalculatorWindowWrapper
ResultsWindow
Wrapper
NumericPanelWrapper
InputTextBox
B1 B2 B3
B6B5B4
B7 B8 B9
Уровень 1. Обёртки повторяют
структуру UI
Deutsche Bank Technology Center
Deutsche Bank WPF Automation – test injection approach to application testing
SQA Days
WPF Automation - yet another framework to write UI autotests
Уровень 1
Deutsche Bank Technology Center
Deutsche Bank WPF Automation – test injection approach to application testing
SQA Days
Specflow – Cucumber для .Net
Cucumber – открытый инструмент для
исполняемых спецификаций
Specflow – реализация Cucumber для .Net
WPFA – расширяет Specflow. Появляется
интерпретатор для типовых шагов - Romashka
Deutsche Bank Technology Center
Deutsche Bank WPF Automation – test injection approach to application testing
SQA Days
Уровень 2. Specflow + Romashka
Deutsche Bank Technology Center
Deutsche Bank WPF Automation – test injection approach to application testing
SQA Days
Уровень 2. Связь имён и контролов
Deutsche Bank Technology Center
Deutsche Bank WPF Automation – test injection approach to application testing
SQA Days
Уровень 2. Расширение обёрток
Deutsche Bank Technology Center
Deutsche Bank WPF Automation – test injection approach to application testing
SQA Days
Уровень 2. Макрошаги
Deutsche Bank Technology Center
Deutsche Bank WPF Automation – test injection approach to application testing
SQA Days
Deutsche Bank Technology Center
Deutsche Bank WPF Automation – test injection approach to application testing
SQA Days
Используем фреймворк в
проекте
Deutsche Bank Technology Center
Deutsche Bank WPF Automation – test injection approach to application testing
SQA Days
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
0
50
100
150
200
250
300
May-16 Jun-16 Aug-16 Oct-16 Nov-16 Jan-17 Mar-17 Apr-17 Jun-17
ОБЁРТКИ ЭЛЕМЕНТОВ UI И ТЕСТ-КЕЙСЫ
Количество кейсов % покрытия обёртками
Deutsche Bank Technology Center
Deutsche Bank WPF Automation – test injection approach to application testing
SQA Days
Запуск тестов
• Тесты выполняются 5+ часов
• Машина в это время заблокирована
• Используем виртуальную машину и следим
за прогрессом по сети
• Nunit тест раннер сохраняет результаты
только в конце всего набора тестов
Deutsche Bank Technology Center
Deutsche Bank WPF Automation – test injection approach to application testing
SQA Days
Собственный тест раннер
• Основан на NUnit
• Сохраняет результаты после каждого теста
• Забирает сборку из TeamCity
• Забирает сборку, подложенную вручную
Deutsche Bank Technology Center
Deutsche Bank WPF Automation – test injection approach to application testing
SQA Days
Веб-сайт показывает результаты
Deutsche Bank Technology Center
Deutsche Bank WPF Automation – test injection approach to application testing
SQA Days
Стало
0
QA
40
часов
Всё
ещё
250+
автотестов
Сократили
ручную работу на
1
Deutsche Bank Technology Center
Deutsche Bank WPF Automation – test injection approach to application testing
SQA Days
Deutsche Bank Technology Center
Deutsche Bank WPF Automation – test injection approach to application testing
SQA Days
• Полная версия закрыта…
• Но вы можете сделать свою!
• https://github.com/vperevalov/WPFA
Deutsche Bank Technology Center
Deutsche Bank WPF Automation – test injection approach to application testing
SQA Days
Deutsche Bank Technology Center
Deutsche Bank WPF Automation – test injection approach to application testing
SQA Days
Наши контакты
• Владимир Перевалов – vladimir.perevalov@db.com
• https://github.com/vperevalov/WPFA
Deutsche Bank Technology Center
Deutsche Bank WPF Automation – test injection approach to application testing
SQA Days
5/27/2017 2010 DB Blue template
Данный материал не является предложением или предоставлением какой-
либо услуги. Данный материал предназначен исключительно для
информационных и иллюстративных целей и не предназначен для
распространения в рекламных целях. Любой анализ третьих сторон не
предполагает какого-либо одобрения или рекомендации. Мнения,
выраженные в данном материале, являются актуальными на текущий момент,
появляются только в этом материале и могут быть изменены без
предварительного уведомления. Эта информация предоставляется с
пониманием того, что в отношении материала, предоставленного здесь, вы
будете принимать самостоятельное решение в отношении любых действий в
связи с настоящим материалом, и это решение является основанным на
вашем собственном суждении, и что вы способны понять и оценить
последствия этих действий. ООО "Дойче Банк Техцентр" не несет никакой
ответственности за любые убытки любого рода, относящихся к этому
материалу.

Weitere ähnliche Inhalte

Was ist angesagt?

Нагрузочное тестирование: Нестандартные методы анализа потока данных в прилож...
Нагрузочное тестирование: Нестандартные методы анализа потока данных в прилож...Нагрузочное тестирование: Нестандартные методы анализа потока данных в прилож...
Нагрузочное тестирование: Нестандартные методы анализа потока данных в прилож...SQALab
 
Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...
Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...
Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...SQALab
 
Всевидящее око. Мониторинг нагрузочного тестирования с InfluxDB и Grafana
Всевидящее око. Мониторинг нагрузочного тестирования с InfluxDB и GrafanaВсевидящее око. Мониторинг нагрузочного тестирования с InfluxDB и Grafana
Всевидящее око. Мониторинг нагрузочного тестирования с InfluxDB и GrafanaSQALab
 
Настраиваемое тестирование производительности
Настраиваемое тестирование производительностиНастраиваемое тестирование производительности
Настраиваемое тестирование производительностиSQALab
 
Тестируем производительность с помощью Selenium
Тестируем производительность с помощью SeleniumТестируем производительность с помощью Selenium
Тестируем производительность с помощью SeleniumSQALab
 
QA Fest 2016. Дмитрий Химион. Векторы развития систем автоматизации тестиров...
QA Fest 2016. Дмитрий Химион.  Векторы развития систем автоматизации тестиров...QA Fest 2016. Дмитрий Химион.  Векторы развития систем автоматизации тестиров...
QA Fest 2016. Дмитрий Химион. Векторы развития систем автоматизации тестиров...QAFest
 
Использование игровой модели для выполнения сложных сценарных тестов
Использование игровой модели для выполнения сложных сценарных тестовИспользование игровой модели для выполнения сложных сценарных тестов
Использование игровой модели для выполнения сложных сценарных тестовSQALab
 
Один за всех, или как помочь тестированию многих компонентов одной системы
Один за всех, или как помочь тестированию многих компонентов одной системыОдин за всех, или как помочь тестированию многих компонентов одной системы
Один за всех, или как помочь тестированию многих компонентов одной системыSQALab
 
Эволюция нагрузочного тестирования – от простой автоматизации до BDD
Эволюция нагрузочного тестирования – от простой автоматизации до BDDЭволюция нагрузочного тестирования – от простой автоматизации до BDD
Эволюция нагрузочного тестирования – от простой автоматизации до BDDCEE-SEC(R)
 
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...WrikeTechClub
 
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в DevopsQA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в DevopsQAFest
 
GUI-автоматизация в Telerik Test Studio
GUI-автоматизация в Telerik Test StudioGUI-автоматизация в Telerik Test Studio
GUI-автоматизация в Telerik Test StudioSQALab
 
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщика
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщикаQA Fest 2016. Александр Неделяев. Браузерные помощники тестировщика
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщикаQAFest
 
Повышение качества тестов и автоматическая валидация REST API документации
Повышение качества тестов и автоматическая валидация REST API документацииПовышение качества тестов и автоматическая валидация REST API документации
Повышение качества тестов и автоматическая валидация REST API документацииCEE-SEC(R)
 
Как Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QAКак Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QASQALab
 
Становление процесса автоматизированного тестирования в интернет-магазине ОКЕЙ
Становление процесса автоматизированного тестирования в интернет-магазине ОКЕЙСтановление процесса автоматизированного тестирования в интернет-магазине ОКЕЙ
Становление процесса автоматизированного тестирования в интернет-магазине ОКЕЙCEE-SEC(R)
 
End-2-End UI автоматизация в мобильном приложении. Наша реализация
End-2-End UI автоматизация в мобильном приложении. Наша реализацияEnd-2-End UI автоматизация в мобильном приложении. Наша реализация
End-2-End UI автоматизация в мобильном приложении. Наша реализацияSQALab
 
Концепция QaAPI: взгляд на тестирование с другой стороны баррикад
Концепция QaAPI: взгляд на тестирование с другой стороны баррикадКонцепция QaAPI: взгляд на тестирование с другой стороны баррикад
Концепция QaAPI: взгляд на тестирование с другой стороны баррикадSQALab
 
Jenkins 2.0: Организуем тестирование в составе Continuous Delivery
Jenkins 2.0: Организуем тестирование в составе Continuous DeliveryJenkins 2.0: Организуем тестирование в составе Continuous Delivery
Jenkins 2.0: Организуем тестирование в составе Continuous DeliverySQALab
 
WP как экспериментальная платформа
WP как экспериментальная платформаWP как экспериментальная платформа
WP как экспериментальная платформаSQALab
 

Was ist angesagt? (20)

Нагрузочное тестирование: Нестандартные методы анализа потока данных в прилож...
Нагрузочное тестирование: Нестандартные методы анализа потока данных в прилож...Нагрузочное тестирование: Нестандартные методы анализа потока данных в прилож...
Нагрузочное тестирование: Нестандартные методы анализа потока данных в прилож...
 
Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...
Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...
Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...
 
Всевидящее око. Мониторинг нагрузочного тестирования с InfluxDB и Grafana
Всевидящее око. Мониторинг нагрузочного тестирования с InfluxDB и GrafanaВсевидящее око. Мониторинг нагрузочного тестирования с InfluxDB и Grafana
Всевидящее око. Мониторинг нагрузочного тестирования с InfluxDB и Grafana
 
Настраиваемое тестирование производительности
Настраиваемое тестирование производительностиНастраиваемое тестирование производительности
Настраиваемое тестирование производительности
 
Тестируем производительность с помощью Selenium
Тестируем производительность с помощью SeleniumТестируем производительность с помощью Selenium
Тестируем производительность с помощью Selenium
 
QA Fest 2016. Дмитрий Химион. Векторы развития систем автоматизации тестиров...
QA Fest 2016. Дмитрий Химион.  Векторы развития систем автоматизации тестиров...QA Fest 2016. Дмитрий Химион.  Векторы развития систем автоматизации тестиров...
QA Fest 2016. Дмитрий Химион. Векторы развития систем автоматизации тестиров...
 
Использование игровой модели для выполнения сложных сценарных тестов
Использование игровой модели для выполнения сложных сценарных тестовИспользование игровой модели для выполнения сложных сценарных тестов
Использование игровой модели для выполнения сложных сценарных тестов
 
Один за всех, или как помочь тестированию многих компонентов одной системы
Один за всех, или как помочь тестированию многих компонентов одной системыОдин за всех, или как помочь тестированию многих компонентов одной системы
Один за всех, или как помочь тестированию многих компонентов одной системы
 
Эволюция нагрузочного тестирования – от простой автоматизации до BDD
Эволюция нагрузочного тестирования – от простой автоматизации до BDDЭволюция нагрузочного тестирования – от простой автоматизации до BDD
Эволюция нагрузочного тестирования – от простой автоматизации до BDD
 
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
 
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в DevopsQA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
 
GUI-автоматизация в Telerik Test Studio
GUI-автоматизация в Telerik Test StudioGUI-автоматизация в Telerik Test Studio
GUI-автоматизация в Telerik Test Studio
 
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщика
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщикаQA Fest 2016. Александр Неделяев. Браузерные помощники тестировщика
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщика
 
Повышение качества тестов и автоматическая валидация REST API документации
Повышение качества тестов и автоматическая валидация REST API документацииПовышение качества тестов и автоматическая валидация REST API документации
Повышение качества тестов и автоматическая валидация REST API документации
 
Как Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QAКак Cluster Membership Software может помочь QA
Как Cluster Membership Software может помочь QA
 
Становление процесса автоматизированного тестирования в интернет-магазине ОКЕЙ
Становление процесса автоматизированного тестирования в интернет-магазине ОКЕЙСтановление процесса автоматизированного тестирования в интернет-магазине ОКЕЙ
Становление процесса автоматизированного тестирования в интернет-магазине ОКЕЙ
 
End-2-End UI автоматизация в мобильном приложении. Наша реализация
End-2-End UI автоматизация в мобильном приложении. Наша реализацияEnd-2-End UI автоматизация в мобильном приложении. Наша реализация
End-2-End UI автоматизация в мобильном приложении. Наша реализация
 
Концепция QaAPI: взгляд на тестирование с другой стороны баррикад
Концепция QaAPI: взгляд на тестирование с другой стороны баррикадКонцепция QaAPI: взгляд на тестирование с другой стороны баррикад
Концепция QaAPI: взгляд на тестирование с другой стороны баррикад
 
Jenkins 2.0: Организуем тестирование в составе Continuous Delivery
Jenkins 2.0: Организуем тестирование в составе Continuous DeliveryJenkins 2.0: Организуем тестирование в составе Continuous Delivery
Jenkins 2.0: Организуем тестирование в составе Continuous Delivery
 
WP как экспериментальная платформа
WP как экспериментальная платформаWP как экспериментальная платформа
WP как экспериментальная платформа
 

Ähnlich wie WPF Automation – test injection approach to application testing

UI тестирование WPF приложений в Дойче Банке
UI тестирование WPF приложений в Дойче БанкеUI тестирование WPF приложений в Дойче Банке
UI тестирование WPF приложений в Дойче БанкеGoSharp
 
Jazz team cooperation roadmap
Jazz team cooperation roadmapJazz team cooperation roadmap
Jazz team cooperation roadmapKrystsinaDurovich
 
Visual Studio Connect() Russia Инструменты управления жизненным циклом Micros...
Visual Studio Connect() Russia Инструменты управления жизненным циклом Micros...Visual Studio Connect() Russia Инструменты управления жизненным циклом Micros...
Visual Studio Connect() Russia Инструменты управления жизненным циклом Micros...Microsoft
 
Эволюция экосистем тестирования
Эволюция экосистем тестированияЭволюция экосистем тестирования
Эволюция экосистем тестированияGleb Rybalko
 
Мануйлова Ольга Валерьевна
Мануйлова Ольга ВалерьевнаМануйлова Ольга Валерьевна
Мануйлова Ольга ВалерьевнаOlga Manuylova
 
Роман Василенко. Continuous delivery или как упростить себе жизнь
Роман Василенко. Continuous delivery или как упростить себе жизньРоман Василенко. Continuous delivery или как упростить себе жизнь
Роман Василенко. Continuous delivery или как упростить себе жизнь_itcampus
 
Jazz team cooperation roadmap
Jazz team cooperation roadmapJazz team cooperation roadmap
Jazz team cooperation roadmapKrystsinaDurovich
 
Лекция 2 тестирование и жизненный цикл ПО
Лекция 2 тестирование и жизненный цикл ПОЛекция 2 тестирование и жизненный цикл ПО
Лекция 2 тестирование и жизненный цикл ПОSergey Chuburov
 
Альфабанк: НТ в Облаке при Agile на примере интернет банка
Альфабанк: НТ в Облаке при Agile на примере интернет банкаАльфабанк: НТ в Облаке при Agile на примере интернет банка
Альфабанк: НТ в Облаке при Agile на примере интернет банкаSQALab
 
SQA Days 11 SAtroschenkov SBerezhnoy
SQA Days 11 SAtroschenkov SBerezhnoySQA Days 11 SAtroschenkov SBerezhnoy
SQA Days 11 SAtroschenkov SBerezhnoySergey Atroschenkov
 
Почему Заказчики не разрешают тестировщикам делать то, что они хотят
Почему Заказчики не разрешают тестировщикам делать то, что они хотятПочему Заказчики не разрешают тестировщикам делать то, что они хотят
Почему Заказчики не разрешают тестировщикам делать то, что они хотятSQALab
 
Подготовка стратегии тестирования под высокорискованный, высокодоходный проект
Подготовка стратегии тестирования под высокорискованный, высокодоходный проектПодготовка стратегии тестирования под высокорискованный, высокодоходный проект
Подготовка стратегии тестирования под высокорискованный, высокодоходный проектSQALab
 
Testing in Scrum - Yuriy Malyi
Testing in Scrum - Yuriy Malyi Testing in Scrum - Yuriy Malyi
Testing in Scrum - Yuriy Malyi Agile Base Camp
 
Yuriy malyi testinginscrumagile
Yuriy malyi testinginscrumagileYuriy malyi testinginscrumagile
Yuriy malyi testinginscrumagileAgile Base Camp
 
Как развить отдел тестирования от палки-копалки до CI
Как развить отдел тестирования от палки-копалки до CIКак развить отдел тестирования от палки-копалки до CI
Как развить отдел тестирования от палки-копалки до CICEE-SEC(R)
 
Роль аналитика в негибких методологиях разработки
Роль аналитика в негибких методологиях разработкиРоль аналитика в негибких методологиях разработки
Роль аналитика в негибких методологиях разработкиDevDay
 
Microsoft для стартапов
Microsoft для стартаповMicrosoft для стартапов
Microsoft для стартаповGeorge Barkan
 
Jazz team cooperation roadmap
Jazz team cooperation roadmapJazz team cooperation roadmap
Jazz team cooperation roadmapKrystsinaDurovich
 
Технический долг: взгляд и действия со стороны QA / QC&AT
Технический долг: взгляд и действия со стороны QA / QC&ATТехнический долг: взгляд и действия со стороны QA / QC&AT
Технический долг: взгляд и действия со стороны QA / QC&ATCodeFest
 

Ähnlich wie WPF Automation – test injection approach to application testing (20)

UI тестирование WPF приложений в Дойче Банке
UI тестирование WPF приложений в Дойче БанкеUI тестирование WPF приложений в Дойче Банке
UI тестирование WPF приложений в Дойче Банке
 
Jazz team cooperation roadmap
Jazz team cooperation roadmapJazz team cooperation roadmap
Jazz team cooperation roadmap
 
Visual Studio Connect() Russia Инструменты управления жизненным циклом Micros...
Visual Studio Connect() Russia Инструменты управления жизненным циклом Micros...Visual Studio Connect() Russia Инструменты управления жизненным циклом Micros...
Visual Studio Connect() Russia Инструменты управления жизненным циклом Micros...
 
Эволюция экосистем тестирования
Эволюция экосистем тестированияЭволюция экосистем тестирования
Эволюция экосистем тестирования
 
Мануйлова Ольга Валерьевна
Мануйлова Ольга ВалерьевнаМануйлова Ольга Валерьевна
Мануйлова Ольга Валерьевна
 
Роман Василенко. Continuous delivery или как упростить себе жизнь
Роман Василенко. Continuous delivery или как упростить себе жизньРоман Василенко. Continuous delivery или как упростить себе жизнь
Роман Василенко. Continuous delivery или как упростить себе жизнь
 
Jazz team cooperation roadmap
Jazz team cooperation roadmapJazz team cooperation roadmap
Jazz team cooperation roadmap
 
Лекция 2 тестирование и жизненный цикл ПО
Лекция 2 тестирование и жизненный цикл ПОЛекция 2 тестирование и жизненный цикл ПО
Лекция 2 тестирование и жизненный цикл ПО
 
Альфабанк: НТ в Облаке при Agile на примере интернет банка
Альфабанк: НТ в Облаке при Agile на примере интернет банкаАльфабанк: НТ в Облаке при Agile на примере интернет банка
Альфабанк: НТ в Облаке при Agile на примере интернет банка
 
SQA Days 11 SAtroschenkov SBerezhnoy
SQA Days 11 SAtroschenkov SBerezhnoySQA Days 11 SAtroschenkov SBerezhnoy
SQA Days 11 SAtroschenkov SBerezhnoy
 
Почему Заказчики не разрешают тестировщикам делать то, что они хотят
Почему Заказчики не разрешают тестировщикам делать то, что они хотятПочему Заказчики не разрешают тестировщикам делать то, что они хотят
Почему Заказчики не разрешают тестировщикам делать то, что они хотят
 
Подготовка стратегии тестирования под высокорискованный, высокодоходный проект
Подготовка стратегии тестирования под высокорискованный, высокодоходный проектПодготовка стратегии тестирования под высокорискованный, высокодоходный проект
Подготовка стратегии тестирования под высокорискованный, высокодоходный проект
 
Testing in Scrum - Yuriy Malyi
Testing in Scrum - Yuriy Malyi Testing in Scrum - Yuriy Malyi
Testing in Scrum - Yuriy Malyi
 
Yuriy malyi testinginscrumagile
Yuriy malyi testinginscrumagileYuriy malyi testinginscrumagile
Yuriy malyi testinginscrumagile
 
Как развить отдел тестирования от палки-копалки до CI
Как развить отдел тестирования от палки-копалки до CIКак развить отдел тестирования от палки-копалки до CI
Как развить отдел тестирования от палки-копалки до CI
 
Роль аналитика в негибких методологиях разработки
Роль аналитика в негибких методологиях разработкиРоль аналитика в негибких методологиях разработки
Роль аналитика в негибких методологиях разработки
 
Microsoft для стартапов
Microsoft для стартаповMicrosoft для стартапов
Microsoft для стартапов
 
Enter: testing
Enter: testingEnter: testing
Enter: testing
 
Jazz team cooperation roadmap
Jazz team cooperation roadmapJazz team cooperation roadmap
Jazz team cooperation roadmap
 
Технический долг: взгляд и действия со стороны QA / QC&AT
Технический долг: взгляд и действия со стороны QA / QC&ATТехнический долг: взгляд и действия со стороны QA / QC&AT
Технический долг: взгляд и действия со стороны QA / QC&AT
 

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
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве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
 

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 автоматизации
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестирование
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектов
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных систем
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопрос
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
 

WPF Automation – test injection approach to application testing

  • 1. Deutsche Bank Technology Center Deutsche Bank Vladimir Perevalov Deutsche Bank Technology Centre. Moscow, Russia WPF Automation – test injection approach to application testing
  • 2. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Владимир Перевалов Lead Software Developer Обо мне
  • 3. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Автоматическое тестирование GUI • Тестировать GUI автоматически возможно • Это дорого вначале, но потом вложения окупаются • Ещё один фреймворк для тестирования
  • 4. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Обзор • Приложение и его окружение • Тест фреймворк – обзор технологии • Как используем фреймворк в проекте • Чего в итоге добились
  • 5. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Приложение и его окружение
  • 6. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Приложение • Финансовое ПО • Создает заявки и исполняет их на бирже Панель инструментов id Сторона Колонка N Заявка 1 BUY IBM 120 20.12 2% 09:35:01 -0.21 … … Заявка 2 SELL AAPL 130 4.69 8% 09:47:48 0.67 … … Заявка 3 BUY MSFT 50 45.01 3% 09:53:04 -0.89 … … ... … … … … … … … … … … … … … … … … … … … … … … … .. … … … … … Заявка N SELL NVDA 165 11.45 6% 12:53:04 0.91 … Действие 1 Действие 2 Действие N
  • 7. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days UI • 10 окон с таблицами данных • Уникальные действия в каждом окне серверUI Бизнес-логика распределена
  • 8. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Сервер UI Приложение Клиентские заявки Еще один сервер Рыночные данные Приложение
  • 9. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Как тестировали изначально
  • 10. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Было 1 QA 1500+ тестов* 3 недели на регрессию *Не готовых для автоматизации
  • 11. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Хотим • Сократить время выполнения регрессионного тестирования • Короткие релизы • Тесты – как документация
  • 12. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Время автоматизировать!
  • 13. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Решение
  • 14. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Интеграционные UI тесты UI Сервер Запрос Ответ Тест Проверка данных
  • 15. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Windows Automation API • Проблемы со сложными кастомными конролами • Нет доступа к внутреннему состоянию DLL Injection • Поддержка любых контролов • Доступ к DataContext/ViewModel Выбор технологии
  • 16. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Анализ тестовых фреймворков Движок Язык разработки White Windows UI Automation C# Ms Test Windows UI Automation C# Pywinauto Windows UI Automation Python Test Complete Dll Injection JavaScript и другие Squish Dll Injection JavaScript и другие WPF Automation Dll Injection C# Написан в Дойче банке!
  • 17. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days WPF Automation
  • 18. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Процесс приложенияПроцесс тест раннера WPFA Выполнение теста Вызов тестового метода перехватывается Исключения передаются обратно тест ранеру DLL Injection
  • 19. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Три уровня написания тестов На примере.. калькулятора!
  • 20. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Тест на сложение 5+7=12
  • 21. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Уровень 0. Простые тесты
  • 22. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Уровень 1. Структурируем
  • 23. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days CalculatorWindowWrapper ResultsWindow Wrapper NumericPanelWrapper InputTextBox B1 B2 B3 B6B5B4 B7 B8 B9 Уровень 1. Обёртки повторяют структуру UI
  • 24. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days WPF Automation - yet another framework to write UI autotests Уровень 1
  • 25. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Specflow – Cucumber для .Net Cucumber – открытый инструмент для исполняемых спецификаций Specflow – реализация Cucumber для .Net WPFA – расширяет Specflow. Появляется интерпретатор для типовых шагов - Romashka
  • 26. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Уровень 2. Specflow + Romashka
  • 27. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Уровень 2. Связь имён и контролов
  • 28. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Уровень 2. Расширение обёрток
  • 29. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Уровень 2. Макрошаги
  • 30. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days
  • 31. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Используем фреймворк в проекте
  • 32. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days 0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100% 0 50 100 150 200 250 300 May-16 Jun-16 Aug-16 Oct-16 Nov-16 Jan-17 Mar-17 Apr-17 Jun-17 ОБЁРТКИ ЭЛЕМЕНТОВ UI И ТЕСТ-КЕЙСЫ Количество кейсов % покрытия обёртками
  • 33. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Запуск тестов • Тесты выполняются 5+ часов • Машина в это время заблокирована • Используем виртуальную машину и следим за прогрессом по сети • Nunit тест раннер сохраняет результаты только в конце всего набора тестов
  • 34. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Собственный тест раннер • Основан на NUnit • Сохраняет результаты после каждого теста • Забирает сборку из TeamCity • Забирает сборку, подложенную вручную
  • 35. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Веб-сайт показывает результаты
  • 36. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Стало 0 QA 40 часов Всё ещё 250+ автотестов Сократили ручную работу на 1
  • 37. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days
  • 38. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days • Полная версия закрыта… • Но вы можете сделать свою! • https://github.com/vperevalov/WPFA
  • 39. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days
  • 40. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Наши контакты • Владимир Перевалов – vladimir.perevalov@db.com • https://github.com/vperevalov/WPFA
  • 41. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days 5/27/2017 2010 DB Blue template Данный материал не является предложением или предоставлением какой- либо услуги. Данный материал предназначен исключительно для информационных и иллюстративных целей и не предназначен для распространения в рекламных целях. Любой анализ третьих сторон не предполагает какого-либо одобрения или рекомендации. Мнения, выраженные в данном материале, являются актуальными на текущий момент, появляются только в этом материале и могут быть изменены без предварительного уведомления. Эта информация предоставляется с пониманием того, что в отношении материала, предоставленного здесь, вы будете принимать самостоятельное решение в отношении любых действий в связи с настоящим материалом, и это решение является основанным на вашем собственном суждении, и что вы способны понять и оценить последствия этих действий. ООО "Дойче Банк Техцентр" не несет никакой ответственности за любые убытки любого рода, относящихся к этому материалу.