solit 2013, Эволюция тестирования на selenium, Мычко Алексей

30
Эволюция тестирования на Selenium Мычко Алексей JazzTeam

Upload: solit

Post on 24-Jan-2015

161 views

Category:

Technology


0 download

DESCRIPTION

Алексей Мычко, Минск, компания JazzTeam, Software Engineer (test automation) «Эволюция тестирования на Selenium». Лекция и мастер-класс. Development секция. Для заинтересованных. Для автоматизации web-приложений самым популярным средством является Selenium. Этот продукт дает возможность создавать как очень простые тесты, так и сложные тестовые фреймворки, позволяющие тестировать системы любой сложности. В мастер-классе будет наглядно показано создание следующих видов тестов: - с использование программ, генерирующих тесты по манипуляциям с браузером - тесты в стиле процедурного программирования - тесты в стиле объектно-ориентированного программирования - тесты на DSL (Domain Specific Language) языке

TRANSCRIPT

Page 1: Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей

Эволюция тестирования на Selenium

Мычко Алексей JazzTeam

Page 2: Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей

Что будет рассмотрено

1. Стратегия выбора способа для создания автотестов для web-приложений с помощью Selenium

2. Особенности различных способов3. Как изменяются тесты при

различных методах их создания4. Все на примерах!

Page 3: Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей

Способы создания автотестов

Будут рассмотрены 4-ре вида автотестов:

• Автосгенерированные• Написанные в процедурном стиле• Написанные в стиле ООП• Написанные с помощью

дополнительных фреймворков

Page 4: Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей

Требования к тестам

Существование различных способов создания тестов обусловлено:

• Временем на их создание• Планируемым временем

поддержки• Навыками людей• Сложность тестируемой системы• Необходимые проверки

Page 5: Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей

Тест-кейсы

Test-case 1:1. Log In as user1 (user1/pas1)2. Check that active user is User1 3. Logout

Test-case 2:1. Log In as user2 (user2/pas2)2. Check that active user is User23. Click to Settings4. Logout

Page 6: Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей

Тест-кейсы

1. Общие части, но с разными параметрами (login as user 1/2)

2. Действия до каждого теста и после (login/logout)

3. Одинаковые действия, встречающиеся в разных тестах (login/logout)

4. Действия, которые есть только в одном тесте (Click Jenkins settings)

Page 7: Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей

Автосгенерированные тесты

Средство:

Selenium IDE – плагин для FireFox

Применение: • Небольшие проекты• Тесты нужны очень быстро для

кратко-срочных целей• Слабый уровень квалицикации QA

Page 8: Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей
Page 9: Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей

Selenium IDE

• Достоинства– Тесты быстро создаются–Легко обучить персонал

• Недостатки – Сложность поддержки–Невозможно организовать некоторые

виды проверок

Page 10: Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей

Тесты в процедурном стиле

Средство:

Selenium Web Driver – библиотека для различных языков программирования

Применение: • Большие проекты• Если в тестах нужны специфические

проверки

Page 11: Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей

Тесты на Java

Page 12: Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей

WebDriver tests

• Достоинства– Позволяют использовать все возможности

выбранного языка программирования– При правильном написании – достаточно

расширяемы

• Недостатки – Есть проблемы при долгосрочном

использовании– Медленное внедрение тестов– Требуют определенных навыков

программирования у QA

Page 13: Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей

Тесты в стиле ООП

Средство:Selenium Web Driver – библиотека для

различных языков программированияПаттерн:

Page Object – отделение логики теста от способа обращения к тестируемому сайту

Применение: • Большие и долгосрочные проекты• Если в тестах нужна очень большая

гибкость

Page 14: Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей

Суть Page Object

• Упор на архитектуру тестов• Описание тестов в стиле ООП• Создается ООП модель всей

тестируемой системы• Эта модель не является тестом!• Она является интерфейсом для

будущих тестов, через который тесты получают доступ к системе

Page 15: Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей

Модель системы

• Описывается каждая страница, к которой тестам нужно обратится

• В странице только те действия, которые можно на ней выполнить

• Если есть переход на другую страницу – то в модели тоже происходит переход на другой объект

• Другой объект может выполнять только те действия, которые есть на реальной странице

Page 16: Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей

Тесты с моделью

• В тестах используется только модель• Тот кто пишет тест не видит

подробности работы WebDriver, для этого человека из модели доступны только те действия, которые можно выполнять на одноименной странице

• Остальные принципы построения тестов такие как и в предыдущем методе

Page 17: Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей

Page Object

Page 18: Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей

Page Object

Page 19: Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей

Page Object

Page 20: Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей

Page Object tests

• Достоинства–Максимальная гибкость тестов– Все преимущества предыдущего

подхода– Эффективная поддержка тестов в

долгосрочной перспективе

• Недостатки – Очень медленное внедрение тестов– Требуют высокий уровень знания

программирования у QA

Page 21: Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей

Тесты с использованием фреймворков

Для ускорения процесса создания тестов можно пользоваться различными средствами.

Одним из таких средств является фреймворк xml2selenium.

Это средство для создания тестов через описание их логики в XML файлах.

Page 22: Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей

Xml2Selenium

Предпосылки для создания фреймворка:- вопросы тестирования нескольких

версий одного и того же продукта- повторно-используемость наработок в

тестах, в том числе, и с разных проектов

- возможность быстро изменять данные в тестах

- возможность быстро поменять значения, или даже логику теста

Page 23: Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей

Xml2Selenium

Пример теста:

Page 24: Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей

Xml2Selenium репорт

Примеррепорта:

Page 25: Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей

Xml2Selenium репорт

Пример репорта:

Page 26: Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей

Xml2Selenium репорт

Пример репорта bdd:

Page 27: Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей

Xml2Selenium возможности

- Плагинность, полная расширяемость- Простое API- Сохранение скриншотов и видео теста- Интеграция с Junit, но независимость от

него. Возможность создавать свои раннеры

- Удобные репорты для бизнес-пользователей

- Поддержка if/for- Возможность самотестирования

Page 28: Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей

Xml2Selenium особенности

- Не нужны знания программирования

- Возможность использования лучших возможностей программирования: объединение общих фрагментов, использование переменных и файлов

- Возможность data driven testing- Возможность нагрузочного

тестирования

Page 29: Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей

Xml2Selenium

• Включает в себя достоинства 1-го и 2-го метода написания тестов:–Не нужно много времени чтобы

начать писать тесты– Тесты создаются быстро– Есть возможность с помощью

плагинов реализовать любую необходимую проверку

– Тесты легко поддерживаемы и расширяемы

Page 30: Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей

Спасибо за вниманиеОтвечу на любые ваши вопросы.

Также помогу более детально познакомится с проектом

Xml2Selenium

Мычко АлексейJazzTeam

[email protected]