The fast and the continuous - SQA Days 16

57
UI-тесты зло!

description

The fast and the continuous * Вы всё ещё гоняете все свои тесты на Selenium? * Вы всё ещё считаете, что TestNG круче, чем JUnit? * Вы всё ещё пытаетесь распараллелить свои тесты? * Вы всё ещё мечтаете иметь собственный Selenium Grid с * 30 машинами и прогонять тесты всего лишь за пару часов? Тогда мы идём к вам! Я поделюсь нашим опытом автоматизации тестирования, расскажу, как нам удаётся командой из нескольких человек писать и код, и тесты, и прогонять полный цикл автотестов всего лишь за 5 минут без гридов и прочих монстров. Тестирование - это не должно быть сложно!

Transcript of The fast and the continuous - SQA Days 16

Page 1: The fast and the continuous - SQA Days 16

•UI-тесты •–

•зло!

Page 2: The fast and the continuous - SQA Days 16

The fast and the continuous

Andrei Solntsev

Page 3: The fast and the continuous - SQA Days 16

•5 вещей,которые вы делаете

в тестированиинеправильно

Page 4: The fast and the continuous - SQA Days 16

Вброс 1

•Мечтаемраспараллелить

тесты

Page 5: The fast and the continuous - SQA Days 16

Вброс 1

•И запускать тестыВСЕГО

за пару часов!

Page 6: The fast and the continuous - SQA Days 16

Вброс 2

•PageObjects•Степы

Page 7: The fast and the continuous - SQA Days 16

Вброс 3

•TestNG круче, чем

JUnit

Page 8: The fast and the continuous - SQA Days 16

Вброс 4

•“Как сказать вебдрайверуигнорировать

невалидные SSL серты?”

Page 9: The fast and the continuous - SQA Days 16

Вброс 5

•Как победить •StaleElementException?

Page 10: The fast and the continuous - SQA Days 16

•И вот почему:

Page 11: The fast and the continuous - SQA Days 16

•Интеграционные тесты - •ОБМАН!

J. B. Rainsberger

Page 12: The fast and the continuous - SQA Days 16

• Integration tests are SCAM

http://devconfu.eu/video/239J. B. Rainsberger

Page 13: The fast and the continuous - SQA Days 16

• Интеграционные тесты - ОБМАН

Page 14: The fast and the continuous - SQA Days 16

• Интеграционные тесты - ОБМАН

Page 15: The fast and the continuous - SQA Days 16

• Интеграционные тесты - ОБМАН

Page 16: The fast and the continuous - SQA Days 16

• Интеграционные тесты - ОБМАН

Page 17: The fast and the continuous - SQA Days 16

Экспоненциальный рост!

• Интеграционные тесты - ОБМАН

Page 18: The fast and the continuous - SQA Days 16

•Что же делать?

Page 19: The fast and the continuous - SQA Days 16

тестируй!

•и

•Разбивай

Page 20: The fast and the continuous - SQA Days 16

• Разбивай и тестируй!

Линейный рост!

Page 21: The fast and the continuous - SQA Days 16

• Разбивай и тестируй!

UI-тесты - зло

Если у вас только UI-тесты

Page 22: The fast and the continuous - SQA Days 16

• Разбивай и тестируй!

•Это общий принцип

• Юнит-тесты• UI-тесты

Page 23: The fast and the continuous - SQA Days 16

•Писать•юнит-тесты

ВЫГОДНО

Page 24: The fast and the continuous - SQA Days 16

• Юнит-тесты - выгодно

•Менеджерам

Page 25: The fast and the continuous - SQA Days 16

• Юнит-тесты - выгодно

•Программерам

Page 26: The fast and the continuous - SQA Days 16

Нам некогда писать юнит-тесты,мы и так не успеваем.

Вы потому и не успеваете,что у вас нет юнит-тестов!

Page 27: The fast and the continuous - SQA Days 16

Без юнит-тестов

С юнит-тестами

Page 28: The fast and the continuous - SQA Days 16

Без юнит-тестов

С юнит-тестами

разработка

разработка

тест багфикс тест

тест багфикс в бой!

Page 29: The fast and the continuous - SQA Days 16
Page 30: The fast and the continuous - SQA Days 16

•А что же с UI-тестами?

•То же самое!

Page 31: The fast and the continuous - SQA Days 16

Rocket scienceТребования:● При скорости ветра 100 км/ч● Подъёмная сила крыла должна быть 150 кН

Как бы вы стали это тестировать?

