SlideShare a Scribd company logo
1 of 57
•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-тесты
•Писать 
•юнит-тесты 
ВЫГОДНО
• Юнит-тесты - выгодно 
•Менеджерам
• Юнит-тесты - выгодно 
•Программерам
Нам некогда писать юнит-тесты, 
мы и так не успеваем. 
Вы потому и не успеваете, 
что у вас нет юнит-тестов!
Без юнит-тестов 
С юнит-тестами
Без юнит-тестов 
разработка 
С юнит-тестами 
разработка 
тест багфикс тест 
тест багфикс в бой!
•А что же с 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

What's hot

Типичные ошибки начинающих писать тесты на WebDriver
Типичные ошибки начинающих писать тесты на WebDriverТипичные ошибки начинающих писать тесты на WebDriver
Типичные ошибки начинающих писать тесты на WebDriver
Igor Khrol
 
QaAPI. Взгляд на тестирование с другой стороны баррикад. Доклад Дмитрия Марущ...
QaAPI. Взгляд на тестирование с другой стороны баррикад. Доклад Дмитрия Марущ...QaAPI. Взгляд на тестирование с другой стороны баррикад. Доклад Дмитрия Марущ...
QaAPI. Взгляд на тестирование с другой стороны баррикад. Доклад Дмитрия Марущ...
Badoo Development
 

What's hot (19)

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

Viewers also liked

Selenium with py test by Alexandr Vasyliev for Lohika Odessa Python TechTalks
Selenium with py test by Alexandr Vasyliev for Lohika Odessa Python TechTalksSelenium with py test by Alexandr Vasyliev for Lohika Odessa Python TechTalks
Selenium with py test by Alexandr Vasyliev for Lohika Odessa Python TechTalks
Lohika_Odessa_TechTalks
 
Кадры для ИТ-индустрии: найти и удержать
Кадры для ИТ-индустрии: найти и удержатьКадры для ИТ-индустрии: найти и удержать
Кадры для ИТ-индустрии: найти и удержать
SQALab
 
Организация процесса тестирования в Agile команде с помощью квадрантов тестир...
Организация процесса тестирования в Agile команде с помощью квадрантов тестир...Организация процесса тестирования в Agile команде с помощью квадрантов тестир...
Организация процесса тестирования в Agile команде с помощью квадрантов тестир...
SQALab
 
Промышленный подход к автоматизации тестирования или Keyword-driven testing в...
Промышленный подход к автоматизации тестирования или Keyword-driven testing в...Промышленный подход к автоматизации тестирования или Keyword-driven testing в...
Промышленный подход к автоматизации тестирования или Keyword-driven testing в...
SQALab
 

Viewers also liked (20)

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

Similar to The fast and the continuous

Марина Широчкина — «Тестирование»
Марина Широчкина — «Тестирование»Марина Широчкина — «Тестирование»
Марина Широчкина — «Тестирование»
Yandex
 
Test Driven Development in .NET Applications
Test Driven Development in .NET ApplicationsTest Driven Development in .NET Applications
Test Driven Development in .NET Applications
Anton Vidishchev
 
Юнит тестирование в Web. Как получать пользу и удовольствие.
Юнит тестирование в Web. Как получать пользу и удовольствие.Юнит тестирование в Web. Как получать пользу и удовольствие.
Юнит тестирование в Web. Как получать пользу и удовольствие.
Sergey Ryabenko
 
Heavy metal testing Part 3
Heavy metal testing Part 3Heavy metal testing Part 3
Heavy metal testing Part 3
Roman Ivliev
 
Artem Shabarshin. CSEDays
Artem Shabarshin. CSEDaysArtem Shabarshin. CSEDays
Artem Shabarshin. CSEDays
LiloSEA
 

Similar to The fast and the continuous (20)

Roman Marinsky "Ретроспектива вивчення UI автоматизації"
Roman Marinsky "Ретроспектива вивчення UI автоматизації"Roman Marinsky "Ретроспектива вивчення UI автоматизації"
Roman Marinsky "Ретроспектива вивчення UI автоматизації"
 
Марина Широчкина - Тестирование
Марина Широчкина - ТестированиеМарина Широчкина - Тестирование
Марина Широчкина - Тестирование
 
Марина Широчкина — «Тестирование»
Марина Широчкина — «Тестирование»Марина Широчкина — «Тестирование»
Марина Широчкина — «Тестирование»
 
«Я спросил у сервера...», Илья Пастушков
«Я спросил у сервера...», Илья Пастушков«Я спросил у сервера...», Илья Пастушков
«Я спросил у сервера...», Илья Пастушков
 
Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?
 
Автоматизация тестирования: отбрасываем лишнее и проверяем суть
Автоматизация тестирования: отбрасываем лишнее и проверяем сутьАвтоматизация тестирования: отбрасываем лишнее и проверяем суть
Автоматизация тестирования: отбрасываем лишнее и проверяем суть
 
Организация процесса ручного тестирования
Организация процесса ручного тестированияОрганизация процесса ручного тестирования
Организация процесса ручного тестирования
 
10M tests per day
10M tests per day10M tests per day
10M tests per day
 
Can we have some more quality - Russian version
Can we have some more quality - Russian versionCan we have some more quality - Russian version
Can we have some more quality - Russian version
 
Test Driven Development in .NET Applications
Test Driven Development in .NET ApplicationsTest Driven Development in .NET Applications
Test Driven Development in .NET Applications
 
Развитие процессов тестирования в Badoo за три года
Развитие процессов тестирования в Badoo за три годаРазвитие процессов тестирования в Badoo за три года
Развитие процессов тестирования в Badoo за три года
 
Юнит тестирование в Web. Как получать пользу и удовольствие.
Юнит тестирование в Web. Как получать пользу и удовольствие.Юнит тестирование в Web. Как получать пользу и удовольствие.
Юнит тестирование в Web. Как получать пользу и удовольствие.
 
QA Fest 2019. Андрей Солнцев. Десять причин моей ненависти
QA Fest 2019. Андрей Солнцев. Десять причин моей ненавистиQA Fest 2019. Андрей Солнцев. Десять причин моей ненависти
QA Fest 2019. Андрей Солнцев. Десять причин моей ненависти
 
Heavy metal testing Part 3
Heavy metal testing Part 3Heavy metal testing Part 3
Heavy metal testing Part 3
 
Илья Кудинов
Илья КудиновИлья Кудинов
Илья Кудинов
 
Тестирование инсталляторов
Тестирование инсталляторовТестирование инсталляторов
Тестирование инсталляторов
 
Артём Ерошенко, Станислав Селиверстов "Поиск багов в поиске"
Артём Ерошенко, Станислав Селиверстов "Поиск багов в поиске"Артём Ерошенко, Станислав Селиверстов "Поиск багов в поиске"
Артём Ерошенко, Станислав Селиверстов "Поиск багов в поиске"
 
Test driven development in net
Test driven development in netTest driven development in net
Test driven development in net
 
Автоматизация тестирования
Автоматизация тестированияАвтоматизация тестирования
Автоматизация тестирования
 
Artem Shabarshin. CSEDays
Artem Shabarshin. CSEDaysArtem Shabarshin. CSEDays
Artem Shabarshin. CSEDays
 

More from SQALab

More from SQALab (20)

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

The fast and the continuous