SlideShare a Scribd company logo
•UI-тесты 
•– 
•зло!
The fast and 
the continuous 
Andrei Solntsev
•5 вещей, 
которые вы делаете 
в тестировании 
неправильно
•Мечтаем 
распараллелить 
тесты 
Вброс 1
•И запускать тесты 
ВСЕГО 
за пару часов! 
Вброс 1
•PageObjects 
•Степы 
Вброс 2
•TestNG 
круче, чем 
JUnit 
Вброс 3
•“Как сказать 
вебдрайверу 
игнорировать 
невалидные SSL серты?” 
Вброс 4
•Как победить 
•StaleElementException? 
Вброс 5
•И вот почему:
•Интеграционные тесты - 
•ОБМАН! 
J. B. Rainsberger
• Integration tests are SCAM 
http://devconfu.eu/video/239 J. B. Rainsberger
• Интеграционные тесты - ОБМАН
• Интеграционные тесты - ОБМАН
• Интеграционные тесты - ОБМАН
• Интеграционные тесты - ОБМАН
• Интеграционные тесты - ОБМАН 
Экспоненциальный рост!
•Что же делать?
•Разбивай 
•и 
тестируй!
• Разбивай и тестируй! 
Линейный рост!
• Разбивай и тестируй! 
UI-тесты - зло 
Если у вас только UI-тесты
• Разбивай и тестируй! 
•Это общий принцип 
• Юнит-тесты 
• UI-тесты
•Писать 
•юнит-тесты 
ВЫГОДНО
• Юнит-тесты - выгодно 
•Менеджерам
• Юнит-тесты - выгодно 
•Программерам
Нам некогда писать юнит-тесты, 
мы и так не успеваем. 
Вы потому и не успеваете, 
что у вас нет юнит-тестов!
Без юнит-тестов 
С юнит-тестами
Без юнит-тестов 
разработка 
С юнит-тестами 
разработка 
тест багфикс тест 
тест багфикс в бой!
The fast and the continuous
•А что же с UI-тестами? 
•То же самое!
Rocket science 
Требования: 
● При скорости ветра 100 км/ч 
● Подъёмная сила крыла должна быть 150 кН 
Как бы вы стали это тестировать?
Rocket science 
● Запустить ВЕСЬ самолёт 
● Протестировать крыло ОТДЕЛЬНО 
Тестируемое 
Эмулятор
Проблема нашего поколения 
WebDriver позволяет 
слишком легко 
запустить 
ВЕСЬ 
самолёт
• Пирамида тестирования 
Новый Отослан
• Матрёшка тестирования 
Новый Отослан
• Разбивай и тестируй! 
Логин Заказы Новый Отослан 
LoginTest 
• - 1 
• - 2 
• - 3
• Разбивай и тестируй! 
Логин Заказы Новый Отослан 
NewOrderTest 
• - 1 
• - 2 
/fastLogin?user=bob&url=/orders/new
•А это не опасно? 
• Нет! 
• Только в тесте 
• Выгода больше риска 
/fastLogin?user=bob&url=/orders/new
•Быстрые тесты 
БД 
ВЕБ 
Сервер 
Сервисы
•Быстрые тесты 
In-memory – H2, Sqlite 
БД 
ВЕБ 
Сервер 
Сервисы 
- Jetty 
Эмулятор 
- Play!
Сервер 
@BeforeClass 
public static void startServer() { 
Server server = new Server(8080); 
WebAppContext shop = 
new WebAppContext("webapp", 
"/shop"); 
server.setHandlers(shop); 
http://habrahabr.ru/post/126066 
/ 
server.start(); 
}
Сервер запустился! 
Без всякой инсталляции 
В считанные секунды 
@Test 
public void loginTest() { 
open(“http://localhost:8080/shop”); 
} 
Прямо из тестов
In-memory DB 
db.url=jdbc:oracle:thin:@ip:1521:SID 
db.driver=oracle.jdbc.OracleDriver 
%test.db.url=jdbc:h2:mem:shop 
%test.db.driver=org.h2.Driver 
Структура ДБ:
•5 вещей, 
которые вы делаете 
в тестировании 
неправильно
•Распараллелить 
тесты
•Запускать тесты 
ВСЕГО за пару часов 
У нас 300 тестов 
бегают за 4 минуты! 
In-memory DB 
Тестовые данные 
Эмуляторы сервисов 
fastLogin
• Видео: 
• https://vimeo.com/73128965
•PageObjects 
Один элемент 
не должен использоваться 
в 50 тестах!
•TestNG vs JUnit 
Порядок тестов 
● Фу! - fastLogin 
Параметризованные тесты 
● UI-тесты – это 1-2 главные цепочки 
● Остальные 100500 - юнит-тестами 
http://xpdays.com.ua/materials/junit-vs-testng/
Невалидные SSL серты 
разраб админ 
https:// 
test.firma.ru QA
Невалидные SSL серты 
разраб 
http:// 
localhost:8080 админ 
QA 
http:// 
localhost:8080
Невалидные SSL серты 
● Тесты запускать ДО КОММИТА! 
● Тесты запускать на http://localhost:8080 
● Тесты вместе с кодом в GIT 
> ant unit-tests 
> ant ui-tests
• Как победить 
• StaleElementException? 
Используй правильные 
инструменты! 
Инструмент 
многое может 
Инструмент 
решает мои 
проблемы
ru.selenide.org 
StaleElementException 
WebDriverWait.presenceOfElementLocated 
Implicit timeout
Используй правильные 
инструменты! 
Винтовка - 
оружие новичка 
Выбор профессионала - 
нож!
•Что значит мастер 
Видео: 
https://dl.dropboxusercontent.com/u/2856647/aikido.mp4 
• Мастер не тот, кто знает 
100500 технологий 
• А тот, кто решает задачу легко, 
потратив минимум энергии
•Андрей Солнцев 
andrei.solntsev@gmail.com 
twitter.com/asolntsev 
selenide.org

More Related Content

PPTX
Как играть без игрока
PPTX
Автоматизация тестирования: доступна каждому или удел избранных?
PPSX
История HERE Maps for Windows: меняемся не изменяя качеству
PPTX
Qa Automation - отбрасываем лишнее и тестируем суть
PPTX
Cовременный контроль качества: давай сделаем это по-быстрому...
PDF
“Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числ...
PPTX
Test Automation Wargaming SQA Days 17
PPTX
Web driver история одной миграции
Как играть без игрока
Автоматизация тестирования: доступна каждому или удел избранных?
История HERE Maps for Windows: меняемся не изменяя качеству
Qa Automation - отбрасываем лишнее и тестируем суть
Cовременный контроль качества: давай сделаем это по-быстрому...
“Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числ...
Test Automation Wargaming SQA Days 17
Web driver история одной миграции

What's hot (19)

PDF
Grail - CodeFest'2015
PDF
Тестировщик в Agile - кто он?
PPTX
Построение процесса тестирования производительности игрового клиента
PDF
Grail: шаги для ваших Python-тестов
PPTX
Автоматическое тестирование Web api
PPTX
Повышаем надёжность тестов через JavaScript
PPTX
Автоматизация тестирования ролей и привилегий
PDF
Автоматическое тестирование. Моя система
PDF
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
PPTX
Webium: Page Objects in Python
PDF
Экономически эффективный процесс тестирования
PPTX
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
PPT
Кому следует писать автоматические тесты?
ODP
The fast and the continuous (SeleniumCamp 2014)
PPTX
GUI-автоматизация в Telerik Test Studio
PPTX
Типичные ошибки начинающих писать тесты на WebDriver
PPTX
Практика тестирования web сервисов
PPTX
Экономически эффективный процесс тестирования (Codefest 2015)
PDF
QaAPI. Взгляд на тестирование с другой стороны баррикад. Доклад Дмитрия Марущ...
Grail - CodeFest'2015
Тестировщик в Agile - кто он?
Построение процесса тестирования производительности игрового клиента
Grail: шаги для ваших Python-тестов
Автоматическое тестирование Web api
Повышаем надёжность тестов через JavaScript
Автоматизация тестирования ролей и привилегий
Автоматическое тестирование. Моя система
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Webium: Page Objects in Python
Экономически эффективный процесс тестирования
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
Кому следует писать автоматические тесты?
The fast and the continuous (SeleniumCamp 2014)
GUI-автоматизация в Telerik Test Studio
Типичные ошибки начинающих писать тесты на WebDriver
Практика тестирования web сервисов
Экономически эффективный процесс тестирования (Codefest 2015)
QaAPI. Взгляд на тестирование с другой стороны баррикад. Доклад Дмитрия Марущ...
Ad

Viewers also liked (20)

PPT
Selenium with py test by Alexandr Vasyliev for Lohika Odessa Python TechTalks
PDF
Нескучное тестирование с pytest
PPTX
Грязная автоматизация
PPT
SOLIDарность: Тестирование как разработка
PPT
Эффективный тест-менеджмент... и как с ним бороться
PDF
Разработка через тестирование (TDD и BDD)
PPTX
Приключения белого ящика в стране покрытий
PPTX
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
PPTX
Использование Open Source инструментов для автоматизации тестирования
PPTX
Коммуникации в тестировании
PPTX
ISTQB Сертификация. Приводим знания в порядок
PDF
Практическое пособие по разрушению отдела тестирования
PPTX
Качества хорошего тест-лида
PPTX
Тестовые оракулы на основе концепции EI/EQ (эмоционального интеллекта)
PPT
Проектирование пользовательских интерфейсов в компании EPAM Systems
PPTX
Как оценить команду тестирования и как направить их развитие в нужное русло
DOC
Кадры для ИТ-индустрии: найти и удержать
PPTX
Организация процесса тестирования в Agile команде с помощью квадрантов тестир...
PPTX
Вебинар: Технологии разработки индивидуальных планов развития
PPTX
Промышленный подход к автоматизации тестирования или Keyword-driven testing в...
Selenium with py test by Alexandr Vasyliev for Lohika Odessa Python TechTalks
Нескучное тестирование с pytest
Грязная автоматизация
SOLIDарность: Тестирование как разработка
Эффективный тест-менеджмент... и как с ним бороться
Разработка через тестирование (TDD и BDD)
Приключения белого ящика в стране покрытий
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
Использование Open Source инструментов для автоматизации тестирования
Коммуникации в тестировании
ISTQB Сертификация. Приводим знания в порядок
Практическое пособие по разрушению отдела тестирования
Качества хорошего тест-лида
Тестовые оракулы на основе концепции EI/EQ (эмоционального интеллекта)
Проектирование пользовательских интерфейсов в компании EPAM Systems
Как оценить команду тестирования и как направить их развитие в нужное русло
Кадры для ИТ-индустрии: найти и удержать
Организация процесса тестирования в Agile команде с помощью квадрантов тестир...
Вебинар: Технологии разработки индивидуальных планов развития
Промышленный подход к автоматизации тестирования или Keyword-driven testing в...
Ad

Similar to The fast and the continuous (20)

PDF
QA Fest 2019. Андрей Солнцев. Десять причин моей ненависти
PPTX
А вы знаете что тестируют ваши тесты?
PPTX
Do you know what you are testing?
PPTX
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...
PPTX
Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mai...
PDF
Java осень 2013 лекция 5-1
PDF
Артём Ерошенко, Станислав Селиверстов "Поиск багов в поиске"
PPTX
вебинар - функциональное тестирование с использованием Selenium 2 и TestNG
PPTX
Тестирование крупных проектов командой из одного тестировщика
PPTX
Тестирование крупного проекта командой из одного тестировщика
PPTX
Автоматизация тестирования многопоточности
PPTX
Поиск багов в поиске
PDF
Тестирование весна 2013 лекция 3
PPTX
Автоматизация тестирования: отбрасываем лишнее и проверяем суть
PPT
Автоматизируйте это немедленно или коллекция инструментов автотестирования с ...
PDF
Как построить свой фреймворк для автотестов?
PPTX
Читабельные отчеты для автоматизации на C# / Gallio / BDDfy
PPTX
Seamy side of autotests
PPTX
Автоматизированное тестирование не-тестировщиками
PPTX
Артем Розуменко - "Как и зачем разрабатывать собственный фреймворк?"
QA Fest 2019. Андрей Солнцев. Десять причин моей ненависти
А вы знаете что тестируют ваши тесты?
Do you know what you are testing?
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...
Технологии тестирования Rich Web client, Андрей Плешков, Форум Технологий Mai...
Java осень 2013 лекция 5-1
Артём Ерошенко, Станислав Селиверстов "Поиск багов в поиске"
вебинар - функциональное тестирование с использованием Selenium 2 и TestNG
Тестирование крупных проектов командой из одного тестировщика
Тестирование крупного проекта командой из одного тестировщика
Автоматизация тестирования многопоточности
Поиск багов в поиске
Тестирование весна 2013 лекция 3
Автоматизация тестирования: отбрасываем лишнее и проверяем суть
Автоматизируйте это немедленно или коллекция инструментов автотестирования с ...
Как построить свой фреймворк для автотестов?
Читабельные отчеты для автоматизации на C# / Gallio / BDDfy
Seamy side of autotests
Автоматизированное тестирование не-тестировщиками
Артем Розуменко - "Как и зачем разрабатывать собственный фреймворк?"

More from SQALab (20)

PDF
Готовим стажировку
PPTX
Куда приводят мечты? или Искусство развития тестировщика
PPT
Оптимизация Selenium тестов и ускорение их поддержки
PPT
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
PPTX
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
PPTX
Continuous performance testing
PDF
Конфиги вместо костылей. Pytestconfig и зачем он нужен
PPT
Команда чемпионов в ИТ стихии
PPTX
API. Серебряная пуля в магазине советов
PPTX
Добиваемся эффективности каждого из 9000+ UI-тестов
PPT
Делаем автоматизацию проектных KPIs
PDF
Вредные привычки в тест-менеджменте
PPTX
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
PPT
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
PPTX
Стили лидерства и тестирование
PPT
"Давайте не будем про качество"
PDF
Apache.JMeter для .NET-проектов
PPTX
Тестирование геолокационных систем
PPTX
Лидер или босс? Вот в чем вопрос
PPTX
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
Готовим стажировку
Куда приводят мечты? или Искусство развития тестировщика
Оптимизация Selenium тестов и ускорение их поддержки
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Continuous performance testing
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Команда чемпионов в ИТ стихии
API. Серебряная пуля в магазине советов
Добиваемся эффективности каждого из 9000+ UI-тестов
Делаем автоматизацию проектных KPIs
Вредные привычки в тест-менеджменте
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Стили лидерства и тестирование
"Давайте не будем про качество"
Apache.JMeter для .NET-проектов
Тестирование геолокационных систем
Лидер или босс? Вот в чем вопрос
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...

The fast and the continuous