The Selenium RC opportunities, problems and some features in work with it for cross-browser testing (Firefox, Internet Explorer, Safari, Google Chrome) are presented in the presentation. The issues, concerning testing automation start, the points of testing, performed data, test synchronization problems and different solutions of these problems are considered. Beside that, application testing problems, using Flash and Silverlight, file loading variants, XSS injections are discussed.
Сергей Татаринцев — Тестирование CSS-регрессий с GeminiYandex
Каждый разработчик интерфейсов долгоживущих сервисов сталкивается с регрессиями в вёрстке. Мы научились пользоваться инструментами для unit-тестирования js-кода, но до сих пор плохо понимаем, как тестировать на регрессии вёрстку. И ещё хуже понимаем, как делать это автоматически (continuous integration) и при этом писать небольшие и не очень хрупкие тесты. В этом году мы создали Gemini — инструмент для модульного тестирования вёрстки для нашей библиотеки компонентов. Мы используем его для тестирования внутренней библиотеки компонентов Яндекса, которая лежит в основе большинства наших сервисов (например, Поиска и Картинок). На BEMup я расскажу, как использовать этот инструмент — как разрабатывать тесты и запускать их на локальной машине или в уже существующей экосистеме (Travis CI, Sauce Labs).
Михаил Левин: Автоматизация в мобильном тестированииYandex
Задача автоматизации тестирования мобильных приложений сейчас очень актуальна. Это точка приложения усилий многих команд, которые занимаются мобильными приложениями и разрабатывают фреймворки. В докладе я расскажу о предпосылках возникновения интереса к этой теме и о том, какие инструменты мобильного тестирования сейчас существуют и какие использует Яндекс. Вы узнаете также о проблемах, с которыми мы столкнулись на пути к удобной и дешёвой автоматизации тестирования и о том, какие из них нам ещё предстоит решить.
Сергей Татаринцев — Тестирование CSS-регрессий с GeminiYandex
Каждый разработчик интерфейсов долгоживущих сервисов сталкивается с регрессиями в вёрстке. Мы научились пользоваться инструментами для unit-тестирования js-кода, но до сих пор плохо понимаем, как тестировать на регрессии вёрстку. И ещё хуже понимаем, как делать это автоматически (continuous integration) и при этом писать небольшие и не очень хрупкие тесты. В этом году мы создали Gemini — инструмент для модульного тестирования вёрстки для нашей библиотеки компонентов. Мы используем его для тестирования внутренней библиотеки компонентов Яндекса, которая лежит в основе большинства наших сервисов (например, Поиска и Картинок). На BEMup я расскажу, как использовать этот инструмент — как разрабатывать тесты и запускать их на локальной машине или в уже существующей экосистеме (Travis CI, Sauce Labs).
Михаил Левин: Автоматизация в мобильном тестированииYandex
Задача автоматизации тестирования мобильных приложений сейчас очень актуальна. Это точка приложения усилий многих команд, которые занимаются мобильными приложениями и разрабатывают фреймворки. В докладе я расскажу о предпосылках возникновения интереса к этой теме и о том, какие инструменты мобильного тестирования сейчас существуют и какие использует Яндекс. Вы узнаете также о проблемах, с которыми мы столкнулись на пути к удобной и дешёвой автоматизации тестирования и о том, какие из них нам ещё предстоит решить.
Описаны причины необходимости имитации работы серверной части в автоматизации тестирования. Приведены примеры использования инструментов, возможности которых позволяют имитировать в web-приложениях получение ответа от сервера.
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNGDataArt
Дмитрий Лукьяненко, QA Automation рассматривает:
- Selenium IDE;
- Selenium WebDriver;
- Page Obgect Pattern;
- Page Factory Pattern;
- локаторы;
- как построить фреймворк и куда его можно дальше развивать.
Дело тестера боится: как в опытных руках могут заиграть Java и TestNgIT61
Вячеслав Марков, QA engineer в Weezlabs
Я расскажу о том, как в нашей фирме организовано тестирование бэкенда с помощью тестового фреймворка TestNG и Java. Расскажу о data-driven тестировании и о том, почему его удобно применять. Покажу и опишу разработанную нами структуру типового тестового проекта. Представлю применяемые нами способы сбора и документирования результатов, а так же их анализ в условиях CI.
В этой презентации я рассказываю не только об автотестах, а о целом комплексе автоматических инструментов для обеспечения качества веб-сервиса на разных этапах разработки.
Как обеспечить проверку формата? Как поддерживать документацию в актуальном виде? Какую архитектуру выбрать для функциональных тестов?
Немного интересного про JSON-схемы и параметризованные тесты, про тестирование API методом чёрного ящика и про выбор исходных данных для тестирования.
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщикаQAFest
В темные времена доминации Internet Explorer на рынке браузеров, тестировщик оставался один на один с тестируемым приложением, и лишь усердие, трудолюбие и крепкий алкоголь могли спасти его от безумия и профессионального выгорания.
К счастью, времена изменились. Современные браузеры скрывают в себе множество полезных функций и имеют тысячи плагинов, способных помочь тестировщику веб приложений. Я расскажу вам о браузерных плагинах, которые значительно облегчили тестирование верстки, поизводительности, отзывчивости сайта, позволили мне ускорить выполнение рутинных задач, а также повысили личную эффективность.
Расширяемая платформа для создания и управления автоматизированными тестами н...jazzteam
Продукт XML2Selenium - это расширяемая, плагинная платформа для создания и управления автоматизированными тестами на основе технологии Java.
XML2Selenium имеет интеграцию с JUnit, работает поверх Selenium (это изменяемо). XML2Selenim позволяет создавать автоматизированные тесты в простом и понятном обычному (без навыков программирования) QA инженеру формате. XML2Selenium позволяет также управлять всеми стадиями работы с автоматизированными тестами, начиная от стадии создания и заканчивая управлением тестами.
Главными конкурентными преимуществами являются
- низкая стоимость вхождения. Начинающие автоматизаторы, и даже QA инженеры без навыков программирования создают качественные тесты, а значит легко поддерживаемые, легко изменяемые, с использованием DDT (Data Driven Testing) подходов, что увеличивает повторно-используемость тестов
- встроенные возможности структуризации тестов по папкам и файлам, а также по тегам, что позволяет качественно отобразить документацию на тесты. Внедряя эту платформу, вы автоматически улучшаете свои процессы управления тестами
- XML2Selenium - это плагинная, расширяемая платформа, позволяющая кастомизировать процессы под ваши нужды, создать новые плагины, добавить интеграцию с нужными системами, и многое другое
- все повторно-используемые части (инклюды, плагины) могут помещаться в репозитории, откуда ими могут пользоваться QA инженеры с других проектов компании, тем самым распространяется опыт и знания в области автоматизации
- XML2Selenium имеет широкий спектр полезных свойств в области автоматизации, таких как поддержка создания видео, снепшотов и скриншотов страниц, Groovy и JS скриптинга, поддержки объектно-ориентированного программирования на XML и многих других
Традиционно многие компании не инвестируют много в QA инженеров, при этом сложность продуктов и количество Use Cases растёт, и компании утыкаются в барьер, когда архитектура тестов становится сравнительно такого же уровня, как и архитектура приложения. Это же касается и автоматизации тестирования. Ключевыми проблемами становятся:
- вопросы поддержки и тестирования многих инсталяций продукта на стороне заказчика
- вопросы тестирования нескольких версий (бренчей) одного и того же продукта
- повторн
Тестирование CSS-регрессий с Gemini — Сергей ТатаринцевYandex
Каждый разработчик интерфейсов долгоживущих сервисов сталкивается с регрессиями в вёрстке. Мы научились пользоваться инструментами для модульного тестирования JS-кода, но до сих пор плохо понимаем, как тестировать на регрессии вёрстку. И ещё хуже понимаем, как делать это автоматически при использовании непрерывной интеграции и при этом писать небольшие и не очень хрупкие тесты.
В этом году мы создали Gemini — инструмент для модульного тестирования вёрстки. Мы используем его для тестирования внутренней библиотеки компонентов Яндекса, которая лежит в основе большинства наших сервисов (например, Поиска и Картинок). Я расскажу, как использовать этот инструмент — как разрабатывать тесты и запускать их при помощи командной строки или графического интерфейса, а также как подсчитать процент покрытия тестами CSS-кода.
Описаны причины необходимости имитации работы серверной части в автоматизации тестирования. Приведены примеры использования инструментов, возможности которых позволяют имитировать в web-приложениях получение ответа от сервера.
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNGDataArt
Дмитрий Лукьяненко, QA Automation рассматривает:
- Selenium IDE;
- Selenium WebDriver;
- Page Obgect Pattern;
- Page Factory Pattern;
- локаторы;
- как построить фреймворк и куда его можно дальше развивать.
Дело тестера боится: как в опытных руках могут заиграть Java и TestNgIT61
Вячеслав Марков, QA engineer в Weezlabs
Я расскажу о том, как в нашей фирме организовано тестирование бэкенда с помощью тестового фреймворка TestNG и Java. Расскажу о data-driven тестировании и о том, почему его удобно применять. Покажу и опишу разработанную нами структуру типового тестового проекта. Представлю применяемые нами способы сбора и документирования результатов, а так же их анализ в условиях CI.
В этой презентации я рассказываю не только об автотестах, а о целом комплексе автоматических инструментов для обеспечения качества веб-сервиса на разных этапах разработки.
Как обеспечить проверку формата? Как поддерживать документацию в актуальном виде? Какую архитектуру выбрать для функциональных тестов?
Немного интересного про JSON-схемы и параметризованные тесты, про тестирование API методом чёрного ящика и про выбор исходных данных для тестирования.
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщикаQAFest
В темные времена доминации Internet Explorer на рынке браузеров, тестировщик оставался один на один с тестируемым приложением, и лишь усердие, трудолюбие и крепкий алкоголь могли спасти его от безумия и профессионального выгорания.
К счастью, времена изменились. Современные браузеры скрывают в себе множество полезных функций и имеют тысячи плагинов, способных помочь тестировщику веб приложений. Я расскажу вам о браузерных плагинах, которые значительно облегчили тестирование верстки, поизводительности, отзывчивости сайта, позволили мне ускорить выполнение рутинных задач, а также повысили личную эффективность.
Расширяемая платформа для создания и управления автоматизированными тестами н...jazzteam
Продукт XML2Selenium - это расширяемая, плагинная платформа для создания и управления автоматизированными тестами на основе технологии Java.
XML2Selenium имеет интеграцию с JUnit, работает поверх Selenium (это изменяемо). XML2Selenim позволяет создавать автоматизированные тесты в простом и понятном обычному (без навыков программирования) QA инженеру формате. XML2Selenium позволяет также управлять всеми стадиями работы с автоматизированными тестами, начиная от стадии создания и заканчивая управлением тестами.
Главными конкурентными преимуществами являются
- низкая стоимость вхождения. Начинающие автоматизаторы, и даже QA инженеры без навыков программирования создают качественные тесты, а значит легко поддерживаемые, легко изменяемые, с использованием DDT (Data Driven Testing) подходов, что увеличивает повторно-используемость тестов
- встроенные возможности структуризации тестов по папкам и файлам, а также по тегам, что позволяет качественно отобразить документацию на тесты. Внедряя эту платформу, вы автоматически улучшаете свои процессы управления тестами
- XML2Selenium - это плагинная, расширяемая платформа, позволяющая кастомизировать процессы под ваши нужды, создать новые плагины, добавить интеграцию с нужными системами, и многое другое
- все повторно-используемые части (инклюды, плагины) могут помещаться в репозитории, откуда ими могут пользоваться QA инженеры с других проектов компании, тем самым распространяется опыт и знания в области автоматизации
- XML2Selenium имеет широкий спектр полезных свойств в области автоматизации, таких как поддержка создания видео, снепшотов и скриншотов страниц, Groovy и JS скриптинга, поддержки объектно-ориентированного программирования на XML и многих других
Традиционно многие компании не инвестируют много в QA инженеров, при этом сложность продуктов и количество Use Cases растёт, и компании утыкаются в барьер, когда архитектура тестов становится сравнительно такого же уровня, как и архитектура приложения. Это же касается и автоматизации тестирования. Ключевыми проблемами становятся:
- вопросы поддержки и тестирования многих инсталяций продукта на стороне заказчика
- вопросы тестирования нескольких версий (бренчей) одного и того же продукта
- повторн
Тестирование CSS-регрессий с Gemini — Сергей ТатаринцевYandex
Каждый разработчик интерфейсов долгоживущих сервисов сталкивается с регрессиями в вёрстке. Мы научились пользоваться инструментами для модульного тестирования JS-кода, но до сих пор плохо понимаем, как тестировать на регрессии вёрстку. И ещё хуже понимаем, как делать это автоматически при использовании непрерывной интеграции и при этом писать небольшие и не очень хрупкие тесты.
В этом году мы создали Gemini — инструмент для модульного тестирования вёрстки. Мы используем его для тестирования внутренней библиотеки компонентов Яндекса, которая лежит в основе большинства наших сервисов (например, Поиска и Картинок). Я расскажу, как использовать этот инструмент — как разрабатывать тесты и запускать их при помощи командной строки или графического интерфейса, а также как подсчитать процент покрытия тестами CSS-кода.
Video - http://www.youtube.com/watch?v=DTNejE9EraI
Code - https://gist.github.com/3386951
Pytest is a mature and comprehensive testing suite for Python projects, but it can be a little intimidating for newcomers. Where do these mysterious funcargs come from, how do parametrised tests work, and where are my xUnit-style setUp and tearDown methods?
Pytest lives by "convention over configuration" - which is great once you know what the conventions are. This talk will look at real examples of pytest in use, emphasising the features that differentiate it from nose.
JUnit is the de facto standard in Java testing. Yet many advanced JUnit features are little known and poorly understood. This session reviews some lesser-known features of JUnit, along with a few associated libraries, that can make your unit tests more powerful, expressive, and fun. The session is intended for Java developers, lead developers, and architects trying to introduce good testing practices into their teams.
Continuous Integration, the minimum viable productJulian Simpson
What does it mean to 'do' Continuous Integration? It used to be enough to execute your unit tests in CI. But the bar is steadily raising for engineering practices. In the last decade we've seen tremendous improvements inacceptance testing. JavaScript is now a platform in it's own right. Cloudcomputing is now vital. There's growing interest in deployment to prod.So Continuous Integration is under more pressure than ever. As the bar slowly raises for engineering practices, we ll present 2011's minimum viable feature set for Continuous Integration
There's a recording of this talk at Agile 2012 here: http://www.youtube.com/watch?v=v-L_2y6g5DI
Creating automated end-to-end functional acceptance tests is hard. Maintaining them over time is harder. Some agilistas even claim that the cost outweighs the benefit. In this lecture we present five principles for creating valuable, maintainable acceptance test suites. We discuss practices such as layering acceptance tests to reduce coupling between the test harness, and talk about how teams should be organized in order to efficiently manage acceptance test driven development. The core of the talk discusses how to manage the evolution of acceptance tests by organizing them as scenarios rather than as suites of story tests. Finally we show how to manage data for acceptance tests.
В мире автоматизации давным-давно успешно используют W3C Webdriver HTTP протокол. С его помощью реализовано множество проектов и библиотек на различных языках (selenide, protractor, webdriverio и тысячи других). Но так же в последнее время все больше и больше команд решают использовать Chrome Debug Protocol, в частности инструмент Puppeteer. Он основан на WebSockets, и имеет свои особые возможности - двухсторонняя связь, возможность подписки на события в браузере, и многое другое. В этом докладе мы посмотрим возможности обоих протоколов, поэкспериментируем и совместим их вместе в одном проекте, чтобы заставить браузер работать на полную и взять лучшее от двух каналов связи.
https://seleniumcamp.com/talk/webdriverio-puppeteer-double-gun-double-fun/
In the automation world, W3C Webdriver HTTP protocol has been successfully used for a long time. With its help, many projects and libraries in various languages have been implemented (selenide, protractor, webdriverio and thousands of others). But more and more teams decide to use Chrome Debug Protocol, in particular the Puppeteer tool. It is based on WebSockets, and has its own special features – two-way communication, ability to subscribe to events in the browser, and much more. In this talk, we will look at the capabilities of both protocols, experiment and combine them together in one project to make the browser work at full power, and take the best from both communication channels.
По традиции приглашаем вас на встречу с кратким обзором новых функций обновленной версии среды разработки Visual Studio 2015. Мы также поговорим о кроссплатформенной разработке для мобильных платформ, изменениях в веб-стеке, новой версии языка C# и open source инициативах Microsoft
В презентации на примере конкретного веб-приложения освещается тема автоматизированного тестирования и важность таких тестов в контексте Continuous Integration/Delivery. Рассмотрены азы работы с Selenium WebDriver'ом, область применения этого инструмента и простые примеры использования.
Презентация подготовлена по материалам прошедшего 19.11.2013 витебского митапа (http://meetup.gorodvitebsk.by).
Open Source Testing Framework: real project example and best practicesAliaksandr Ikhelis
Summary: Presentation on open source testing frameworks (improved version, more focus on real project example) at Software Engineering Forum 2009 (SEF-1) conference by Aliaksandr Ikhelis. Sponte framework developer and owner is Stanislaw Wozniak, Expedia Limited, UK. Sponte project homepage: http://rubyforge.org/projects/sponte/; http://github.com/swozniak/sponte/tree/master
1. Selenium RC для QAинженеров: возможности, трудности и нюансы в использовании ЯнАлексеенко GGA Software Services
2. Содержание Возможности Наш подход к тестированию Недостатки Проблема синхронизации Проблемы кросс-браузерного тестирования Что нужно знать? Работа с файлами XSS инъекции Flash/Flex приложения Silverlight приложения Демонстрации
4. ПоддержкаOS Selenium 2.0 дает возможность тестировать Мобильные версии сайтов, используя WebDriver
5. Демонстрация Пример работы с мобильными устройствами Установить Android SDK на ПК Установить Android WebDriver на телефон Подключить телефон к USB в debug режиме Выполнить следующие команды cd/android_sdk/tools/adb devices Вернёт <serialID> adb-s <serialId> forward tcp:8080 tcp:8080 http://code.google.com/p/selenium/wiki/AndroidDriver
11. Тестирование & Selenium Функциональность Web-приложений Работа JavaScript JavaScript ошибки Стиль страниц (вёрстка) Орфография Безопасность приложения XSS уязвимости SQL инъекции и д.р. Flash, Silverlight… Performance
12. Результаты тестирования Имена выполняемых операций, а также имена бизнес-функций Время выполнения операций Функциональные ошибки JavaScriptошибки Проверка валидности HTML (http://validator.w3.org/) Screenshots & Locatorshots
13. Результаты тестирования Html формат txt формат log Удалённый доступ к результатам с визуальным оформлением Упрощённый формат для сканера логов Установка Errorcode при завершении теста с ошибкой
16. Наш выбор + SVN: разработка тестов в команде Компилирует Запускает Хранит историю Hudson
17. Структура Фреймворка конфигурация теста сценарий тестирования Runner отчеты редактор сценариев код тестов вспомогательный функционал Локаторы объектов
23. Digest & NTLM Authentication Internet Explorer (regedit): Создать ключ HKEY_LOCAL_MACHINEOFTWAREicrosoftnternet ExploreraineatureControlEATURE_HTTP_USERNAME_PASSWORD_DISABLE СоздатьDWORDзначенияiexplore.exe & explorer.exeиустановить их значения0. FireFox (about:config): Установить network.http.phishy-userpass-length = 255 Добавить тестируемые домены вnetwork.automatic-ntlm-auth.trusted-uris http://stackoverflow.com/questions/3021602
24. Синхронизация Java: Sleep для потока Selenium: waitForPageToLoad Достаточно? Нет, т.к. На странице есть JavaScript Пути решения: Ждать конкретные объекты на странице Это не универсальный метод Флаги, вставляемые на страницуразработчиками Универсальный подход
25. Синхронизация Загрузка/Выгрузка объекта по Xpath, CSS, ID Загрузка/Выгрузка текста целиком/частично Загрузка/Выгрузка объекта/текста после Refresh Загрузка объектов по их численности Ожидание изменений в JavaScript Ожидание новых окон
26. Проблемы кросс-браузерного тестирования Самопроизвольное закрытие теста – Разбивай тесты на небольшие кусочки Медленная работа с Xpath – Используй CSS & JavaScript Рассинхронизация работымежду Xpath & CSS – Используй JavaScript Не поддерживает HTML 5 в полной мере
27. Проблемы кросс-браузерного тестирования HTTP authentication (ver. 4) – Воспользуйся асинхронной работой Selenium waitForPageToLoad(ver. 5): Result of expression‘this.getCurrentWindow’[undefined] is not a function Работает только в режиме *safariproxy(ver. 5)
28. Проблемы кросс-браузерного тестирования HTTP authentication Возможны проблемы с сертификатами waitForPageToLoad: Object[object HTMLIFrameElement] has no method 'getCurrentWindow‘
29. Проблемы кросс-браузерного тестирования При обычном обновлении FireFoxс версии 3.5 до 3.6и использовании профиля для запуска тестов возникает проблемас сертификатом: services.addons.mozilla.org:443 – Необходимо устанавливать новую версию FireFox, полностью удалив старую, вместе с имеющимеся профилями.
30. Работа с IFrame Для активации элемента используй и/или Пример:
31. Что нужно знать Нет доступа к нативным формам Какие компоненты используются(будут использоваться) в Web приложении Трудности при работе с IFrame Digest & NTLM Authentication Нестабильная работа IE Медленная работа IE c XPath Асинхронное выполнение операций
34. Демонстрация Web-application: Загрузчик файлов использует: Flash Для скачивания используем: Wget Видео ролики: Safari: http://screencast.com/t/DGBoC41f Google Chrome: http://screencast.com/t/pvQjDkNuScqO
35. XSS injection Пример уязвимости: … Selenium: Verify JS variable‘inject’ using http://ha.ckers.org/xss.html
36. Демонстрация Web-application: SeleniumIDE для наглядности
37. Flash/Flex application Открыть доступ к необходимым функциям, используяExternalInterface Воспользоваться JavaScript для вызова соответствующих функций Flash Native keyboard events Native mouse events Интеграция стороннихсредств тестирования
38. Демонстрация Web-application: http://linux.ria.ua/JsFlash/simple.html http://www.uni-dubna.ru/~sidorov/workz/flash/operate2.html SeleniumIDE для наглядности
39. Silverlight application Открыть доступ к необходимым функциям атрибут[ScriptableType]для странице атрибут[ScriptableMember]для функции Воспользоваться JavaScript для вызова соответствующих функций Silverlight Native keyboard events Native mouse events Интеграция сторонних средств тестирования
40. Демонстрация Web-application: Демонстрационное приложение – Сумма чисел SeleniumIDE для наглядности
41. Спасибо за внимание Вопросы ЯнАлексеенко GGA Software Services Санкт-Петербург alexeenko@ggasoftware.com
Editor's Notes
Демонстрация работы Selenium на мобильном устройстве (длительность 5 – 10 минут).Для этой демонстрации необходим WiFi + камера, для просмотра аудиторией телефона с проектора.
Демонстрация включит в себя рассказ о framework, оргнизации тестов, отчетахЗапуск тестов реального проектаДлительность порядка 20 – 30 минут.