SlideShare a Scribd company logo
1 of 73
Download to read offline
Тестирование 
CSS-регрессий с gemini 
Сергей Татаринцев, Яндекс 
Я.Cубботник в Киеве, 22 ноября
О чем рассказ 
Зачем тестировать верстку? 
Как это делать? 
Какие есть инструменты для этого? 
Почему мы сделали свой? 
Как им пользоваться? 
Как считать покрытие? 
2
Компонентный веб 
3
Библиотеки 
4 библиотеки 
62 блока 
Более 15 браузеров в поддержке 
Преимущественно ручное тестирование 
4
Тестировать вручную — 
долго и ненадежно 
5
6
Автоматизация 
jscs 
7
Регрессии в СSS – ??? 
8
9
Писать обычные тесты? 
10 
getComputedCss(block).borderWidth.should.be('2px')
11 
border box-shadow
Чего хочется? 
12
Тестировать в разных 
браузерах 
13
Браузер, в котором мы 
14
Все остальные 
15
Тестировать фрагменты 
страниц 
16
Страница 
17
Много страниц 
18
Поломка 
✘ 
19
Все плохо 
✘ ✘ ✘ ✘ ✘ 
✘ ✘ ✘ ✘ ✘ 
✘ ✘ ✘ ✘ ✘ 
✘ ✘ ✘ ✘ ✘ 
20
Плохо не все 
✘ 
✓ ✓ 
✓ 
21
Динамический контент 
22
Нельзя тестировать ничего 
Нельзя тестировать 
23
Что-то протестировать 
Нельзя тестировать 
24 
Можно тестировать 
Можно 
тестировать 
Можно тестировать
Тестирование в различных 
состояниях 
25
Просто ссылка 
Ссылка Ссылка 
Ссылка Ссылка 
26
Эталонные скриншоты 
хранить в репозитории 
27
Это быстрее 
28
git checkout long-time-ago 
29
30
Существующие 
инструменты 
31
DPXDT 
github.com/bslatkin/dpxdt 
Не нужен код тестов 
Нужен эталонный URL 
Скриншоты всей страницы 
В начальном состоянии 
32
casper.js + phantom.css 
github.com/Huddle/PhantomCSS 
Снимает фрагменты 
Тестирование различных 
состояний 
Только в phantom.js 
33
Huxley 
github.com/facebook/huxley 
Не нужен код тестов 
Тестирование различных состояний 
Скриншот всей страницы 
Один браузер 
34
Сравнение 
dpxdt phantom.css Huxley 
Разные браузеры ✘ ✘ ✘ 
Сравнение фрагментов ✘ ✘ 
Скриншоты в репозитории ✘ 
Различные состояния ✘ 
JavaScript ✘ ✘ 
35
WebDriverCSS 
Выпущен одновременно с нашим инструментом 
Нет «умного» diff 
Нет подсчета покрытия 
Нет GUI 
Не учитывает outline и box-shadow 
Есть возможность исключить область 
36
gemini 
Наш opensource инструмент для 
37
Состоит из 
38
Diff изображений 
39 
rgb(127, 127, 255) rgb(125, 125, 255)
Diff изображений 
40 
Одинаковые картинки
Для работы с 
41 
github.com/bem/png-img 
github.com/SevInf/looks-same
Работа с gemini 
42
Схема работы 
Тестовый набор 
Состояние 1 Действия 
Состояние 2 Действия 
Состояние N Действия 
43
Текстовое 
поле 
plain 
focused Нажать левую кнопку 
text Ввести текст 
44
Создание набора 
var gemini = require('gemini'); 
gemini.suite('input', function(suite) { 
}); 
45
Задание URL 
suite.setUrl('/some/url'); 
46
Область захвата 
suite.setCaptureElements('.text-field'); 
47
Захват начального состояния 
suite.capture('plain'); 
48
Состояние с действиями 
suite.capture('focus', function(actions) { 
}); 
49
Действия 
suite.capture('focus', function(actions) { 
actions.click('.text-field'); 
}); 
50
find 
suite.capture('text', function(actions, find) { 
actions.sendKeys(find(‘.text-field’), 'Hi!'); 
}); 
51
before 
suite.before(function(actions, find) { 
this.field = find('.text-field'); 
}); 
52
Финальный вариант 
var gemini = require('gemini'); 
gemini.suite('text-field', function() { 
suite.setUrl('/some/url') 
.setCaptureElements('.text-field') 
.before(function(actions, find) { 
this.field = find('.text-field'); 
}) 
.capture('plain') 
.capture('focus', function(actions, find) { 
actions.click(this.field); 
}) 
.capture('text', function(actions, find) { 
actions.sendKeys(this.field, 'Hi!'); 
}); 
}); 
53
Демо 
54
Кнопка 
55
CSS Кнопки 
button { 
background: linear-gradient(...); 
border: 3px solid #cccccc; 
line-height: 31px; 
font-size: 15px; 
outline: 0; 
} 
button:hover { 
border-color: #999999; 
} 
button:active { 
background: linear-gradient(...); 
border-color: #999999; 
} 
56
gather 
57
Правка 
button { 
background: linear-gradient(...); 
border: 3px solid #cccccc; 
border: 0; 
box-shadow: 0 0 0 3px solid #cccccc; 
line-height: 31px; 
font-size: 15px; 
outline: 0; 
} 
button:hover { 
border-color: #999999; 
} 
button:active { 
background: linear-gradient(...); 
border-color: #999999; 
} 
58
test 
59
html-отчет 
60
Исправление 
button:hover { 
box-shadow: 0 0 0 3px solid #999999; 
} 
button:active { 
background: linear-gradient(...); 
box-shadow: 0 0 0 3px solid #999999; 
} 
61
test (снова) 
62
Красная кнопка 
63
GUI 
64
Реальный пример 
github.com/bem/bem-components/ 
65
Покрытие кода 
66
CSS 
.first { 
… 
} 
.second { 
… 
} 
.third { 
… 
} 
67
Пример 
68 
First Second 
Third
Пример 
69 
First Second 
Third
Пример 
70 
First Second 
Third
Отчет 
.first { 
… 
} 
71 
.second { 
… 
} 
.third { 
… 
}
Где взять? 
ru.bem.info/tools/testing/gemini/ 
github.com/bem/gemini 
72
Сергей Татаринцев 
Яндекс 
@SevInf 
SevInf 
sevinf@yandex-team.ru 
73

