'

Поиск багов в поиске

Понравилась презентация – покажи это...





Слайд 0

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


Слайд 1

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


Слайд 2

Как рождается поиск 2


Слайд 3

3


Слайд 4

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


Слайд 5

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


Слайд 6

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


Слайд 7

Тестирование через конечную функциональность 7


Слайд 8

Требования Инструмент тестирования 8


Слайд 9

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


Слайд 10

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


Слайд 11

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


Слайд 12

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


Слайд 13

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


Слайд 14

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


Слайд 15

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


Слайд 16

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


Слайд 17

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


Слайд 18

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


Слайд 19

Группировка тестов Запускать меньше тестов 19


Слайд 20

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


Слайд 21

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


Слайд 22

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


Слайд 23

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


Слайд 24

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


Слайд 25

HtmlUnit to Selenium Выполнять тесты быстрее 25


Слайд 26

HtmlUnit to? Selenium Выполнять тесты быстрее 26


Слайд 27

уникальные тесты на Selenium тесты на большом количестве запросов на HtmlUnit Перевести все тесты на HtmlUnit Выполнять тесты быстрее 27


Слайд 28

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


Слайд 29

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


Слайд 30

Форматы Экспортные данные 30


Слайд 31

Преобразования Экспортные данные 31


Слайд 32

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


Слайд 33

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


Слайд 34

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


Слайд 35

Инструмент noname Множество ссылок умеет обходить страницы “вширь” умеет “пинговать” ресурс (link, image) умеет проверять корректность страницы (css, js, favicon) proxy, cookie 35


Слайд 36

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


Слайд 37

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


Слайд 38

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


Слайд 39

Руками и глазами Тестирование верстки 39


Слайд 40

Нагрузка растет Тестирование верстки сотни сценариев разные браузеры 40


Слайд 41

А/Б тестирование Тестирование верстки 41


Слайд 42

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


Слайд 43

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


Слайд 44

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


Слайд 45

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


Слайд 46

Отдельно выделенный сервер, с аналогичной продакшен конфигурацией Окружение создается каждый раз перед тестированием Эмуляция принимающих выходной поток компонент + возможность использовать тестовые кластеры Тестовая среда Компонентное тестирование 46


Слайд 47

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


Слайд 48

Обеспечивает доставку запроса пользователя к поисковому кластеру и ответа к пользователю Распределяет запросы между поисковыми кластерами кратно их производительности Функции Пример Балансер 48


Слайд 49

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


Слайд 50

Скорость отдачи страницы с результатом выдачи снизилась Балансер перестал отдавать результат выдачи (белая страница) Данные портятся при прохождении через балансер Ошибки Пример Балансер 50


Слайд 51

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


Слайд 52

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


Слайд 53

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


Слайд 54

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


Слайд 55

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


Слайд 56

Скорость отдачи страницы с результатом выдачи снизилась Балансер перестал отдавать результат выдачи (белая страница) Данные портятся при прохождении через балансер Ошибки Пример Балансер 56


Слайд 57

Сверяем трафик до балансера и после Пропускаем через балансер преднамеренно испорченные запросы (fuzzing) Искусственно создаем таймауты и потерю соединения Функциональные тесты под нагрузкой Пример Балансер 57


Слайд 58

Учитывает все особенности сборки компонент Интегрирован инструментарий для обстрела и профилирования поисковых компонент Есть надежная доставка компонент на многочисленные машины поискового кластера Автоматическая сборка и тестирование по расписанию или по коммиту SandBox Компонентное тестирование 58


Слайд 59

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


Слайд 60

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


Слайд 61

Инженер по тестированию +7 (812) 633-36-00 (8575) thistle@yandex-team.ru Селиверстов Станислав Инженер по тестированию +7 (812) 633-36-00 (8625)eroshenkoam@yandex-team.ru Ерошенко Артем Вопросы?


×

HTML:





Ссылка: