SlideShare a Scribd company logo
•UI-тесты
•–
•зло!
The fast and
the continuous
Andrei Solntsev
• 5 вещей,
которые вы делаете
в тестировании
неправильно
• Мечтаем
распараллелить
тесты
Вброс 1
• Мечтаем
иметь кластер
для тестов
Вброс 1
• И запускать тесты
ВСЕГО
за пару часов!
Вброс 1
• PageObjects
• Степы

Вброс 2
• TestNG
круче, чем
JUnit
Вброс 3
• “Как сказать
вебдрайверу
игнорировать
невалидные SSL серты?”
Вброс 4
• Как бороться
с окном
аутентификации?
Вброс 5
• Интеграционные тесты • ОБМАН!
J. B. Rainsberger
• Integration tests are SCAM

J. B. Rainsberger

http://devconfu.eu/video/239
• Integration tests are SCAM
• Integration tests are SCAM
• Integration tests are SCAM
• Integration tests are SCAM
• Integration tests are SCAM

Экспоненциальный рост!
• Тестируй по частям!

Линейный рост!
• Тестируй по частям!

UI-тесты - зло
Если у вас только UI-тесты
• Тестируй по частям!

• Это общий принцип
• Юнит-тесты
• UI-тесты
• Писать
• юнит-тесты
ВЫГОДНО
• Юнит-тесты - выгодно

• Менеджерам
• Юнит-тесты - выгодно

• Программерам
Давно пилишь?
• Да уж часа четыре!
• Так наточи пилу!
• Некогда, пилить надо...
Нам некогда писать юнит-тесты,
мы и так не успеваем.

Вы потому и не успеваете,
что у вас нет юнит-тестов!
The fast and the continuous (SeleniumCamp 2014)
• А что же с UI-тестами?
• То же самое!
Rocket science
Требования:
●
При скорости ветра 100 км/ч
●
Подъёмная сила крыла должна быть 150 кН

Как бы вы стали это тестировать?
Rocket science
Запустить ВЕСЬ самолёт
●
Протестировать крыло ОТДЕЛЬНО
●

Тестируемое

Эмулятор
Проблема нашего поколения
WebDriver позволяет
слишком легко
запустить
ВЕСЬ
самолёт
• Тестируй по частям!

Login

Заказы

LoginTest
• -1
• -2
• -3

Новый Отослан
• Тестируй по частям!

Login

Заказы

Новый Отослан

NewOrderTest
• -1
• -2
/fastLogin?user=bob&url=new-order
• А это не опасно?
• Нет!
• Только в тесте
• Выгода больше риска
/fastLogin?user=bob&url=new-order
• Быстрые тесты
БД

Сервисы

ВЕБ