More Related Content

What's hot

«Тестируем веб приложения», Павел Сташевский
«Тестируем веб приложения», Павел Сташевский«Тестируем веб приложения», Павел Сташевский
«Тестируем веб приложения», Павел СташевскийDevDay
 
Rebrov selenium camp2013
Rebrov selenium camp2013Rebrov selenium camp2013
Rebrov selenium camp2013Andrey Rebrov
 
Подводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
Подводная часть айсберга: что делать, чтобы автотесты не превратились в ТитаникПодводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
Подводная часть айсберга: что делать, чтобы автотесты не превратились в ТитаникSQALab
 
М. Боднарчук Современное функциональное тестирование с Codeception
М. Боднарчук Современное функциональное тестирование с CodeceptionМ. Боднарчук Современное функциональное тестирование с Codeception
М. Боднарчук Современное функциональное тестирование с CodeceptionAlbina Tiupa
 
Как мы приручили демона или процесс тестирования демонов в Badoo
Как мы приручили демона или процесс тестирования демонов в BadooКак мы приручили демона или процесс тестирования демонов в Badoo
Как мы приручили демона или процесс тестирования демонов в BadooSQALab
 
Михаил Боднарчук Современное функциональное тестирование с Codeception
Михаил Боднарчук Современное функциональное тестирование с CodeceptionМихаил Боднарчук Современное функциональное тестирование с Codeception
Михаил Боднарчук Современное функциональное тестирование с CodeceptionAlbina Tiupa
 
(Seleniumcamp) Selenium RC for QA Engineer
(Seleniumcamp) Selenium RC for QA Engineer(Seleniumcamp) Selenium RC for QA Engineer
(Seleniumcamp) Selenium RC for QA EngineerYan Alexeenko
 
