Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

WPF Automation – test injection approach to application testing

917 views

Published on

Доклад Владимира Перевалова на конференции SQA Days-21
www.sqadays.com

Published in: Education
  • D0WNL0AD FULL ▶ ▶ ▶ ▶ http://1lite.top/1y1ho ◀ ◀ ◀ ◀
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • D0WNL0AD FULL ▶ ▶ ▶ ▶ http://1lite.top/1y1ho ◀ ◀ ◀ ◀
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

WPF Automation – test injection approach to application testing

  1. 1. Deutsche Bank Technology Center Deutsche Bank Vladimir Perevalov Deutsche Bank Technology Centre. Moscow, Russia WPF Automation – test injection approach to application testing
  2. 2. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Владимир Перевалов Lead Software Developer Обо мне
  3. 3. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Автоматическое тестирование GUI • Тестировать GUI автоматически возможно • Это дорого вначале, но потом вложения окупаются • Ещё один фреймворк для тестирования
  4. 4. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Обзор • Приложение и его окружение • Тест фреймворк – обзор технологии • Как используем фреймворк в проекте • Чего в итоге добились
  5. 5. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Приложение и его окружение
  6. 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. 7. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days UI • 10 окон с таблицами данных • Уникальные действия в каждом окне серверUI Бизнес-логика распределена
  8. 8. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Сервер UI Приложение Клиентские заявки Еще один сервер Рыночные данные Приложение
  9. 9. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Как тестировали изначально
  10. 10. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Было 1 QA 1500+ тестов* 3 недели на регрессию *Не готовых для автоматизации
  11. 11. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Хотим • Сократить время выполнения регрессионного тестирования • Короткие релизы • Тесты – как документация
  12. 12. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Время автоматизировать!
  13. 13. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Решение
  14. 14. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Интеграционные UI тесты UI Сервер Запрос Ответ Тест Проверка данных
  15. 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. 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. 17. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days WPF Automation
  18. 18. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Процесс приложенияПроцесс тест раннера WPFA Выполнение теста Вызов тестового метода перехватывается Исключения передаются обратно тест ранеру DLL Injection
  19. 19. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Три уровня написания тестов На примере.. калькулятора!
  20. 20. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Тест на сложение 5+7=12
  21. 21. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Уровень 0. Простые тесты
  22. 22. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Уровень 1. Структурируем
  23. 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. 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. 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. 26. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Уровень 2. Specflow + Romashka
  27. 27. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Уровень 2. Связь имён и контролов
  28. 28. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Уровень 2. Расширение обёрток
  29. 29. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Уровень 2. Макрошаги
  30. 30. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days
  31. 31. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Используем фреймворк в проекте
  32. 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. 33. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Запуск тестов • Тесты выполняются 5+ часов • Машина в это время заблокирована • Используем виртуальную машину и следим за прогрессом по сети • Nunit тест раннер сохраняет результаты только в конце всего набора тестов
  34. 34. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Собственный тест раннер • Основан на NUnit • Сохраняет результаты после каждого теста • Забирает сборку из TeamCity • Забирает сборку, подложенную вручную
  35. 35. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Веб-сайт показывает результаты
  36. 36. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days Стало 0 QA 40 часов Всё ещё 250+ автотестов Сократили ручную работу на 1
  37. 37. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days
  38. 38. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days • Полная версия закрыта… • Но вы можете сделать свою! • https://github.com/vperevalov/WPFA
  39. 39. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days
  40. 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. 41. Deutsche Bank Technology Center Deutsche Bank WPF Automation – test injection approach to application testing SQA Days 5/27/2017 2010 DB Blue template Данный материал не является предложением или предоставлением какой- либо услуги. Данный материал предназначен исключительно для информационных и иллюстративных целей и не предназначен для распространения в рекламных целях. Любой анализ третьих сторон не предполагает какого-либо одобрения или рекомендации. Мнения, выраженные в данном материале, являются актуальными на текущий момент, появляются только в этом материале и могут быть изменены без предварительного уведомления. Эта информация предоставляется с пониманием того, что в отношении материала, предоставленного здесь, вы будете принимать самостоятельное решение в отношении любых действий в связи с настоящим материалом, и это решение является основанным на вашем собственном суждении, и что вы способны понять и оценить последствия этих действий. ООО "Дойче Банк Техцентр" не несет никакой ответственности за любые убытки любого рода, относящихся к этому материалу.

×