1. Стратегия выбора способа для создания
   автотестов для web-приложений с
   помощью Selenium
2. Особенности различных способов
3. Как изменяются тесты при различных
   методах их создания
4. Все на примерах!
Будут рассмотрены 4-ре вида автотестов:
• Автосгенерированные
• Написанные в процедурном стиле
• Написанные в стиле ООП
• Написанные с помощью дополнительных
  фреймворков
Существование      различных   способов
  создания тестов обусловлено:
• Временем на их создание
• Планируемым временем поддержки
• Навыками людей
• Сложность тестируемой системы
• Необходимые проверки
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 User2
3. Click to Settings
4. Logout
1. Общие части, но с разными параметрами
   (login as user 1/2)
2. Действия до каждого теста и после
   (login/logout)
3. Одинаковые действия, встречающиеся в
   разных тестах (login/logout)
4. Действия, которые есть только в одном
   тесте (Click Jenkins settings)
Средство:
Selenium IDE – плагин для FireFox

Применение:
• Небольшие проекты
• Тесты нужны очень быстро для кратко-
  срочных целей
• Слабый уровень квалицикации QA
• Достоинства
  – Тесты быстро создаются
  – Легко обучить персонал
• Недостатки
  – Сложность поддержки
  – Невозможно организовать некоторые виды
    проверок
Средство:
Selenium Web Driver – библиотека для
  различных языков программирования

Применение:
• Большие проекты
• Если в тестах нужны специфические
  проверки
• Достоинства
  – Позволяют использовать все возможности
    выбранного языка программирования
  – При правильном написании – достаточно
    расширяемы
• Недостатки
  – Есть проблемы при долгосрочном
    использовании
  – Медленное внедрение тестов
  – Требуют определенных навыков
    программирования у QA
Средство:
Selenium Web Driver – библиотека для
  различных языков программирования
Паттерн:
Page Object – отделение логики теста от
  способа обращения к тестируемому сайту
Применение:
• Большие и долгосрочные проекты
• Если в тестах нужна очень большая
  гибкость
• Упор на архитектуру тестов
• Описание тестов в стиле ООП
• Создается ООП модель всей тестируемой
  системы
• Эта модель не является тестом!
• Она является интерфейсом для будущих
  тестов, через который тесты получают
  доступ к системе
• Описывается каждая страница, к которой
  тестам нужно обратится
• В странице только те действия, которые
  можно на ней выполнить
• Если есть переход на другую страницу – то в
  модели тоже происходит переход на другой
  объект
• Другой объект может выполнять только те
  действия, которые есть на реальной
  странице
• В тестах используется только модель
• Тот кто пишет тест не видит
  подробности работы WebDriver, для
  этого человека из модели доступны
  только те действия, которые можно
  выполнять на одноименной странице
• Остальные принципы построения тестов
  такие как и в предыдущем методе
• Достоинства
  – Максимальная гибкость тестов
  – Все преимущества предыдущего подхода
  – Эффективная поддержка тестов в
    долгосрочной перспективе
• Недостатки
  – Очень медленное внедрение тестов
  – Требуют высокий уровень знания
    программирования у QA
Для ускорения процесса создания тестов
 можно пользоваться различными
 средствами.
Одним из таких средств является
 фреймворк xml2selenium.
Это средство для создания тестов через
 описание их логики в XML файлах.
Предпосылки для создания фреймворка:
- вопросы тестирования нескольких версий
   одного и того же продукта
- повторно-используемость наработок в тестах,
   в том числе, и с разных проектов
- возможность быстро изменять данные в тестах
- возможность быстро поменять значения, или
   даже логику теста
Пример теста:
Пример репорта:
- Плагинность, полная расширяемость
- Простое API
- Сохранение скриншотов и видео теста
- Интеграция с Junit, но независимость от него.
  Возможность создавать свои раннеры
- Удобные репорты для бизнес-пользователей
- Поддержка if/for
- Возможность самотестирования
- Не нужны знания программирования
- Возможность использования лучших
  возможностей программирования:
  объединение общих фрагментов,
  использование переменных и файлов
- Возможность data driven testing
- Возможность нагрузочного тестирования
• Включает в себя достоинства 1-го и 2-го
  метода написания тестов:
  – Не нужно много времени чтобы начать
    писать тесты
  – Тесты создаются быстро
  – Есть возможность с помощью плагинов
    реализовать любую необходимую проверку
  – Тесты легко поддерживаемы и расширяемы
• Включает в себя достоинства 1-го и 2-го
  метода написания тестов:
  – Не нужно много времени чтобы начать
    писать тесты
  – Тесты создаются быстро
  – Есть возможность с помощью плагинов
    реализовать любую необходимую проверку
  – Тесты легко поддерживаемы и расширяемы
