SlideShare a Scribd company logo
Yandex
experience in
screenshot
based testing
Selenium Camp, 28.02.14
Леонид Руденко
lead QA engineer
@leonsabr
leonsabr@yandex-team.ru
http://habrahabr.ru/
company/yandex/blog/
200968/
Серп
Колдунщик
Колдунщик
Вы тестируете представление?
Вы сравниваете скриншоты?
Знаете проблемы?
План
Зачем тестировать верстку
Проблемы и решения
Демо
А оно вам надо?
Зачем тестировать верстку
Проблемы и решения
Демо
А оно вам надо?
Обычные функциональные тесты
Слишком долго
«Сдвиг на пиксель – откатываем!»
Сравнение скриншотов
В основе
Зачем тестировать верстку
Проблемы и решения
Демо
А оно вам надо?
Проблемы
• Серп – «шумная» страница
• Кроссбраузерность
• Как сделать хороший отчет?
Страница выдачи изменчива
Страница выдачи изменчива
Так проще!
Selenium Grid
Специальная олимпиада браузеров
Opera: нужен скриншот?
Opera: нужен скриншот?

window.open(!
"http://www.yandex.ru", !
"ya",!
"height=400,width=1200”!
);!

26
Специальная олимпиада браузеров
IE
Windows
Потерянные клики
Специальная олимпиада браузеров
Функциональные тесты
WebDriver driver = ...;!
driver.get()/findElement()/...!
...!
assertThat(...);!
Функциональные тесты
WebDriver driver = ...;!
driver.get()/findElement()/...!
...!
assertThat(...);!
driver.get()/findElement()/...!
...!
assertThat(...);!
!
Функциональные тесты + скриншот
WebDriver driver = ...;!
driver.get()/findElement()/...!
...!
takeScreenshot(element);!
!
!
!
!
Как представить результаты?
Как представить результаты?
•  все важное – наверх
•  скриншоты не прятать
•  помочь в считывании диффа
•  разделять диффы скриншотов и broken
•  устаревшие сценарии не интересны
Зачем тестировать верстку
Проблемы и решения
Демо
А оно вам надо?
Кунсткамера: поехал текст
Кунсткамера: изображения
Кунсткамера: CSS
Кунсткамера: данные
Кунсткамера: переводы
В чем профит?
Зачем тестировать верстку
Проблемы и решения
Демо
А оно вам надо?
Стоит обратить внимание, если
•  нужно тестировать верстку
Стоит обратить внимание, если
•  нужно тестировать статическую графику
Стоит обратить внимание, если
•  у сервиса есть «темы оформления»
Твой сервис?
Что может доставить проблемы?
•  изменчивость сервиса
Что может доставить проблемы?
•  нужно больше браузеров
Что может доставить проблемы?
•  случайные ошибки (IE, фокус, …)
Что было дальше: весь серп
Что было дальше: CI
Вопросы?

More Related Content

What's hot

The fast and the continuous
The fast and the continuousThe fast and the continuous
The fast and the continuous
SQALab
 
История HERE Maps for Windows: меняемся не изменяя качеству
История HERE Maps for Windows: меняемся не изменяя качествуИстория HERE Maps for Windows: меняемся не изменяя качеству
История HERE Maps for Windows: меняемся не изменяя качеству
SQALab
 
Автоматизированное тестирование UI на C# + Selenium WebDriver
Автоматизированное тестирование UI на C# + Selenium WebDriverАвтоматизированное тестирование UI на C# + Selenium WebDriver
Автоматизированное тестирование UI на C# + Selenium WebDriver
Pavel Tsukanov
 
Построение процесса тестирования производительности игрового клиента
Построение процесса тестирования производительности игрового клиентаПостроение процесса тестирования производительности игрового клиента
Построение процесса тестирования производительности игрового клиента
SQALab
 
Тестирование производительности клиентсайда
Тестирование производительности клиентсайдаТестирование производительности клиентсайда
Тестирование производительности клиентсайда
SQALab
 