Сервер
• Быстрые тесты
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);
server.start();
}
open(“http://localhost:8080/shop”);
http://habrahabr.ru/post/126066
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
Структура DB

<changeSet id="1">
<sql>
create table lang_words ();
</sql>
</changeSet>
http://xpdays.com.ua/materials/agile-db-with-liquibase/
Тестовые данные
<changeSet id="2" context="prod">
<loadData tableName="lang_words"
file="words.001.csv"/>
</changeSet>
<changeSet id="3" context="test">
<insert tableName="lang_words">
<column name="lang" value="ru"/>
<column name="topic" value="дом"/>
<column name="word" value="гвоздь"/>
</insert>
</changeSet>
https://github.com/asolntsev/hangman
• 5 вещей,
которые вы делаете
в тестировании
неправильно
• Распараллелить
тесты
• Запускать тесты
ВСЕГО за пару часов
У нас 200 тестов
бегают за 5 минут!
●

In-memory DB
Тестовые данные
Эмуляторы сервисов
fastLogin
• PageObjects
Один элемент
не должен использоваться
в 50 тестах!
• TestNG vs JUnit
Порядок тестов
●

Фу!

- fastLogin

Параметризованные тесты
●

UI-тесты – это 1-2 главные цепочки

●

Остальные 100500 - юнит-тестами
http://xpdays.com.ua/materials/junit-vs-testng/
Невалидные SSL серты
●

Тесты запускать ДО КОММИТА!

●

Тесты запускать на http://localhost:8080

●

Тесты вместе с кодом в GIT
> ant test
> ant uitest
• Тестировать ЧТО,
а не КАК
• Тестировать
важное для бизнеса,
а уж потом 100500 багов
• do MORE with LESS
• Что значит мастер
https://dl.dropboxusercontent.com/u/2856647/aikido.mp4

• Мастер не тот, кто знает
100500 технологий
• А тот, кто решает задачу легко,
потратив минимум энергии
• Андрей Солнцев

selenide.org

andrei.solntsev@gmail.com
twitter.com/asolntsev

More Related Content

PPTX
Экономически эффективный процесс тестирования (Codefest 2015)
ODP
The fast and the continuous
PPTX
Как играть без игрока
PPTX
Построение процесса тестирования производительности игрового клиента
PPSX
История HERE Maps for Windows: меняемся не изменяя качеству
PPTX
Автоматизация тестирования: доступна каждому или удел избранных?
PDF
Selenium grid on-demand
PDF
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Экономически эффективный процесс тестирования (Codefest 2015)
The fast and the continuous
Как играть без игрока
Построение процесса тестирования производительности игрового клиента
История HERE Maps for Windows: меняемся не изменяя качеству
Автоматизация тестирования: доступна каждому или удел избранных?
Selenium grid on-demand
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...

What's hot (19)

PPTX
Тестирование REST-сервисов с применением инженерных практик
PDF
Как устроен мониторинг в Badoo
PPTX
Qa Automation - отбрасываем лишнее и тестируем суть
PPTX
Автоматизированное тестирование верстки веб-сайтов, используя сравнение с диз...
ODP
Автоматизированное тестирование - от сложного к простому, или Запускаем автот...
PDF
Winium — это как Selenium, только под Windows
PDF
“Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числ...
PDF
«Я спросил у сервера...», Илья Пастушков
PPTX
Cовременный контроль качества: давай сделаем это по-быстрому...
PPTX
Причины и способы имитации back-end'а
PPTX
Как улучшить тесты на Selenium с помощью "визуального тестирования"?
PPTX
Web driver история одной миграции
PDF
Т. Черемных "Автоматизация тестирования верстки", DUMP-2014
PPTX
Автоматизация тестирования WEB API
PDF
Grail - CodeFest'2015
PPTX
Практика тестирования web сервисов
PPT
SQADAYS 21 Москва 2017
PDF
BDD girls Battle: Cucumber VS. JBehave
PPTX
GUI-автоматизация в Telerik Test Studio
Тестирование REST-сервисов с применением инженерных практик
Как устроен мониторинг в Badoo
Qa Automation - отбрасываем лишнее и тестируем суть
Автоматизированное тестирование верстки веб-сайтов, используя сравнение с диз...
Автоматизированное тестирование - от сложного к простому, или Запускаем автот...
Winium — это как Selenium, только под Windows
“Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числ...
«Я спросил у сервера...», Илья Пастушков
Cовременный контроль качества: давай сделаем это по-быстрому...
Причины и способы имитации back-end'а
Как улучшить тесты на Selenium с помощью "визуального тестирования"?
Web driver история одной миграции
Т. Черемных "Автоматизация тестирования верстки", DUMP-2014
Автоматизация тестирования WEB API
Grail - CodeFest'2015
Практика тестирования web сервисов
SQADAYS 21 Москва 2017
BDD girls Battle: Cucumber VS. JBehave
GUI-автоматизация в Telerik Test Studio
Ad

Viewers also liked (13)

PDF
Static website-generators
ODP
The fast and the continuous - SQA Days 16
PPT
Real-life unit tests
PPT
Functional Programming Dev Club 2009 - final
PPT
Android (Devclub.eu, 30.03.2010)
PDF
50 оттенков play!
PPT
WTF Code @ jug.lv
ODP
What is master @ SeleniumConf 2015
PDF
Extreme banking
PDF
Good test = simple test (with selenide)
ODP
Liquibase & Flyway @ Baltic DevOps
PDF
Bullshit driven development
PPTX
The Dangers of Cucumber
Static website-generators
The fast and the continuous - SQA Days 16
Real-life unit tests
Functional Programming Dev Club 2009 - final
Android (Devclub.eu, 30.03.2010)
50 оттенков play!
WTF Code @ jug.lv
What is master @ SeleniumConf 2015
Extreme banking
Good test = simple test (with selenide)
Liquibase & Flyway @ Baltic DevOps
Bullshit driven development
The Dangers of Cucumber
Ad

Similar to The fast and the continuous (SeleniumCamp 2014) (20)

PDF
Экономически эффективный процесс тестирования
PDF
Как построить свой фреймворк для автотестов?
PPTX
Автоматизация тестирования: отбрасываем лишнее и проверяем суть
PDF
Илья Кудинов
PDF
Артём Ерошенко, Станислав Селиверстов "Поиск багов в поиске"
ODP
Security zap and selenium
PDF
Развитие процессов тестирования в Badoo за три года
PDF
10M tests per day
PDF
Иван Евтухович — Как перестать релизиться и начать жить
PPTX
Codeception Introduction
PDF
Нагрузочное тестирование с помощью Яндекс.Танка
PDF
Организация процесса ручного тестирования
PDF
М. Боднарчук Современное функциональное тестирование с Codeception
PPT
Тестирование инсталляторов
PDF
Автоматическое тестирование. Моя система
PPTX
Михаил Боднарчук Современное функциональное тестирование с Codeception
PDF
Марина Широчкина - Тестирование
PDF
«Тестируем веб приложения», Павел Сташевский
PDF
Heavy metal testing Part 3
PDF
OpenSource инструменты. Тестируем Web-приложения
Экономически эффективный процесс тестирования
Как построить свой фреймворк для автотестов?
Автоматизация тестирования: отбрасываем лишнее и проверяем суть
Илья Кудинов
Артём Ерошенко, Станислав Селиверстов "Поиск багов в поиске"
Security zap and selenium
Развитие процессов тестирования в Badoo за три года
10M tests per day
Иван Евтухович — Как перестать релизиться и начать жить
Codeception Introduction
Нагрузочное тестирование с помощью Яндекс.Танка
Организация процесса ручного тестирования
М. Боднарчук Современное функциональное тестирование с Codeception
Тестирование инсталляторов
Автоматическое тестирование. Моя система
Михаил Боднарчук Современное функциональное тестирование с Codeception
Марина Широчкина - Тестирование
«Тестируем веб приложения», Павел Сташевский
Heavy metal testing Part 3
OpenSource инструменты. Тестируем Web-приложения

More from Andrei Solntsev (9)

PDF
Тройничок: Selenide для Web, Android и iOS
PDF
Flaky tests. Метод.
PPT
Батл: Тесты или не тесты?
PPT
Как получить чёрный пояс по программированию
PPTX
Selenide puzzlers @ devclub.eu
ODP
Liquibase: Enterprise Edition
PPT
Kiss.devclub ee.est
PPT
Evolutionary Database Design
PPT
Functional Programming In Java
Тройничок: Selenide для Web, Android и iOS
Flaky tests. Метод.
Батл: Тесты или не тесты?
Как получить чёрный пояс по программированию
Selenide puzzlers @ devclub.eu
Liquibase: Enterprise Edition
Kiss.devclub ee.est
Evolutionary Database Design
Functional Programming In Java

The fast and the continuous (SeleniumCamp 2014)