Отвечу на любые ваши вопросы. Также
 помогу более детально познакомится с
        проектом Xml2Selenium

           Мычко Алексей
               JazzTeam
    aliaksei.mychko@jazzteam.org

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

  • 2.
    1. Стратегия выбораспособа для создания автотестов для web-приложений с помощью Selenium 2. Особенности различных способов 3. Как изменяются тесты при различных методах их создания 4. Все на примерах!
  • 3.
    Будут рассмотрены 4-ревида автотестов: • Автосгенерированные • Написанные в процедурном стиле • Написанные в стиле ООП • Написанные с помощью дополнительных фреймворков
  • 4.
    Существование различных способов создания тестов обусловлено: • Временем на их создание • Планируемым временем поддержки • Навыками людей • Сложность тестируемой системы • Необходимые проверки
  • 5.
    Test-case 1: 1. LogIn 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 User2 3. Click to Settings 4. Logout
  • 6.
    1. Общие части,но с разными параметрами (login as user 1/2) 2. Действия до каждого теста и после (login/logout) 3. Одинаковые действия, встречающиеся в разных тестах (login/logout) 4. Действия, которые есть только в одном тесте (Click Jenkins settings)
  • 7.
    Средство: Selenium IDE –плагин для FireFox Применение: • Небольшие проекты • Тесты нужны очень быстро для кратко- срочных целей • Слабый уровень квалицикации QA
  • 9.
    • Достоинства – Тесты быстро создаются – Легко обучить персонал • Недостатки – Сложность поддержки – Невозможно организовать некоторые виды проверок
  • 10.
    Средство: Selenium Web Driver– библиотека для различных языков программирования Применение: • Большие проекты • Если в тестах нужны специфические проверки
  • 12.
    • Достоинства – Позволяют использовать все возможности выбранного языка программирования – При правильном написании – достаточно расширяемы • Недостатки – Есть проблемы при долгосрочном использовании – Медленное внедрение тестов – Требуют определенных навыков программирования у QA
  • 13.
    Средство: Selenium Web Driver– библиотека для различных языков программирования Паттерн: Page Object – отделение логики теста от способа обращения к тестируемому сайту Применение: • Большие и долгосрочные проекты • Если в тестах нужна очень большая гибкость
  • 14.
    • Упор наархитектуру тестов • Описание тестов в стиле ООП • Создается ООП модель всей тестируемой системы • Эта модель не является тестом! • Она является интерфейсом для будущих тестов, через который тесты получают доступ к системе
  • 15.
    • Описывается каждаястраница, к которой тестам нужно обратится • В странице только те действия, которые можно на ней выполнить • Если есть переход на другую страницу – то в модели тоже происходит переход на другой объект • Другой объект может выполнять только те действия, которые есть на реальной странице
  • 16.
    • В тестахиспользуется только модель • Тот кто пишет тест не видит подробности работы WebDriver, для этого человека из модели доступны только те действия, которые можно выполнять на одноименной странице • Остальные принципы построения тестов такие как и в предыдущем методе
  • 20.
    • Достоинства – Максимальная гибкость тестов – Все преимущества предыдущего подхода – Эффективная поддержка тестов в долгосрочной перспективе • Недостатки – Очень медленное внедрение тестов – Требуют высокий уровень знания программирования у QA
  • 21.
    Для ускорения процессасоздания тестов можно пользоваться различными средствами. Одним из таких средств является фреймворк xml2selenium. Это средство для создания тестов через описание их логики в XML файлах.
  • 22.
    Предпосылки для созданияфреймворка: - вопросы тестирования нескольких версий одного и того же продукта - повторно-используемость наработок в тестах, в том числе, и с разных проектов - возможность быстро изменять данные в тестах - возможность быстро поменять значения, или даже логику теста
  • 23.
  • 24.
  • 25.
    - Плагинность, полнаярасширяемость - Простое API - Сохранение скриншотов и видео теста - Интеграция с Junit, но независимость от него. Возможность создавать свои раннеры - Удобные репорты для бизнес-пользователей - Поддержка if/for - Возможность самотестирования
  • 26.
    - Не нужнызнания программирования - Возможность использования лучших возможностей программирования: объединение общих фрагментов, использование переменных и файлов - Возможность data driven testing - Возможность нагрузочного тестирования
  • 27.
    • Включает всебя достоинства 1-го и 2-го метода написания тестов: – Не нужно много времени чтобы начать писать тесты – Тесты создаются быстро – Есть возможность с помощью плагинов реализовать любую необходимую проверку – Тесты легко поддерживаемы и расширяемы
  • 28.
    • Включает всебя достоинства 1-го и 2-го метода написания тестов: – Не нужно много времени чтобы начать писать тесты – Тесты создаются быстро – Есть возможность с помощью плагинов реализовать любую необходимую проверку – Тесты легко поддерживаемы и расширяемы
  • 29.
    Отвечу на любыеваши вопросы. Также помогу более детально познакомится с проектом Xml2Selenium Мычко Алексей JazzTeam aliaksei.mychko@jazzteam.org