Т. Черемных "Автоматизация тестирования верстки", DUMP-2014
Т. Черемных "Автоматизация тестирования верстки", DUMP-2014Т. Черемных "Автоматизация тестирования верстки", DUMP-2014
Т. Черемных "Автоматизация тестирования верстки", DUMP-2014it-people
 
Webium: Page Objects in Python
Webium: Page Objects in PythonWebium: Page Objects in Python
Webium: Page Objects in Python
Igor Khrol
 
Автоматизация тестирования: доступна каждому или удел избранных?
Автоматизация тестирования: доступна каждому или удел избранных?Автоматизация тестирования: доступна каждому или удел избранных?
Автоматизация тестирования: доступна каждому или удел избранных?
SQALab
 
Selenide –  лаконичные тесты на Selenium 2 WebDriver + Java bindings
Selenide –  лаконичные тесты на Selenium 2 WebDriver + Java bindingsSelenide –  лаконичные тесты на Selenium 2 WebDriver + Java bindings
Selenide –  лаконичные тесты на Selenium 2 WebDriver + Java bindings
COMAQA.BY
 
SoapUI one key to all doors
SoapUI one key to all doorsSoapUI one key to all doors
SoapUI one key to all doors
Yegor Maksymchuk
 
Selenide
SelenideSelenide
SelenideISsoft
 
Встреча "Front-end: на старт, внимание, разработка!", Сергей Пузанков
 Встреча "Front-end: на старт, внимание, разработка!", Сергей Пузанков Встреча "Front-end: на старт, внимание, разработка!", Сергей Пузанков
Встреча "Front-end: на старт, внимание, разработка!", Сергей Пузанков
GoIT
 
Grail - CodeFest'2015
Grail - CodeFest'2015Grail - CodeFest'2015
Grail - CodeFest'2015
Igor Khrol
 
UXspb / Популярные ux-грабли 260214
UXspb / Популярные ux-грабли 260214UXspb / Популярные ux-грабли 260214
UXspb / Популярные ux-грабли 260214
cgvictor
 
Юрий Цыганенко
Юрий ЦыганенкоЮрий Цыганенко
Юрий Цыганенко
SQALab
 
One drive code spacemalinina 2
One drive code spacemalinina 2One drive code spacemalinina 2
One drive code spacemalinina 2
Ievgenii Katsan
 
Андрей Стахиевич - Тестирование в облаках
Андрей Стахиевич - Тестирование в облакахАндрей Стахиевич - Тестирование в облаках
Андрей Стахиевич - Тестирование в облаках
COMAQA.BY
 
Andrew Stepanov, Epam Systems "Zend Framework Projects Optimization by Andrew...
Andrew Stepanov, Epam Systems "Zend Framework Projects Optimization by Andrew...Andrew Stepanov, Epam Systems "Zend Framework Projects Optimization by Andrew...
Andrew Stepanov, Epam Systems "Zend Framework Projects Optimization by Andrew...EPAM Systems
 

What's hot (18)

The fast and the continuous
The fast and the continuousThe fast and the continuous
The fast and the continuous
 
История HERE Maps for Windows: меняемся не изменяя качеству
История HERE Maps for Windows: меняемся не изменяя качествуИстория HERE Maps for Windows: меняемся не изменяя качеству
История HERE Maps for Windows: меняемся не изменяя качеству
 
Автоматизированное тестирование UI на C# + Selenium WebDriver
Автоматизированное тестирование UI на C# + Selenium WebDriverАвтоматизированное тестирование UI на C# + Selenium WebDriver
Автоматизированное тестирование UI на C# + Selenium WebDriver
 
Построение процесса тестирования производительности игрового клиента
Построение процесса тестирования производительности игрового клиентаПостроение процесса тестирования производительности игрового клиента
Построение процесса тестирования производительности игрового клиента
 
Тестирование производительности клиентсайда
Тестирование производительности клиентсайдаТестирование производительности клиентсайда
Тестирование производительности клиентсайда
 