Тестирование web-приложений на базе технологий Ruby/Cucumber/Watir Webdriver
Тестирование web-приложений на базе технологий Ruby/Cucumber/Watir WebdriverТестирование web-приложений на базе технологий Ruby/Cucumber/Watir Webdriver
Тестирование web-приложений на базе технологий Ruby/Cucumber/Watir WebdriverAlex Mikitenko
 
Как улучшить тесты на Selenium с помощью "визуального тестирования"?
Как улучшить тесты на Selenium с помощью "визуального тестирования"?Как улучшить тесты на Selenium с помощью "визуального тестирования"?
Как улучшить тесты на Selenium с помощью "визуального тестирования"?Oksana Avchinnikova
 
Как не положить тысячи серверов с помощью системы централизованного управлени...
Как не положить тысячи серверов с помощью системы централизованного управлени...Как не положить тысячи серверов с помощью системы централизованного управлени...
Как не положить тысячи серверов с помощью системы централизованного управлени...Ontico
 
Причины и способы имитации back-end'а
Причины и способы имитации back-end'аПричины и способы имитации back-end'а
Причины и способы имитации back-end'аOksana Avchinnikova
 
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Огляд екосистеми Selenium» QADay 2019
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Огляд екосистеми Selenium» QADay 2019ОЛЕКСАНДР ХОТЕМСЬКИЙ «Огляд екосистеми Selenium» QADay 2019
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Огляд екосистеми Selenium» QADay 2019GoQA
 
Как играть без игрока
Как играть без игрокаКак играть без игрока
Как играть без игрокаSQALab
 
Автоматизируйте это немедленно или коллекция инструментов автотестирования с ...
Автоматизируйте это немедленно или коллекция инструментов автотестирования с ...Автоматизируйте это немедленно или коллекция инструментов автотестирования с ...
Автоматизируйте это немедленно или коллекция инструментов автотестирования с ...Andrey Rebrov
 
JavaScript завтра / Сергей Рубанов (Exante Limited)
JavaScript завтра / Сергей Рубанов  (Exante Limited)JavaScript завтра / Сергей Рубанов  (Exante Limited)
JavaScript завтра / Сергей Рубанов (Exante Limited)Ontico
 
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовНепрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовSQALab
 
QaAPI. Взгляд на тестирование с другой стороны баррикад. Доклад Дмитрия Марущ...
QaAPI. Взгляд на тестирование с другой стороны баррикад. Доклад Дмитрия Марущ...QaAPI. Взгляд на тестирование с другой стороны баррикад. Доклад Дмитрия Марущ...
QaAPI. Взгляд на тестирование с другой стороны баррикад. Доклад Дмитрия Марущ...Badoo Development
 
Gradle. Новый уровень автоматизации для Android
Gradle. Новый уровень автоматизации для AndroidGradle. Новый уровень автоматизации для Android
Gradle. Новый уровень автоматизации для AndroidSQALab
 
Full stack веб-разработка используя C# и WebAssembly
Full stack веб-разработка используя C# и WebAssemblyFull stack веб-разработка используя C# и WebAssembly
Full stack веб-разработка используя C# и WebAssemblyAndrei Amialchenia
 
Selenium на практике и подводные камни
Selenium на практике и подводные камниSelenium на практике и подводные камни
Selenium на практике и подводные камниSQALab
 

What's hot (20)

«Тестируем веб приложения», Павел Сташевский
«Тестируем веб приложения», Павел Сташевский«Тестируем веб приложения», Павел Сташевский
«Тестируем веб приложения», Павел Сташевский
 
Rebrov selenium camp2013
Rebrov selenium camp2013Rebrov selenium camp2013
Rebrov selenium camp2013
 
Подводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
Подводная часть айсберга: что делать, чтобы автотесты не превратились в ТитаникПодводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
Подводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
 
М. Боднарчук Современное функциональное тестирование с Codeception
М. Боднарчук Современное функциональное тестирование с CodeceptionМ. Боднарчук Современное функциональное тестирование с Codeception
М. Боднарчук Современное функциональное тестирование с Codeception
 
