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

Preview:

DESCRIPTION

Slides from Selenium Camp 2014 talk (February 28, 2014, stage A) about screenshot based testing.

Citation preview

Selenium Camp, 28.02.14

Yandex experience in screenshot based testing

Леонид Руденко

lead QA engineer

@leonsabr leonsabr@yandex-team.ru http://habrahabr.ru/company/yandex/blog/200968/

Серп

Колдунщик

Колдунщик

Вы тестируете представление?

Вы сравниваете скриншоты?

Знаете проблемы?

План

Зачем тестировать верстку

Проблемы и решения

Демо

А оно вам надо?

Зачем тестировать верстку

Проблемы и решения

Демо

А оно вам надо?

Обычные функциональные тесты

Слишком долго

«Сдвиг на пиксель – откатываем!»

Сравнение скриншотов

В основе

Зачем тестировать верстку

Проблемы и решения

Демо

А оно вам надо?

Проблемы

• Серп – «шумная» страница

• Кроссбраузерность

• Как сделать хороший отчет?

Страница выдачи изменчива

Страница выдачи изменчива

Так проще!

Selenium Grid

Специальная олимпиада браузеров

Opera: нужен скриншот?

26

Opera: нужен скриншот?

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

Специальная олимпиада браузеров

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

Вопросы?