Т. Черемных "Автоматизация тестирования верстки", DUMP-2014
Т. Черемных "Автоматизация тестирования верстки", DUMP-2014Т. Черемных "Автоматизация тестирования верстки", DUMP-2014
Т. Черемных "Автоматизация тестирования верстки", DUMP-2014
 
Webium: Page Objects in Python
Webium: Page Objects in PythonWebium: Page Objects in Python
Webium: Page Objects in Python
 
Автоматизация тестирования: доступна каждому или удел избранных?
Автоматизация тестирования: доступна каждому или удел избранных?Автоматизация тестирования: доступна каждому или удел избранных?
Автоматизация тестирования: доступна каждому или удел избранных?
 
Selenide –  лаконичные тесты на Selenium 2 WebDriver + Java bindings
Selenide –  лаконичные тесты на Selenium 2 WebDriver + Java bindingsSelenide –  лаконичные тесты на Selenium 2 WebDriver + Java bindings
Selenide –  лаконичные тесты на Selenium 2 WebDriver + Java bindings
 
SoapUI one key to all doors
SoapUI one key to all doorsSoapUI one key to all doors
SoapUI one key to all doors
 
Selenide
SelenideSelenide
Selenide
 
Встреча "Front-end: на старт, внимание, разработка!", Сергей Пузанков
 Встреча "Front-end: на старт, внимание, разработка!", Сергей Пузанков Встреча "Front-end: на старт, внимание, разработка!", Сергей Пузанков
Встреча "Front-end: на старт, внимание, разработка!", Сергей Пузанков
 
Grail - CodeFest'2015
Grail - CodeFest'2015Grail - CodeFest'2015
Grail - CodeFest'2015
 
UXspb / Популярные ux-грабли 260214
UXspb / Популярные ux-грабли 260214UXspb / Популярные ux-грабли 260214
UXspb / Популярные ux-грабли 260214
 
Юрий Цыганенко
Юрий ЦыганенкоЮрий Цыганенко
Юрий Цыганенко
 
One drive code spacemalinina 2
One drive code spacemalinina 2One drive code spacemalinina 2
One drive code spacemalinina 2
 
Андрей Стахиевич - Тестирование в облаках
Андрей Стахиевич - Тестирование в облакахАндрей Стахиевич - Тестирование в облаках
Андрей Стахиевич - Тестирование в облаках
 
Andrew Stepanov, Epam Systems "Zend Framework Projects Optimization by Andrew...
Andrew Stepanov, Epam Systems "Zend Framework Projects Optimization by Andrew...Andrew Stepanov, Epam Systems "Zend Framework Projects Optimization by Andrew...
Andrew Stepanov, Epam Systems "Zend Framework Projects Optimization by Andrew...
 

Similar to Yandex experience-in-screenshot-based-testing-seleniumcamp-2014

Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
SQALab
 
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
COMAQA.BY
 
Изоморфные React-приложения: производительность и масштабирование
Изоморфные React-приложения: производительность и масштабированиеИзоморфные React-приложения: производительность и масштабирование
Изоморфные React-приложения: производительность и масштабирование
Denis Izmaylov
 
Изоморфные React-приложения производительность и масштабирование / Денис Изма...
Изоморфные React-приложения производительность и масштабирование / Денис Изма...Изоморфные React-приложения производительность и масштабирование / Денис Изма...
Изоморфные React-приложения производительность и масштабирование / Денис Изма...
Ontico
 
The fast and the continuous - SQA Days 16
The fast and the continuous - SQA Days 16The fast and the continuous - SQA Days 16
The fast and the continuous - SQA Days 16
Andrei Solntsev
 
Алексей Авдеев — Применение Backbone.js для рефакторинга фронтенда веб-прилож...
Алексей Авдеев — Применение Backbone.js для рефакторинга фронтенда веб-прилож...Алексей Авдеев — Применение Backbone.js для рефакторинга фронтенда веб-прилож...
Алексей Авдеев — Применение Backbone.js для рефакторинга фронтенда веб-прилож...
Yandex
 
Automating Canvas: difficult but possible
Automating Canvas: difficult but possibleAutomating Canvas: difficult but possible
Automating Canvas: difficult but possible
COMAQA.BY
 
Сергей Кокшаров. Особенности SEO для сайтов на JavaScript
Сергей Кокшаров. Особенности SEO для сайтов на JavaScriptСергей Кокшаров. Особенности SEO для сайтов на JavaScript
Сергей Кокшаров. Особенности SEO для сайтов на JavaScript
DariaShalahinova
 
Системное тестирование приложений на Ruby on Rails с применением Rspec и Cap...
Системное тестирование  приложений на Ruby on Rails с применением Rspec и Cap...Системное тестирование  приложений на Ruby on Rails с применением Rspec и Cap...
Системное тестирование приложений на Ruby on Rails с применением Rspec и Cap...lshevtsov
 
Изоморфные react-приложения
Изоморфные react-приложенияИзоморфные react-приложения
Изоморфные react-приложения
Denis Izmaylov
 
Доклады с прошедшей JiraMania: про обновления, зависимости и дедлоки
Доклады с прошедшей JiraMania: про обновления, зависимости и дедлокиДоклады с прошедшей JiraMania: про обновления, зависимости и дедлоки
Доклады с прошедшей JiraMania: про обновления, зависимости и дедлоки
Gonchik Tsymzhitov
 
Экономически эффективный процесс тестирования
Экономически эффективный процесс тестированияЭкономически эффективный процесс тестирования
Экономически эффективный процесс тестирования
CodeFest
 
Фреймворк автотестирования веб-сервисов своими силами
Фреймворк автотестирования веб-сервисов своими силамиФреймворк автотестирования веб-сервисов своими силами
Фреймворк автотестирования веб-сервисов своими силами
SQALab
 
Web driver история одной миграции
Web driver   история одной миграцииWeb driver   история одной миграции
Web driver история одной миграции
Igor Khrol
 
Решения для автоматизации тестирования Web-приложений на базе Selenium
Решения для автоматизации тестирования Web-приложений на базе SeleniumРешения для автоматизации тестирования Web-приложений на базе Selenium
Решения для автоматизации тестирования Web-приложений на базе Selenium
SQALab
 
Как улучшить тесты на Selenium с помощью "визуального тестирования"?
Как улучшить тесты на Selenium с помощью "визуального тестирования"?Как улучшить тесты на Selenium с помощью "визуального тестирования"?
Как улучшить тесты на Selenium с помощью "визуального тестирования"?
Oksana Avchinnikova
 
Roman Marinsky "Ретроспектива вивчення UI автоматизації"
Roman Marinsky "Ретроспектива вивчення UI автоматизації"Roman Marinsky "Ретроспектива вивчення UI автоматизації"
Roman Marinsky "Ретроспектива вивчення UI автоматизації"
Dakiry
 
Организация процесса ручного тестирования
Организация процесса ручного тестированияОрганизация процесса ручного тестирования
Организация процесса ручного тестирования
IT61
 
Светлана Федянина - Процесс тестирования в распределенной команде
Светлана Федянина - Процесс тестирования в распределенной командеСветлана Федянина - Процесс тестирования в распределенной команде
Светлана Федянина - Процесс тестирования в распределенной команде
SQALab
 
Процесс тестирования в распределенной команде
Процесс тестирования в распределенной командеПроцесс тестирования в распределенной команде
Процесс тестирования в распределенной команде
Svetlana Fedyanina
 

Similar to Yandex experience-in-screenshot-based-testing-seleniumcamp-2014 (20)

Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
 
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
Автоматизация визуального тестирования адаптивного дизайна на примере Galen F...
 
Изоморфные React-приложения: производительность и масштабирование
Изоморфные React-приложения: производительность и масштабированиеИзоморфные React-приложения: производительность и масштабирование
Изоморфные React-приложения: производительность и масштабирование
 