Как мы приручили демона или процесс тестирования демонов в Badoo
Как мы приручили демона или процесс тестирования демонов в BadooКак мы приручили демона или процесс тестирования демонов в Badoo
Как мы приручили демона или процесс тестирования демонов в Badoo
 
Михаил Боднарчук Современное функциональное тестирование с Codeception
Михаил Боднарчук Современное функциональное тестирование с CodeceptionМихаил Боднарчук Современное функциональное тестирование с Codeception
Михаил Боднарчук Современное функциональное тестирование с Codeception
 
(Seleniumcamp) Selenium RC for QA Engineer
(Seleniumcamp) Selenium RC for QA Engineer(Seleniumcamp) Selenium RC for QA Engineer
(Seleniumcamp) Selenium RC for QA Engineer
 
Тестирование web-приложений на базе технологий Ruby/Cucumber/Watir Webdriver
Тестирование web-приложений на базе технологий Ruby/Cucumber/Watir WebdriverТестирование web-приложений на базе технологий Ruby/Cucumber/Watir Webdriver
Тестирование web-приложений на базе технологий Ruby/Cucumber/Watir Webdriver
 
Как улучшить тесты на Selenium с помощью "визуального тестирования"?
Как улучшить тесты на Selenium с помощью "визуального тестирования"?Как улучшить тесты на Selenium с помощью "визуального тестирования"?
Как улучшить тесты на Selenium с помощью "визуального тестирования"?
 
Как не положить тысячи серверов с помощью системы централизованного управлени...
Как не положить тысячи серверов с помощью системы централизованного управлени...Как не положить тысячи серверов с помощью системы централизованного управлени...
Как не положить тысячи серверов с помощью системы централизованного управлени...
 
Причины и способы имитации back-end'а
Причины и способы имитации back-end'аПричины и способы имитации back-end'а
Причины и способы имитации back-end'а
 
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Огляд екосистеми Selenium» QADay 2019
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Огляд екосистеми Selenium» QADay 2019ОЛЕКСАНДР ХОТЕМСЬКИЙ «Огляд екосистеми Selenium» QADay 2019
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Огляд екосистеми Selenium» QADay 2019
 
Как играть без игрока
Как играть без игрокаКак играть без игрока
Как играть без игрока
 
Автоматизируйте это немедленно или коллекция инструментов автотестирования с ...
Автоматизируйте это немедленно или коллекция инструментов автотестирования с ...Автоматизируйте это немедленно или коллекция инструментов автотестирования с ...
Автоматизируйте это немедленно или коллекция инструментов автотестирования с ...
 
JavaScript завтра / Сергей Рубанов (Exante Limited)
JavaScript завтра / Сергей Рубанов  (Exante Limited)JavaScript завтра / Сергей Рубанов  (Exante Limited)
JavaScript завтра / Сергей Рубанов (Exante Limited)
 
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовНепрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
 
QaAPI. Взгляд на тестирование с другой стороны баррикад. Доклад Дмитрия Марущ...
QaAPI. Взгляд на тестирование с другой стороны баррикад. Доклад Дмитрия Марущ...QaAPI. Взгляд на тестирование с другой стороны баррикад. Доклад Дмитрия Марущ...
QaAPI. Взгляд на тестирование с другой стороны баррикад. Доклад Дмитрия Марущ...
 
Gradle. Новый уровень автоматизации для Android
Gradle. Новый уровень автоматизации для AndroidGradle. Новый уровень автоматизации для Android
Gradle. Новый уровень автоматизации для Android
 
Full stack веб-разработка используя C# и WebAssembly
Full stack веб-разработка используя C# и WebAssemblyFull stack веб-разработка используя C# и WebAssembly
Full stack веб-разработка используя C# и WebAssembly
 
Selenium на практике и подводные камни
Selenium на практике и подводные камниSelenium на практике и подводные камни
Selenium на практике и подводные камни
 

Similar to Тестирование CSS-регрессий с Gemini — Сергей Татаринцев