Page 32: The fast and the continuous - SQA Days 16

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

Rocket science

Тестируемое

Эмулятор

Page 33: The fast and the continuous - SQA Days 16

WebDriver позволяетслишком легко

запустить ВЕСЬ

самолёт

Проблема нашего поколения

Page 34: The fast and the continuous - SQA Days 16

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

• Пирамида тестирования

Page 35: The fast and the continuous - SQA Days 16

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

• Матрёшка тестирования

Page 36: The fast and the continuous - SQA Days 16

Логин Заказы Новый Отослан

• Разбивай и тестируй!

LoginTest• - 1• - 2• - 3

Page 37: The fast and the continuous - SQA Days 16

Логин Заказы Новый Отослан

NewOrderTest• - 1• - 2

/fastLogin?user=bob&url=/orders/new

• Разбивай и тестируй!

Page 38: The fast and the continuous - SQA Days 16

•А это не опасно?

• Нет!• Только в тесте• Выгода больше риска

/fastLogin?user=bob&url=/orders/new

Page 39: The fast and the continuous - SQA Days 16

•Быстрые тесты

ВЕБ

БД

Сервер

Сервисы

Page 40: The fast and the continuous - SQA Days 16

•Быстрые тесты

ВЕБ

БД

Сервер

Сервисы

In-memory – H2, Sqlite

- Jetty

Эмулятор

- Play!

Page 41: The fast and the continuous - SQA Days 16

Сервер

http://habrahabr.ru/post/126066/

@BeforeClasspublic static void startServer() { Server server = new Server(8080);

WebAppContext shop = new WebAppContext("webapp", "/shop"); server.setHandlers(shop);

server.start();}

Page 42: The fast and the continuous - SQA Days 16

@Testpublic void loginTest() { open(“http://localhost:8080/shop”);}

Сервер запустился!Без всякой инсталляции

Прямо из тестовВ считанные секунды

Page 43: The fast and the continuous - SQA Days 16

In-memory DB

db.url=jdbc:oracle:thin:@ip:1521:SIDdb.driver=oracle.jdbc.OracleDriver

%test.db.url=jdbc:h2:mem:shop%test.db.driver=org.h2.Driver

Структура ДБ:

Page 44: The fast and the continuous - SQA Days 16

•5 вещей,которые вы делаете

в тестированиинеправильно

Page 45: The fast and the continuous - SQA Days 16

•Распараллелить тесты

Page 46: The fast and the continuous - SQA Days 16

•Запускать тестыВСЕГО за пару часов

У нас 300 тестовбегают за 4 минуты!

In-memory DB Тестовые данные Эмуляторы сервисов fastLogin

Page 47: The fast and the continuous - SQA Days 16

• Видео:• https://vimeo.com/73128965

Page 48: The fast and the continuous - SQA Days 16

Один элемент не должен использоваться

в 50 тестах!

•PageObjects

Page 49: The fast and the continuous - SQA Days 16

•TestNG vs JUnit

Порядок тестов

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

http://xpdays.com.ua/materials/junit-vs-testng/

● Фу! - fastLogin

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

● Остальные 100500 - юнит-тестами

Page 50: The fast and the continuous - SQA Days 16

Невалидные SSL серты

разраб админhttps://test.firma.ruразраб QA

Page 51: The fast and the continuous - SQA Days 16

Невалидные SSL серты

разраб

QA

http://localhost:8080разраб админ

http://localhost:8080

Page 52: The fast and the continuous - SQA Days 16

Невалидные SSL серты

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

● Тесты вместе с кодом в GIT

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

> ant unit-tests

> ant ui-tests

Page 53: The fast and the continuous - SQA Days 16

Используй правильные инструменты!

• Как победить • StaleElementException?

Инструмент многое может

Инструмент решает мои проблемы

Page 54: The fast and the continuous - SQA Days 16

WebDriverWait.presenceOfElementLocated

ru.selenide.org

StaleElementException

Implicit timeout

Page 55: The fast and the continuous - SQA Days 16

Используй правильные инструменты!

Винтовка -

оружие новичка

Выбор профессионала -

нож!

Page 56: The fast and the continuous - SQA Days 16

•Что значит мастер

Видео:https://dl.dropboxusercontent.com/u/2856647/aikido.mp4

• Мастер не тот, кто знает100500 технологий

• А тот, кто решает задачу легко,потратив минимум энергии

Page 57: The fast and the continuous - SQA Days 16

•Андрей Солнцев

[email protected]/asolntsev

selenide.org