Изоморфные React-приложения производительность и масштабирование / Денис Изма...
Изоморфные React-приложения производительность и масштабирование / Денис Изма...Изоморфные React-приложения производительность и масштабирование / Денис Изма...
Изоморфные React-приложения производительность и масштабирование / Денис Изма...
 
The fast and the continuous - SQA Days 16
The fast and the continuous - SQA Days 16The fast and the continuous - SQA Days 16
The fast and the continuous - SQA Days 16
 
Алексей Авдеев — Применение Backbone.js для рефакторинга фронтенда веб-прилож...
Алексей Авдеев — Применение Backbone.js для рефакторинга фронтенда веб-прилож...Алексей Авдеев — Применение Backbone.js для рефакторинга фронтенда веб-прилож...
Алексей Авдеев — Применение Backbone.js для рефакторинга фронтенда веб-прилож...
 
Automating Canvas: difficult but possible
Automating Canvas: difficult but possibleAutomating Canvas: difficult but possible
Automating Canvas: difficult but possible
 
Сергей Кокшаров. Особенности SEO для сайтов на JavaScript
Сергей Кокшаров. Особенности SEO для сайтов на JavaScriptСергей Кокшаров. Особенности SEO для сайтов на JavaScript
Сергей Кокшаров. Особенности SEO для сайтов на JavaScript
 
Системное тестирование приложений на Ruby on Rails с применением Rspec и Cap...
Системное тестирование  приложений на Ruby on Rails с применением Rspec и Cap...Системное тестирование  приложений на Ruby on Rails с применением Rspec и Cap...
Системное тестирование приложений на Ruby on Rails с применением Rspec и Cap...
 
Изоморфные react-приложения
Изоморфные react-приложенияИзоморфные react-приложения
Изоморфные react-приложения
 
Доклады с прошедшей JiraMania: про обновления, зависимости и дедлоки
Доклады с прошедшей JiraMania: про обновления, зависимости и дедлокиДоклады с прошедшей JiraMania: про обновления, зависимости и дедлоки
Доклады с прошедшей JiraMania: про обновления, зависимости и дедлоки
 
Экономически эффективный процесс тестирования
Экономически эффективный процесс тестированияЭкономически эффективный процесс тестирования
Экономически эффективный процесс тестирования
 
Фреймворк автотестирования веб-сервисов своими силами
Фреймворк автотестирования веб-сервисов своими силамиФреймворк автотестирования веб-сервисов своими силами
Фреймворк автотестирования веб-сервисов своими силами
 
Web driver история одной миграции
Web driver   история одной миграцииWeb driver   история одной миграции
Web driver история одной миграции
 
Решения для автоматизации тестирования Web-приложений на базе Selenium
Решения для автоматизации тестирования Web-приложений на базе SeleniumРешения для автоматизации тестирования Web-приложений на базе Selenium
Решения для автоматизации тестирования Web-приложений на базе Selenium
 
Как улучшить тесты на Selenium с помощью "визуального тестирования"?
Как улучшить тесты на Selenium с помощью "визуального тестирования"?Как улучшить тесты на Selenium с помощью "визуального тестирования"?
Как улучшить тесты на Selenium с помощью "визуального тестирования"?
 
Roman Marinsky "Ретроспектива вивчення UI автоматизації"
Roman Marinsky "Ретроспектива вивчення UI автоматизації"Roman Marinsky "Ретроспектива вивчення UI автоматизації"
Roman Marinsky "Ретроспектива вивчення UI автоматизації"
 
Организация процесса ручного тестирования
Организация процесса ручного тестированияОрганизация процесса ручного тестирования
Организация процесса ручного тестирования
 
Светлана Федянина - Процесс тестирования в распределенной команде
Светлана Федянина - Процесс тестирования в распределенной командеСветлана Федянина - Процесс тестирования в распределенной команде
Светлана Федянина - Процесс тестирования в распределенной команде
 
Процесс тестирования в распределенной команде
Процесс тестирования в распределенной командеПроцесс тестирования в распределенной команде
Процесс тестирования в распределенной команде
 

Yandex experience-in-screenshot-based-testing-seleniumcamp-2014