Суперсилы Chrome DevTools — Роман Сальников, 2ГИС
Суперсилы Chrome DevTools — Роман Сальников, 2ГИССуперсилы Chrome DevTools — Роман Сальников, 2ГИС
Суперсилы Chrome DevTools — Роман Сальников, 2ГИСYandex
 
Тестирование безDOMных объектов
Тестирование безDOMных объектовТестирование безDOMных объектов
Тестирование безDOMных объектовSQALab
 
Cовременный станок верстальщика
Cовременный станок верстальщикаCовременный станок верстальщика
Cовременный станок верстальщикаmcslayer
 
Евгений Батовский, Николай Птущук "Современный станок верстальщика"
Евгений Батовский, Николай Птущук "Современный станок верстальщика"Евгений Батовский, Николай Птущук "Современный станок верстальщика"
Евгений Батовский, Николай Птущук "Современный станок верстальщика"Yandex
 
Вадим Макишвили "Вёрстка в IntelliJIDEA"
Вадим Макишвили "Вёрстка в IntelliJIDEA"Вадим Макишвили "Вёрстка в IntelliJIDEA"
Вадим Макишвили "Вёрстка в IntelliJIDEA"Yandex
 
Basis.js - Production Ready SPA Framework
Basis.js - Production Ready SPA FrameworkBasis.js - Production Ready SPA Framework
Basis.js - Production Ready SPA FrameworkMoscowJS
 
"Basis.js - Production Ready SPA Framework" Сергей Мелюков (Avito)
"Basis.js - Production Ready SPA Framework" Сергей Мелюков (Avito)"Basis.js - Production Ready SPA Framework" Сергей Мелюков (Avito)
"Basis.js - Production Ready SPA Framework" Сергей Мелюков (Avito)AvitoTech
 
Алексей Андросов - Debugger: Отладка кода
Алексей Андросов - Debugger: Отладка кодаАлексей Андросов - Debugger: Отладка кода
Алексей Андросов - Debugger: Отладка кодаYandex
 
Алексей Андросов "Криокамера для статики"
Алексей Андросов "Криокамера для статики"Алексей Андросов "Криокамера для статики"
Алексей Андросов "Криокамера для статики"Yandex
 
За пределами Page Object. ATDays 2013 Киев. Февраль 2013
За пределами Page Object. ATDays 2013 Киев. Февраль 2013За пределами Page Object. ATDays 2013 Киев. Февраль 2013
За пределами Page Object. ATDays 2013 Киев. Февраль 2013Dmytro Zharii
 
Михаил Черномордиков Ie9
Михаил Черномордиков   Ie9Михаил Черномордиков   Ie9
Михаил Черномордиков Ie9Siel01
 
Как сделать Instagram в браузере — Дмитрий Дудин, xbSoftware
Как сделать Instagram в браузере — Дмитрий Дудин, xbSoftwareКак сделать Instagram в браузере — Дмитрий Дудин, xbSoftware
Как сделать Instagram в браузере — Дмитрий Дудин, xbSoftwareYandex
 
State of the Standardized Web
State of the Standardized WebState of the Standardized Web
State of the Standardized WebYandex
 
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter..."Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...MoscowJS
 
webpack: 7 бед - один ответ
webpack: 7 бед - один ответwebpack: 7 бед - один ответ
webpack: 7 бед - один ответDenis Izmaylov
 
2014 Jeeconf - Geb Spock
2014 Jeeconf - Geb Spock2014 Jeeconf - Geb Spock
2014 Jeeconf - Geb SpockBohdan Danyliuk
 

Similar to Тестирование CSS-регрессий с Gemini — Сергей Татаринцев (20)

Суперсилы Chrome DevTools — Роман Сальников, 2ГИС
Суперсилы Chrome DevTools — Роман Сальников, 2ГИССуперсилы Chrome DevTools — Роман Сальников, 2ГИС
Суперсилы Chrome DevTools — Роман Сальников, 2ГИС
 
Little Service in 2h
Little Service in 2hLittle Service in 2h
Little Service in 2h
 
Скриншоты как сервис
Скриншоты как сервисСкриншоты как сервис
Скриншоты как сервис
 
Тестирование безDOMных объектов
Тестирование безDOMных объектовТестирование безDOMных объектов
Тестирование безDOMных объектов
 
Cовременный станок верстальщика
Cовременный станок верстальщикаCовременный станок верстальщика
Cовременный станок верстальщика
 
Евгений Батовский, Николай Птущук "Современный станок верстальщика"
Евгений Батовский, Николай Птущук "Современный станок верстальщика"Евгений Батовский, Николай Птущук "Современный станок верстальщика"
Евгений Батовский, Николай Птущук "Современный станок верстальщика"
 
Вадим Макишвили "Вёрстка в IntelliJIDEA"
Вадим Макишвили "Вёрстка в IntelliJIDEA"Вадим Макишвили "Вёрстка в IntelliJIDEA"
Вадим Макишвили "Вёрстка в IntelliJIDEA"
 
Basis.js - Production Ready Framework
Basis.js - Production Ready FrameworkBasis.js - Production Ready Framework
Basis.js - Production Ready Framework
 
Basis.js - Production Ready SPA Framework
Basis.js - Production Ready SPA FrameworkBasis.js - Production Ready SPA Framework
Basis.js - Production Ready SPA Framework
 
"Basis.js - Production Ready SPA Framework" Сергей Мелюков (Avito)
"Basis.js - Production Ready SPA Framework" Сергей Мелюков (Avito)"Basis.js - Production Ready SPA Framework" Сергей Мелюков (Avito)
"Basis.js - Production Ready SPA Framework" Сергей Мелюков (Avito)
 
Алексей Андросов - Debugger: Отладка кода
Алексей Андросов - Debugger: Отладка кодаАлексей Андросов - Debugger: Отладка кода
Алексей Андросов - Debugger: Отладка кода
 
Алексей Андросов "Криокамера для статики"
Алексей Андросов "Криокамера для статики"Алексей Андросов "Криокамера для статики"
Алексей Андросов "Криокамера для статики"
 
За пределами Page Object. ATDays 2013 Киев. Февраль 2013
За пределами Page Object. ATDays 2013 Киев. Февраль 2013За пределами Page Object. ATDays 2013 Киев. Февраль 2013
За пределами Page Object. ATDays 2013 Киев. Февраль 2013
 
За пределами PageObject
За пределами PageObjectЗа пределами PageObject
За пределами PageObject
 
Михаил Черномордиков Ie9
Михаил Черномордиков   Ie9Михаил Черномордиков   Ie9
Михаил Черномордиков Ie9
 
Как сделать Instagram в браузере — Дмитрий Дудин, xbSoftware
Как сделать Instagram в браузере — Дмитрий Дудин, xbSoftwareКак сделать Instagram в браузере — Дмитрий Дудин, xbSoftware
Как сделать Instagram в браузере — Дмитрий Дудин, xbSoftware
 
State of the Standardized Web
State of the Standardized WebState of the Standardized Web
State of the Standardized Web
 
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter..."Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...
 
webpack: 7 бед - один ответ
webpack: 7 бед - один ответwebpack: 7 бед - один ответ
webpack: 7 бед - один ответ
 
2014 Jeeconf - Geb Spock
2014 Jeeconf - Geb Spock2014 Jeeconf - Geb Spock
2014 Jeeconf - Geb Spock
 

More from Yandex

Предсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksПредсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksYandex
 
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Yandex
 
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаСтруктурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаYandex
 
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаПредставление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаYandex
 
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Yandex
 
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Yandex
 
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Yandex
 
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Yandex
 
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Yandex
 
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Yandex
 
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Yandex
 
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Yandex
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровYandex
 
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Yandex
 
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Yandex
 
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Yandex
 
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Yandex
 
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Yandex
 
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Yandex
 
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Yandex
 

More from Yandex (20)

Предсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of TanksПредсказание оттока игроков из World of Tanks
Предсказание оттока игроков из World of Tanks
 
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
 
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаСтруктурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
 
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаПредставление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
 
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
 
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
 
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
 
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
 
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
 
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
 
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
 
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
 
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
 
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
 
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
 
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
 
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
 
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
 
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
 

Тестирование CSS-регрессий с Gemini — Сергей Татаринцев