Поиск багов в поиске презентация

Содержание

Поиск Яндекса 150 000 000 запросов в день 5 400 000 сайтов в индексе 800 000 пользователей в день 62 терабайта информации сотни разработчиков

Слайд 1Я.Субботник, Санкт-Петербург, 26-12 2011
инженер по тестированию
Ерошенко Артем
Поиск багов в поиске
инженер по

тестированию

Селиверстов Станислав


Слайд 2Поиск Яндекса
150 000 000 запросов в день
5 400 000 сайтов в

индексе
800 000 пользователей в день
62 терабайта информации
сотни разработчиков

Слайд 3Как рождается поиск


Слайд 5Результат работы программ
Как рождается поиск


Слайд 6Результат взаимодействия
Как рождается поиск


Слайд 7через конечную функциональность
по-компонентно
Как тестировать?


Слайд 8Тестирование через конечную функциональность


Слайд 9Требования
Инструмент тестирования


Слайд 10Selenium
Инструмент тестирования
работает с реальным браузером
клиентская часть реализована на нескольких языках
работает с

несколькими браузерами
открытый код

Слайд 11Главное правильно задать запрос


Слайд 12проектируем свои
берем пользовательские
Как задаем запросы?


Слайд 13Пользовательские запросы
Как задаем запросы?


Слайд 14оцениваем масштаб проблемы
проверяем показ элемента в выдаче
Ожидаемый результат
Пользовательские запросы


Слайд 15скорость выполнения тестов
экспортные данные
множество ссылок
тестирование верстки
Сложности


Слайд 16скорость выполнения тестов
экспортные данные
множество ссылок
тестирование верстки
Сложности


Слайд 17запускать меньше тестов
выполнять тесты быстрее
Как уменьшить время
Скорость выполнения тестов


Слайд 18запускать меньше тестов
выполнять тесты быстрее
Как уменьшить время
Скорость выполнения тестов


Слайд 19Самая длинная цепь
Запускать меньше тестов
Выдача поиска


Слайд 20Группировка тестов
Запускать меньше тестов


Слайд 21запускать меньше тестов
выполнять тесты быстрее
Как уменьшить время
Скорость выполнения тестов


Слайд 22Рост количества данных
Выполнять тесты быстрее


Слайд 23Каким инструментом
Выполнять тесты быстрее
Selenium?


Слайд 24эмулирует работу браузера
поддерживает jScript
быстрее в разы
Инструмент HtmlUnit
Выполнять тесты быстрее


Слайд 25Разные интерфейсы
Выполнять тесты быстрее


Слайд 26HtmlUnit to Selenium
Выполнять тесты быстрее


Слайд 27HtmlUnit to? Selenium
Выполнять тесты быстрее


Слайд 28уникальные тесты на Selenium
тесты на большом количестве запросов на HtmlUnit
Перевести все

тесты на HtmlUnit

Выполнять тесты быстрее


Слайд 29скорость выполнения тестов
экспортные данные
множество ссылок
тестирование верстки
Сложности


Слайд 30приходят со сторонних сервисов
имеют разные форматы
Экспортные данные


Слайд 31Форматы
Экспортные данные


Слайд 32Преобразования
Экспортные данные


Слайд 33скорость выполнения тестов
экспортные данные
множество ссылок
тестирование верстки
Сложности


Слайд 34Прокликать все
Множество ссылок
ссылки генерируются
данные приходят со сторонних сервисов
сторонние сервисы живут своей

жизню

Слайд 35Переход на погоду
Множество ссылок
pogoda.yandex.ru/saint-petersburg
pogoda.yandex.ru/26063


Слайд 36Инструмент noname
Множество ссылок
умеет обходить страницы “вширь”
умеет “пинговать” ресурс (link, image)
умеет проверять

корректность страницы (css, js, favicon)
proxy, cookie

Слайд 37Noname улучшизмы
Множество ссылок
проверка работы JavaScript
“склеивание” ссылок


Слайд 38скорость выполнения тестов
экспортные данные
множество ссылок
тестирование верстки
Сложности


Слайд 39Проблема поколений
Тестирование верстки


Слайд 40Руками и глазами
Тестирование верстки


Слайд 41Нагрузка растет
Тестирование верстки
сотни сценариев
разные браузеры


Слайд 42А/Б тестирование
Тестирование верстки



Слайд 43Нерешенная проблема
Тестирование верстки
Как автоматизировать?


Слайд 44Компонентное тестирование


Слайд 45Раннее тестирование производительности
Стресс-тесты и тестирование стабильности компонент
Функциональные тесты под нагрузкой
Надежность и

производительность

Компонентное тестирование


Слайд 46Подготовка тестовой среды
Выбор входных данных
Проведение теста
Анализ выходных данных
Этапы тестирования
Компонентное тестирование


Слайд 47Отдельно выделенный сервер, с аналогичной продакшен конфигурацией
Окружение создается каждый раз перед

тестированием
Эмуляция принимающих выходной поток компонент + возможность использовать тестовые кластеры

Тестовая среда

Компонентное тестирование


Слайд 48Живой поток с продакшен
Фиксированный поток
Сгенерированный поток
План обстрела
Компонентное тестирование


Слайд 49Обеспечивает доставку запроса пользователя к поисковому кластеру и ответа к пользователю
Распределяет

запросы между поисковыми кластерами кратно их производительности

Функции

Пример Балансер


Слайд 50Пример Балансер
HTTP-Балансер
IP-Балансер
HTTP-Балансер
HTTP-Балансер
HTTP-Балансер
Поисковый кластер
Верхний поиск


Слайд 51Скорость отдачи страницы с результатом выдачи снизилась
Балансер перестал отдавать результат выдачи

(белая страница)
Данные портятся при прохождении через балансер

Ошибки

Пример Балансер


Слайд 52Тесты под нагрузкой
Пример Балансер
Пусть будут 10 заглушек эмулирующих бэкэнды с различной

производительностью

Слайд 53Среднее количество запросов по группе одинаковых бэкэндов
Пример Балансер


Слайд 54Распределение времени ответов с бэкэндов
Пример Балансер


Слайд 55Количество обработанных запросов на бэкэндах
Пример Балансер


Слайд 56Распределение времени ответов за балансером
Пример Балансер


Слайд 57Скорость отдачи страницы с результатом выдачи снизилась
Балансер перестал отдавать результат выдачи

(белая страница)
Данные портятся при прохождении через балансер

Ошибки

Пример Балансер


Слайд 58Сверяем трафик до балансера и после
Пропускаем через балансер преднамеренно испорченные запросы

(fuzzing)
Искусственно создаем таймауты и потерю соединения

Функциональные тесты под нагрузкой

Пример Балансер


Слайд 59Учитывает все особенности сборки компонент
Интегрирован инструментарий для обстрела и профилирования поисковых

компонент
Есть надежная доставка компонент на многочисленные машины поискового кластера
Автоматическая сборка и тестирование по расписанию или по коммиту

SandBox

Компонентное тестирование


Слайд 60Тестирование всех компонент на производительность
Расширение покрытия функциональными тестами
Горизонты
Компонентное тестирование


Слайд 61Покоммитное тестирование компонент
Тестирование версии под нагрузкой
Версия попадает в приемку качества
После приемки

качества попадает в тестирование через конечную функциональность
В продакшен следим через мониторинги

Путь тестирования


Слайд 62Инженер по тестированию

+7 (812) 633-36-00 (8575) thistle@yandex-team.ru

Селиверстов Станислав

Инженер по тестированию +7 (812) 633-36-00 (8625)eroshenkoam@yandex-team.ru

Ерошенко Артем

Вопросы?


Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика