SlideShare une entreprise Scribd logo
1  sur  76
Аккуратно переезжаем

              или

тестирование в проектах миграции
О чем я хочу поговорить:

•   Миграция, что это?
•   Что же это за проекты такие?
•   Проблемы есть?
•   Что с этим делать?
•   Примеры есть?
Есть ли среди вас те, кто участвовал
       в проектах миграции?
Есть ли среди вас разработчики?
Есть ли среди вас Чак Норрис?
Сколько отжиманий может сделать
           Чак Норрис?
Будьте бдительны:
Миграция, что это?
Миграция, что это?


лат. migratio, от migro —
 перехожу, переселяюсь.
Может выглядеть так:
или так:
или даже так:
Узнаете?
Что же это за проекты такие?
Воссоздание и перенос данных:
Что характерно:

• Потеря функционала
Что характерно:

• Потеря функционала
• Потеря данных
Что характерно:

• Потеря функционала
• Потеря данных
• Изменение характеристик системы
Возьмите и перенесите:
Что характерно:

• Потеря доступности
Что характерно:

• Потеря доступности
• Изменение окружения
Что характерно:

• Потеря доступности
• Изменение окружения
• Изменение характеристик системы
Смена айпишника:
Виртуализация:
Проблемы?
Проблемы! Они есть всегда!
Время:
Не забыли ещё?
Изменчивость среды:
Непревывность бизнеса:
Стоимость:
Кадровый голод:
Выглядит страшно?
2 реальных примера
Маркетинг:
•   Часто обновляется
•   Локализации иногда радикально отличаются
•   Занудные владельцы
•   Приличные объемы
•   Куча функциональных костылей
Так разницы почти не видно:
Так разницы почти не видно:
А вот так уже очень видно...
Основной упор – контент:
Основной упор – контент:

• Сравнивали с эталоном
Основной упор – контент:

• Сравнивали с эталоном
Основной упор – контент:

• Сравнивали с эталоном
• Валидировали самостоятельно
Основной упор – контент:

• Сравнивали с эталоном
• Валидировали самостоятельно
Основной упор – контент:

• Сравнивали с эталоном
• Валидировали самостоятельно
• Верифицировали самостоятельно
Основной упор – контент:

•   Сравнивали с эталоном
•   Валидировали самостоятельно
•   Верифицировали самостоятельно
•   Валидацию раздали заинтересованным
    лицам
Саппорт:

•   Плановая выкатка контента пачками
•   Межязыковое единообразие
•   Более сговорчивые владельцы
•   7,5К статей на основные локализации
Основной упор – пользователи:

• Бета-версия
Proof-pic
Основной упор – пользователи:

• Бета-версия
• Сбор фидбэков
Основной упор – пользователи:

• Бета-версия
• Сбор фидбэков
• Привлечение сотрудников саппорта
Эталонное тестирование:

• Сравниваем со старой системой
Эталонное тестирование:

• Сравниваем со старой системой
• Сравниваем локализации друг с другом
Очень agile:
Инструменты
Бета – тестеры:
Старательно писали логи:
Играли старые логи:
«Простите нас, пожалуйста» 
Растяжки, датчики, сирены:
Доступность и производительность:
Доступность и производительность:
Доступность и производительность:
Пользовательские сценарии:

• Для разработчиков
Пользовательские сценарии:

• Для разработчиков
• Для миграторов
Пользовательские сценарии:

• Для разработчиков
• Для миграторов
• Для UAT
Пользовательские сценарии:

•   Для разработчиков
•   Для миграторов
•   Для UAT
•   И...
Пользовательские сценарии:

•   Для разработчиков
•   Для миграторов
•   Для UAT
•   И...
•   Их сделали сами пользователи
В результате:
• Штатных тестировщиков – 0
В результате:
• Штатных тестировщиков – 0
• Внештатных – гораздо больше
В результате:
• Штатных тестировщиков – 0
• Внештатных – гораздо больше
• 25К страниц
В результате:
•   Штатных тестировщиков – 0
•   Внештатных – гораздо больше
•   25К страниц
•   С Фряхи на Винду
В результате:
•   Штатных тестировщиков – 0
•   Внештатных – гораздо больше
•   25К страниц
•   С Фряхи на Винду
•   С Perl’а на C#
В результате:
•   Штатных тестировщиков – 0
•   Внештатных – гораздо больше
•   25К страниц
•   С Фряхи на Винду
•   С Perl’а на C#
•   И мы ещѐ не закончили
Каждому свое:


«Слова вы услышали, поиск пути за вами»

                        Уильямс Деминг
Спасибо за внимание!

•   Я: Роман Ивлиев
•   Е-почта: roman.ivliev@mail.ru
•   @dumtest
•   dumtest.livejournal.com

Contenu connexe

En vedette

CodeFest 2012. Титов А. — Инженерный дзен. Непрерывные изменения
CodeFest 2012. Титов А. — Инженерный дзен. Непрерывные измененияCodeFest 2012. Титов А. — Инженерный дзен. Непрерывные изменения
CodeFest 2012. Титов А. — Инженерный дзен. Непрерывные измененияCodeFest
 
CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания
CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытанияCodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания
CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытанияCodeFest
 
CodeFest 2011. Галако О. — О Scala и Lift для тех, кому мало Java, и не только
CodeFest 2011. Галако О. — О Scala и Lift для тех, кому мало Java, и не толькоCodeFest 2011. Галако О. — О Scala и Lift для тех, кому мало Java, и не только
CodeFest 2011. Галако О. — О Scala и Lift для тех, кому мало Java, и не толькоCodeFest
 
CodeFest 2011. Коротецкий М. — Особенности разработки игр для iOS, Android, PSP
CodeFest 2011. Коротецкий М. — Особенности разработки игр для iOS, Android, PSPCodeFest 2011. Коротецкий М. — Особенности разработки игр для iOS, Android, PSP
CodeFest 2011. Коротецкий М. — Особенности разработки игр для iOS, Android, PSPCodeFest
 
CodeFest 2012. Рычков Д. — Почему перед написанием кеша вам стоит поговорить ...
CodeFest 2012. Рычков Д. — Почему перед написанием кеша вам стоит поговорить ...CodeFest 2012. Рычков Д. — Почему перед написанием кеша вам стоит поговорить ...
CodeFest 2012. Рычков Д. — Почему перед написанием кеша вам стоит поговорить ...CodeFest
 
CodeFest 2011. Руколь Н. — Творческая мастерская по тестированию ПО
CodeFest 2011. Руколь Н. — Творческая мастерская по тестированию ПОCodeFest 2011. Руколь Н. — Творческая мастерская по тестированию ПО
CodeFest 2011. Руколь Н. — Творческая мастерская по тестированию ПОCodeFest
 
CodeFest 2011. Галин С. — Qt для разработки кроссплатформенных мобильных прил...
CodeFest 2011. Галин С. — Qt для разработки кроссплатформенных мобильных прил...CodeFest 2011. Галин С. — Qt для разработки кроссплатформенных мобильных прил...
CodeFest 2011. Галин С. — Qt для разработки кроссплатформенных мобильных прил...CodeFest
 
CodeFest 2011. Высоцкий С. — Crawljax. Четвертый закон робототехники
CodeFest 2011. Высоцкий С. — Crawljax. Четвертый закон робототехникиCodeFest 2011. Высоцкий С. — Crawljax. Четвертый закон робототехники
CodeFest 2011. Высоцкий С. — Crawljax. Четвертый закон робототехникиCodeFest
 
CodeFest 2011. Копылов А. — Чужой против хищника: iOS и Android с точки зрени...
CodeFest 2011. Копылов А. — Чужой против хищника: iOS и Android с точки зрени...CodeFest 2011. Копылов А. — Чужой против хищника: iOS и Android с точки зрени...
CodeFest 2011. Копылов А. — Чужой против хищника: iOS и Android с точки зрени...CodeFest
 
Codefest 2011. Панкратов С., Орлов А. — Практикум работы с неконструктивными ...
Codefest 2011. Панкратов С., Орлов А. — Практикум работы с неконструктивными ...Codefest 2011. Панкратов С., Орлов А. — Практикум работы с неконструктивными ...
Codefest 2011. Панкратов С., Орлов А. — Практикум работы с неконструктивными ...CodeFest
 
CodeFest 2012. Евтухович И. — Как мы делали Групон
CodeFest 2012. Евтухович И. — Как мы делали ГрупонCodeFest 2012. Евтухович И. — Как мы делали Групон
CodeFest 2012. Евтухович И. — Как мы делали ГрупонCodeFest
 
CodeFest 2011. Жердева А., Ложкин А. — Проектирование, пользователи, продукт....
CodeFest 2011. Жердева А., Ложкин А. — Проектирование, пользователи, продукт....CodeFest 2011. Жердева А., Ложкин А. — Проектирование, пользователи, продукт....
CodeFest 2011. Жердева А., Ложкин А. — Проектирование, пользователи, продукт....CodeFest
 
CodeFest 2011. Крестьянинов М. — Обзор аспектно-ориентированного программиров...
CodeFest 2011. Крестьянинов М. — Обзор аспектно-ориентированного программиров...CodeFest 2011. Крестьянинов М. — Обзор аспектно-ориентированного программиров...
CodeFest 2011. Крестьянинов М. — Обзор аспектно-ориентированного программиров...CodeFest
 
CodeFest 2011. Бусыгин Р. — Создание кастомных интерфейсов для iOS
CodeFest 2011. Бусыгин Р. — Создание кастомных интерфейсов для iOSCodeFest 2011. Бусыгин Р. — Создание кастомных интерфейсов для iOS
CodeFest 2011. Бусыгин Р. — Создание кастомных интерфейсов для iOSCodeFest
 
CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественног...
CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественног...CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественног...
CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественног...CodeFest
 
CodeFest 2011. Иванкин М. — Подводные камни в тестирование многопользовательс...
CodeFest 2011. Иванкин М. — Подводные камни в тестирование многопользовательс...CodeFest 2011. Иванкин М. — Подводные камни в тестирование многопользовательс...
CodeFest 2011. Иванкин М. — Подводные камни в тестирование многопользовательс...CodeFest
 
CodeFest 2012. Травин Д. — Bada OS: океан возможностей или тихий омут разочар...
CodeFest 2012. Травин Д. — Bada OS: океан возможностей или тихий омут разочар...CodeFest 2012. Травин Д. — Bada OS: океан возможностей или тихий омут разочар...
CodeFest 2012. Травин Д. — Bada OS: океан возможностей или тихий омут разочар...CodeFest
 
CodeFest 2012. Кашкута И. — Серебряная пуля кроссплатформенной разработки моб...
CodeFest 2012. Кашкута И. — Серебряная пуля кроссплатформенной разработки моб...CodeFest 2012. Кашкута И. — Серебряная пуля кроссплатформенной разработки моб...
CodeFest 2012. Кашкута И. — Серебряная пуля кроссплатформенной разработки моб...CodeFest
 
CodeFest 2011. Ширшаков Д. — Как подружить ежа с ужом или другой взгляд на DWH
CodeFest 2011. Ширшаков Д. — Как подружить ежа с ужом или другой взгляд на DWHCodeFest 2011. Ширшаков Д. — Как подружить ежа с ужом или другой взгляд на DWH
CodeFest 2011. Ширшаков Д. — Как подружить ежа с ужом или другой взгляд на DWHCodeFest
 
CodeFest 2011. Архипенков С. — Теория и практика адаптивного управления проектом
CodeFest 2011. Архипенков С. — Теория и практика адаптивного управления проектомCodeFest 2011. Архипенков С. — Теория и практика адаптивного управления проектом
CodeFest 2011. Архипенков С. — Теория и практика адаптивного управления проектомCodeFest
 

En vedette (20)

CodeFest 2012. Титов А. — Инженерный дзен. Непрерывные изменения
CodeFest 2012. Титов А. — Инженерный дзен. Непрерывные измененияCodeFest 2012. Титов А. — Инженерный дзен. Непрерывные изменения
CodeFest 2012. Титов А. — Инженерный дзен. Непрерывные изменения
 
CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания
CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытанияCodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания
CodeFest 2012. Курносова Т. и Баяндин А. — Selenium2: полевые испытания
 
CodeFest 2011. Галако О. — О Scala и Lift для тех, кому мало Java, и не только
CodeFest 2011. Галако О. — О Scala и Lift для тех, кому мало Java, и не толькоCodeFest 2011. Галако О. — О Scala и Lift для тех, кому мало Java, и не только
CodeFest 2011. Галако О. — О Scala и Lift для тех, кому мало Java, и не только
 
CodeFest 2011. Коротецкий М. — Особенности разработки игр для iOS, Android, PSP
CodeFest 2011. Коротецкий М. — Особенности разработки игр для iOS, Android, PSPCodeFest 2011. Коротецкий М. — Особенности разработки игр для iOS, Android, PSP
CodeFest 2011. Коротецкий М. — Особенности разработки игр для iOS, Android, PSP
 
CodeFest 2012. Рычков Д. — Почему перед написанием кеша вам стоит поговорить ...
CodeFest 2012. Рычков Д. — Почему перед написанием кеша вам стоит поговорить ...CodeFest 2012. Рычков Д. — Почему перед написанием кеша вам стоит поговорить ...
CodeFest 2012. Рычков Д. — Почему перед написанием кеша вам стоит поговорить ...
 
CodeFest 2011. Руколь Н. — Творческая мастерская по тестированию ПО
CodeFest 2011. Руколь Н. — Творческая мастерская по тестированию ПОCodeFest 2011. Руколь Н. — Творческая мастерская по тестированию ПО
CodeFest 2011. Руколь Н. — Творческая мастерская по тестированию ПО
 
CodeFest 2011. Галин С. — Qt для разработки кроссплатформенных мобильных прил...
CodeFest 2011. Галин С. — Qt для разработки кроссплатформенных мобильных прил...CodeFest 2011. Галин С. — Qt для разработки кроссплатформенных мобильных прил...
CodeFest 2011. Галин С. — Qt для разработки кроссплатформенных мобильных прил...
 
CodeFest 2011. Высоцкий С. — Crawljax. Четвертый закон робототехники
CodeFest 2011. Высоцкий С. — Crawljax. Четвертый закон робототехникиCodeFest 2011. Высоцкий С. — Crawljax. Четвертый закон робототехники
CodeFest 2011. Высоцкий С. — Crawljax. Четвертый закон робототехники
 
CodeFest 2011. Копылов А. — Чужой против хищника: iOS и Android с точки зрени...
CodeFest 2011. Копылов А. — Чужой против хищника: iOS и Android с точки зрени...CodeFest 2011. Копылов А. — Чужой против хищника: iOS и Android с точки зрени...
CodeFest 2011. Копылов А. — Чужой против хищника: iOS и Android с точки зрени...
 
Codefest 2011. Панкратов С., Орлов А. — Практикум работы с неконструктивными ...
Codefest 2011. Панкратов С., Орлов А. — Практикум работы с неконструктивными ...Codefest 2011. Панкратов С., Орлов А. — Практикум работы с неконструктивными ...
Codefest 2011. Панкратов С., Орлов А. — Практикум работы с неконструктивными ...
 
CodeFest 2012. Евтухович И. — Как мы делали Групон
CodeFest 2012. Евтухович И. — Как мы делали ГрупонCodeFest 2012. Евтухович И. — Как мы делали Групон
CodeFest 2012. Евтухович И. — Как мы делали Групон
 
CodeFest 2011. Жердева А., Ложкин А. — Проектирование, пользователи, продукт....
CodeFest 2011. Жердева А., Ложкин А. — Проектирование, пользователи, продукт....CodeFest 2011. Жердева А., Ложкин А. — Проектирование, пользователи, продукт....
CodeFest 2011. Жердева А., Ложкин А. — Проектирование, пользователи, продукт....
 
CodeFest 2011. Крестьянинов М. — Обзор аспектно-ориентированного программиров...
CodeFest 2011. Крестьянинов М. — Обзор аспектно-ориентированного программиров...CodeFest 2011. Крестьянинов М. — Обзор аспектно-ориентированного программиров...
CodeFest 2011. Крестьянинов М. — Обзор аспектно-ориентированного программиров...
 
CodeFest 2011. Бусыгин Р. — Создание кастомных интерфейсов для iOS
CodeFest 2011. Бусыгин Р. — Создание кастомных интерфейсов для iOSCodeFest 2011. Бусыгин Р. — Создание кастомных интерфейсов для iOS
CodeFest 2011. Бусыгин Р. — Создание кастомных интерфейсов для iOS
 
CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественног...
CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественног...CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественног...
CodeFest 2011. Алиев Д. — Natural language processing (Обработка естественног...
 
CodeFest 2011. Иванкин М. — Подводные камни в тестирование многопользовательс...
CodeFest 2011. Иванкин М. — Подводные камни в тестирование многопользовательс...CodeFest 2011. Иванкин М. — Подводные камни в тестирование многопользовательс...
CodeFest 2011. Иванкин М. — Подводные камни в тестирование многопользовательс...
 
CodeFest 2012. Травин Д. — Bada OS: океан возможностей или тихий омут разочар...
CodeFest 2012. Травин Д. — Bada OS: океан возможностей или тихий омут разочар...CodeFest 2012. Травин Д. — Bada OS: океан возможностей или тихий омут разочар...
CodeFest 2012. Травин Д. — Bada OS: океан возможностей или тихий омут разочар...
 
CodeFest 2012. Кашкута И. — Серебряная пуля кроссплатформенной разработки моб...
CodeFest 2012. Кашкута И. — Серебряная пуля кроссплатформенной разработки моб...CodeFest 2012. Кашкута И. — Серебряная пуля кроссплатформенной разработки моб...
CodeFest 2012. Кашкута И. — Серебряная пуля кроссплатформенной разработки моб...
 
CodeFest 2011. Ширшаков Д. — Как подружить ежа с ужом или другой взгляд на DWH
CodeFest 2011. Ширшаков Д. — Как подружить ежа с ужом или другой взгляд на DWHCodeFest 2011. Ширшаков Д. — Как подружить ежа с ужом или другой взгляд на DWH
CodeFest 2011. Ширшаков Д. — Как подружить ежа с ужом или другой взгляд на DWH
 
CodeFest 2011. Архипенков С. — Теория и практика адаптивного управления проектом
CodeFest 2011. Архипенков С. — Теория и практика адаптивного управления проектомCodeFest 2011. Архипенков С. — Теория и практика адаптивного управления проектом
CodeFest 2011. Архипенков С. — Теория и практика адаптивного управления проектом
 

Similaire à CodeFest 2012. Ивлиев Р. — Аккуратно переезжаем, или тестирование в проектах миграции

Про тестирование миграций
Про тестирование миграцийПро тестирование миграций
Про тестирование миграцийRoman Ivliev
 
«тестирование для программистов. или «есть ли жизнь без тестировщиков» ( рома...
«тестирование для программистов. или «есть ли жизнь без тестировщиков» ( рома...«тестирование для программистов. или «есть ли жизнь без тестировщиков» ( рома...
«тестирование для программистов. или «есть ли жизнь без тестировщиков» ( рома...MDDay_4
 
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)Ontico
 
Мой рассказ на Codefest 2015 о том, как мы пережили рост нагрузки
Мой рассказ на Codefest 2015 о том, как мы пережили рост нагрузкиМой рассказ на Codefest 2015 о том, как мы пережили рост нагрузки
Мой рассказ на Codefest 2015 о том, как мы пережили рост нагрузкиRoman Ivliev
 
Тестирование для программистов
Тестирование для программистовТестирование для программистов
Тестирование для программистовRoman Ivliev
 
13 октября, DEV {web} - конференция о Highload веб-разработке. "Грабли при ма...
13 октября, DEV {web} - конференция о Highload веб-разработке. "Грабли при ма...13 октября, DEV {web} - конференция о Highload веб-разработке. "Грабли при ма...
13 октября, DEV {web} - конференция о Highload веб-разработке. "Грабли при ма...IT-Portfolio
 
О фреймворках Backend conf 2016
О фреймворках Backend conf 2016О фреймворках Backend conf 2016
О фреймворках Backend conf 2016Roman Ivliev
 
О фреймворках / Роман Ивлиев (Банки.ру)
О фреймворках / Роман Ивлиев (Банки.ру)О фреймворках / Роман Ивлиев (Банки.ру)
О фреймворках / Роман Ивлиев (Банки.ру)Ontico
 
Как мы делаем Banki.ru
Как мы делаем Banki.ruКак мы делаем Banki.ru
Как мы делаем Banki.ruRoman Ivliev
 
Учебный день конференции HighLoad++ 2013
Учебный день конференции HighLoad++ 2013Учебный день конференции HighLoad++ 2013
Учебный день конференции HighLoad++ 2013Ontico
 
Опыт выстраивания процесса Product Discovery
Опыт выстраивания процесса Product DiscoveryОпыт выстраивания процесса Product Discovery
Опыт выстраивания процесса Product DiscoveryNikita Efimov
 
Алексей Романчук «Реактивное программирование»
Алексей Романчук «Реактивное программирование»Алексей Романчук «Реактивное программирование»
Алексей Романчук «Реактивное программирование»DevDay
 
Юрий Цыганенко, QA как услуга
Юрий Цыганенко, QA как услугаЮрий Цыганенко, QA как услуга
Юрий Цыганенко, QA как услугаSQADays_2009_Piter
 
Артём Ерошенко, Станислав Селиверстов "Поиск багов в поиске"
Артём Ерошенко, Станислав Селиверстов "Поиск багов в поиске"Артём Ерошенко, Станислав Селиверстов "Поиск багов в поиске"
Артём Ерошенко, Станислав Селиверстов "Поиск багов в поиске"Yandex
 
Учебный день конференции HighLoad++ 2013
Учебный день конференции HighLoad++ 2013Учебный день конференции HighLoad++ 2013
Учебный день конференции HighLoad++ 2013Ontico
 
Вадим Мадисон "Опыт разработки через микросервисы"
Вадим Мадисон "Опыт разработки через микросервисы"Вадим Мадисон "Опыт разработки через микросервисы"
Вадим Мадисон "Опыт разработки через микросервисы"Tanya Denisyuk
 
Всему своё время / Роман Ивлиев (Банки.ру)
Всему своё время / Роман Ивлиев (Банки.ру)Всему своё время / Роман Ивлиев (Банки.ру)
Всему своё время / Роман Ивлиев (Банки.ру)Ontico
 
Всему своё время Highload Junior 2016
Всему своё время   Highload Junior  2016Всему своё время   Highload Junior  2016
Всему своё время Highload Junior 2016Roman Ivliev
 
Андрей Карпов, Приватные байки от разработчиков анализатора кода
Андрей Карпов, Приватные байки от разработчиков анализатора кодаАндрей Карпов, Приватные байки от разработчиков анализатора кода
Андрей Карпов, Приватные байки от разработчиков анализатора кодаSergey Platonov
 

Similaire à CodeFest 2012. Ивлиев Р. — Аккуратно переезжаем, или тестирование в проектах миграции (20)

Про тестирование миграций
Про тестирование миграцийПро тестирование миграций
Про тестирование миграций
 
«тестирование для программистов. или «есть ли жизнь без тестировщиков» ( рома...
«тестирование для программистов. или «есть ли жизнь без тестировщиков» ( рома...«тестирование для программистов. или «есть ли жизнь без тестировщиков» ( рома...
«тестирование для программистов. или «есть ли жизнь без тестировщиков» ( рома...
 
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
 
Мой рассказ на Codefest 2015 о том, как мы пережили рост нагрузки
Мой рассказ на Codefest 2015 о том, как мы пережили рост нагрузкиМой рассказ на Codefest 2015 о том, как мы пережили рост нагрузки
Мой рассказ на Codefest 2015 о том, как мы пережили рост нагрузки
 
Тестирование для программистов
Тестирование для программистовТестирование для программистов
Тестирование для программистов
 
13 октября, DEV {web} - конференция о Highload веб-разработке. "Грабли при ма...
13 октября, DEV {web} - конференция о Highload веб-разработке. "Грабли при ма...13 октября, DEV {web} - конференция о Highload веб-разработке. "Грабли при ма...
13 октября, DEV {web} - конференция о Highload веб-разработке. "Грабли при ма...
 
О фреймворках Backend conf 2016
О фреймворках Backend conf 2016О фреймворках Backend conf 2016
О фреймворках Backend conf 2016
 
О фреймворках / Роман Ивлиев (Банки.ру)
О фреймворках / Роман Ивлиев (Банки.ру)О фреймворках / Роман Ивлиев (Банки.ру)
О фреймворках / Роман Ивлиев (Банки.ру)
 
Как мы делаем Banki.ru
Как мы делаем Banki.ruКак мы делаем Banki.ru
Как мы делаем Banki.ru
 
Учебный день конференции HighLoad++ 2013
Учебный день конференции HighLoad++ 2013Учебный день конференции HighLoad++ 2013
Учебный день конференции HighLoad++ 2013
 
Ryazan
RyazanRyazan
Ryazan
 
Опыт выстраивания процесса Product Discovery
Опыт выстраивания процесса Product DiscoveryОпыт выстраивания процесса Product Discovery
Опыт выстраивания процесса Product Discovery
 
Алексей Романчук «Реактивное программирование»
Алексей Романчук «Реактивное программирование»Алексей Романчук «Реактивное программирование»
Алексей Романчук «Реактивное программирование»
 
Юрий Цыганенко, QA как услуга
Юрий Цыганенко, QA как услугаЮрий Цыганенко, QA как услуга
Юрий Цыганенко, QA как услуга
 
Артём Ерошенко, Станислав Селиверстов "Поиск багов в поиске"
Артём Ерошенко, Станислав Селиверстов "Поиск багов в поиске"Артём Ерошенко, Станислав Селиверстов "Поиск багов в поиске"
Артём Ерошенко, Станислав Селиверстов "Поиск багов в поиске"
 
Учебный день конференции HighLoad++ 2013
Учебный день конференции HighLoad++ 2013Учебный день конференции HighLoad++ 2013
Учебный день конференции HighLoad++ 2013
 
Вадим Мадисон "Опыт разработки через микросервисы"
Вадим Мадисон "Опыт разработки через микросервисы"Вадим Мадисон "Опыт разработки через микросервисы"
Вадим Мадисон "Опыт разработки через микросервисы"
 
Всему своё время / Роман Ивлиев (Банки.ру)
Всему своё время / Роман Ивлиев (Банки.ру)Всему своё время / Роман Ивлиев (Банки.ру)
Всему своё время / Роман Ивлиев (Банки.ру)
 
Всему своё время Highload Junior 2016
Всему своё время   Highload Junior  2016Всему своё время   Highload Junior  2016
Всему своё время Highload Junior 2016
 
Андрей Карпов, Приватные байки от разработчиков анализатора кода
Андрей Карпов, Приватные байки от разработчиков анализатора кодаАндрей Карпов, Приватные байки от разработчиков анализатора кода
Андрей Карпов, Приватные байки от разработчиков анализатора кода
 

Plus de CodeFest

Alexander Graebe
Alexander GraebeAlexander Graebe
Alexander GraebeCodeFest
 
Никита Прокопов
Никита ПрокоповНикита Прокопов
Никита ПрокоповCodeFest
 
Денис Баталов
Денис БаталовДенис Баталов
Денис БаталовCodeFest
 
Елена Гальцина
Елена ГальцинаЕлена Гальцина
Елена ГальцинаCodeFest
 
Александр Калашников
Александр КалашниковАлександр Калашников
Александр КалашниковCodeFest
 
Ирина Иванова
Ирина ИвановаИрина Иванова
Ирина ИвановаCodeFest
 
Marko Berković
Marko BerkovićMarko Berković
Marko BerkovićCodeFest
 
Денис Кортунов
Денис КортуновДенис Кортунов
Денис КортуновCodeFest
 
Александр Зимин
Александр ЗиминАлександр Зимин
Александр ЗиминCodeFest
 
Сергей Крапивенский
Сергей КрапивенскийСергей Крапивенский
Сергей КрапивенскийCodeFest
 
Сергей Игнатов
Сергей ИгнатовСергей Игнатов
Сергей ИгнатовCodeFest
 
Николай Крапивный
Николай КрапивныйНиколай Крапивный
Николай КрапивныйCodeFest
 
Alexander Graebe
Alexander GraebeAlexander Graebe
Alexander GraebeCodeFest
 
Вадим Смирнов
Вадим СмирновВадим Смирнов
Вадим СмирновCodeFest
 
Константин Осипов
Константин ОсиповКонстантин Осипов
Константин ОсиповCodeFest
 
Raffaele Rialdi
Raffaele RialdiRaffaele Rialdi
Raffaele RialdiCodeFest
 
Максим Пугачев
Максим ПугачевМаксим Пугачев
Максим ПугачевCodeFest
 
Rene Groeschke
Rene GroeschkeRene Groeschke
Rene GroeschkeCodeFest
 
Иван Бондаренко
Иван БондаренкоИван Бондаренко
Иван БондаренкоCodeFest
 
Mete Atamel
Mete AtamelMete Atamel
Mete AtamelCodeFest
 

Plus de CodeFest (20)

Alexander Graebe
Alexander GraebeAlexander Graebe
Alexander Graebe
 
Никита Прокопов
Никита ПрокоповНикита Прокопов
Никита Прокопов
 
Денис Баталов
Денис БаталовДенис Баталов
Денис Баталов
 
Елена Гальцина
Елена ГальцинаЕлена Гальцина
Елена Гальцина
 
Александр Калашников
Александр КалашниковАлександр Калашников
Александр Калашников
 
Ирина Иванова
Ирина ИвановаИрина Иванова
Ирина Иванова
 
Marko Berković
Marko BerkovićMarko Berković
Marko Berković
 
Денис Кортунов
Денис КортуновДенис Кортунов
Денис Кортунов
 
Александр Зимин
Александр ЗиминАлександр Зимин
Александр Зимин
 
Сергей Крапивенский
Сергей КрапивенскийСергей Крапивенский
Сергей Крапивенский
 
Сергей Игнатов
Сергей ИгнатовСергей Игнатов
Сергей Игнатов
 
Николай Крапивный
Николай КрапивныйНиколай Крапивный
Николай Крапивный
 
Alexander Graebe
Alexander GraebeAlexander Graebe
Alexander Graebe
 
Вадим Смирнов
Вадим СмирновВадим Смирнов
Вадим Смирнов
 
Константин Осипов
Константин ОсиповКонстантин Осипов
Константин Осипов
 
Raffaele Rialdi
Raffaele RialdiRaffaele Rialdi
Raffaele Rialdi
 
Максим Пугачев
Максим ПугачевМаксим Пугачев
Максим Пугачев
 
Rene Groeschke
Rene GroeschkeRene Groeschke
Rene Groeschke
 
Иван Бондаренко
Иван БондаренкоИван Бондаренко
Иван Бондаренко
 
Mete Atamel
Mete AtamelMete Atamel
Mete Atamel
 

CodeFest 2012. Ивлиев Р. — Аккуратно переезжаем, или тестирование в проектах миграции

Notes de l'éditeur

  1. Что с тестированием: какие тесты необходимо проводить сильно зависит, на сколько вы изуродовали железное окружение приложения. Вполне вероятно, что тестировать какие-то внутренние механизмы не имеет смысла, а вот понавешать стаберов на внешние интерфейсы и протыкать их выходит что обязательно. А если у вас их нет - значит надо их взлабать ещё до того, как начнете что-то двигать. Вообще факт присутствия например полного регрессионного тестирования сильно зависит от критичности сервиса и вашего внутреннего чутья. Ибо кто как не тестировщик знает все тонкости и нюансы своей системы. Ну и естественно нужен кто-то, кто сможет верхнеуровнево оценить, как этот переезд мог бы повлиять на потроха вашей системы.У меня есть хороший пример. Есть у нас сервис подписки. Через него мы раздаем Касперчега по абонентской плате за месяц. Так вот. Есть два сервера в Москве, стоят у разных провайдеров. А есть клиент. Так вот с одним сервером у него любовь и взаимопонимание, а с другим одни проблемы, то сессию не так закроет, но просто на связь не выходит. Долго ковырялись и выяснили что а какой-то момент пакеты от клиента перестают достигать нашего сервера и он рвет соединение по таймауту. Почему пока не докопались. Но, тем не менее  - можно эту ситуацию рассматривать с той точки зрения, что мы перетащили сервер в другой датацентр.
  2. Что с тестированием: какие тесты необходимо проводить сильно зависит, на сколько вы изуродовали железное окружение приложения. Вполне вероятно, что тестировать какие-то внутренние механизмы не имеет смысла, а вот понавешать стаберов на внешние интерфейсы и протыкать их выходит что обязательно. А если у вас их нет - значит надо их взлабать ещё до того, как начнете что-то двигать. Вообще факт присутствия например полного регрессионного тестирования сильно зависит от критичности сервиса и вашего внутреннего чутья. Ибо кто как не тестировщик знает все тонкости и нюансы своей системы. Ну и естественно нужен кто-то, кто сможет верхнеуровнево оценить, как этот переезд мог бы повлиять на потроха вашей системы.У меня есть хороший пример. Есть у нас сервис подписки. Через него мы раздаем Касперчега по абонентской плате за месяц. Так вот. Есть два сервера в Москве, стоят у разных провайдеров. А есть клиент. Так вот с одним сервером у него любовь и взаимопонимание, а с другим одни проблемы, то сессию не так закроет, но просто на связь не выходит. Долго ковырялись и выяснили что а какой-то момент пакеты от клиента перестают достигать нашего сервера и он рвет соединение по таймауту. Почему пока не докопались. Но, тем не менее  - можно эту ситуацию рассматривать с той точки зрения, что мы перетащили сервер в другой датацентр.
  3. Если сравнить и не брать в рассчет колонки, и что прыгает немного картинка, то отличие серьезное одно – вместо eshop Online Shop и в селекторе страна болдом. Хрен с ним с селектором. Но пункт меню отломал часть тестов на последовательность и состав меню.
  4. А вот теперь пробем стало гораздо больше. До свидания старая DOM-модель, здравствуй новая, очаровательная.
  5. Тестирование контента. К сожалению, к составу контента маркетологи очень требоваетельны. По их науке даже небольшое изменение в тексте роняет или возносит продажи на непомерные высоты. Т.к. все страницы разные, первой идеей было - "а давайте сравним то, что получилось с предыдущей версией сайта". Т.е. по сути воспользуемся подходом тестирования на базе эталонов и попробовать найти ответ на вопрос - "так ли новая кажет, как старая казала". По началу так и делали. В результате потратили кучу времени, т.к автоматически проверять контент оказалось еще сложнее. Дальше решили всех обмануть и проводить тестирование по принципу "работает ли новая система корректно". Т.е. по сути приватизировав право на валидацию. От этой идеи тоже очень быстро отказались, т.к. на русский и английский языки хватило, а вот испанский и итальянский подкачали. Не нашлось носителей языка среди команды миграции. По сути работа миграторов свелась к тому, что проверить, все ли компоненты (картинки, стили и т.д. ) присутствуют и корректно отображаются на странице. А роль читателей отдали носителям языка из группы контент-редакторов. С блоками продаж поступили немного не так: отдали валидацию сотрудникам региональных отделов продаж. Они проверяли корректность работы сайта с интернет-магазинами, настраивали свои трекеры и, заодно, вычитывали тексты и проверяли, что картинки соответвуют дейтсвительности.
  6. Ведь есть же старый сайт. Он то точно правильно работает. Тут же напоролись на то, что работает то он нормально, но вот контент битый. Где очепятка, где картинка не та. Это свойственно системам, где контент контролируется редакторами и не проходит достаточную проверку перед публикацией.
  7. Ведь есть же старый сайт. Он то точно правильно работает. Тут же напоролись на то, что работает то он нормально, но вот контент битый. Где очепятка, где картинка не та. Это свойственно системам, где контент контролируется редакторами и не проходит достаточную проверку перед публикацией.
  8. Не всегда это подходит.
  9. Большие объемы контента. Ребята из саппорта применили неведомый нам доселе прием и не стали сразу запускать новый сайт в продакш, а разрешили нам запустить его в так называемой "бете", чем сделали нам тестирование прогулкой под луной, а не забегом под метеоритным дождем. Что нам это дало - фактор суеты был уничтожен. В результате сейчас в паблике ворочаются оба сайта - старый и новый, не сильно отличающиеся по контенту. При этом новый вежливо просит с вас фидбек. Ура. Мы за бесплатно получили некоторое количество бета-тестеров. Люди пишут отзывы, люди находят баги. Но это баги в бете:)  Даже те, кто не пишет баги - тыкают странички, контролы, формочки. А еще афигенная тема признавать свои ошибки - т.е. если пользователь натыкался на несуществующую страницу или на битый контрол (дя, мы иногда отдаем 40е и 50е, но под картинку с извинениями). А еще ниже картинки - письмо разрабу/тестеру, что что-то отвалолось и можно что-то откопать по горячим следам. Функциональное тестирование: ничего умнее не придумали, как сравнение с эталоном. Старый сайт в рабочем состоянии, вот с ним и сравнивали. Объекты для сравнения выковыривали заранее. Т.к. сайт саппорта не является чем-то высокотехнологичным - таких объектов нашлось не очень много. Были правда и те, которые были созданы с нуля. Их пинали по полной и по всем правилам науки.Контролы и прочий функциональный стаф. При условиях работы сайта под естественной нагрузкой - немного более агрессивное логгирование с нотификацией в почту о критических сбоях (да, оно тормозит время отклика, но мы в бете:)) в компонентах залог нахождения объяснения очень интересным эффектам, на получение которых в лабораторных условиях ушло бы очень много времени. Т.о. мы и тут не ушли от классической науки, применив так назывваемое "soak-тестирование" - тестирование системы в естественной среде обитания под естественными нагрузками. Что касается внутреннего тестирования, которое мы, естественно проводили, подход был выбран такой - чтобы не проверять глазками 7, 5К статей, отсортировали их по рейтингу (старая система исправно считала гвозди) и начали проверять сверху вниз. Плюс ребята из саппорта очень дисцеплинированные - привлекают свои локальные офисы, тыкают сами, пишут баги и т.д. 
  10. Ребята из саппорта применили неведомый нам доселе прием и не стали сразу запускать новый сайт в продакш, а разрешили нам запустить его в так называемой "бете", чем сделали нам тестирование прогулкой под луной, а не забегом под метеоритным дождем. Что нам это дало - фактор суеты был уничтожен. В результате сейчас в паблике ворочаются оба сайта - старый и новый, не сильно отличающиеся по контенту. 
  11. Не всегда это подходит.
  12. Не всегда это подходит.
  13. Все делаем на самом высоком уровне. Т.е. идем по одной – параллельно щупаем остальные. Не 200 – прокололись и не смигрировали.
  14. Все делаем на самом высоком уровне. Т.е. идем по одной – параллельно щупаем остальные. Не 200 – прокололись и не смигрировали.
  15. Группировка контента и постоянные демы. Использование ресурса заказчика на все проценты
  16. Дальше немного про то, что мы использовали, чтобы облегчит себе жизнь
  17. Да, это может снизить производительность системы, но, для этого есть следующий инструмент. Но все это ради следующего инструмента
  18. Уаля. Вопрос регрессии решен.
  19. Нагрузка. Использовали JMeter в распределенном исполнении и ab. Запаса по производительности у серверов прилично, поэтому в основном силы тратили на снижение ресурсоемкости операций. Плюс к этому нагло пользовались распределенной архитектуров системы. На серверах-балансерах включали и выключали ноды, предварительно настроив системы мониторинга (тут кстати стоит отметить, что сами системы мониторинга, особенно с включенным графическим модулем, сильно поедают ресурсы). Т.о. мы получали возможность наблюдать за поведением сервера при реальных нагрузках (имеетсч ввиду реальное поведение пользователя, который приходит на индекс, затем топает в поиск, потом переходит в продуктовые блоки и т.д.) При этом опять же усиливали логирование. Это конечно не очень правильно, но определенных успехов в поимке слабых мест в системе достичь удалось. Почему не достигали на берегу? Потому что система из коробки, с чрезвычайно нетипичным поведением в некоторых ситуациях. Кстати, вот эти чуваки https://browsermob.com/ абсолютно бесплатно предлагают померять время отдачи контента из разных точек, но и напихали на сайт много интересной информации. А еще можно зарегистрироваться и получить еще кучу плюшек. 
  20. Нагрузка. Использовали JMeter в распределенном исполнении и ab. Запаса по производительности у серверов прилично, поэтому в основном силы тратили на снижение ресурсоемкости операций. Плюс к этому нагло пользовались распределенной архитектуров системы. На серверах-балансерах включали и выключали ноды, предварительно настроив системы мониторинга (тут кстати стоит отметить, что сами системы мониторинга, особенно с включенным графическим модулем, сильно поедают ресурсы). Т.о. мы получали возможность наблюдать за поведением сервера при реальных нагрузках (имеетсч ввиду реальное поведение пользователя, который приходит на индекс, затем топает в поиск, потом переходит в продуктовые блоки и т.д.) При этом опять же усиливали логирование. Это конечно не очень правильно, но определенных успехов в поимке слабых мест в системе достичь удалось. Почему не достигали на берегу? Потому что система из коробки, с чрезвычайно нетипичным поведением в некоторых ситуациях. Кстати, вот эти чуваки https://browsermob.com/ абсолютно бесплатно предлагают померять время отдачи контента из разных точек, но и напихали на сайт много интересной информации. А еще можно зарегистрироваться и получить еще кучу плюшек. 
  21. Это было наверное самое ценное предложение из всех. Для всех участников процесса сценарии были сделаны одинаковыми. Составленные в наиболее удобоваримой форме – степ-бай-степ с привлечением маркетинга и саппорта, которые стопитсот лет назад построили эти сценарии на основе статистических данных, собранных на миллионах пользователей. С ними же собрали перечень критичексих для бизнеса страниц, на которые уделяли наибольшее внимание.
  22. Трекеры – очень интересная штука. Помимо всего ненужного, что они делают. Они ещё до кучи позволяют выковыривать много чего интересного – в частности наиболее полулярные страницы, переходы между ними и т.д. Соответственно, опираясь на эту статистику можно вырисовывать критические цепочки страниц и уделять им особое внимание.
  23. Трекеры – очень интересная штука. Помимо всего ненужного, что они делают. Они ещё до кучи позволяют выковыривать много чего интересного – в частности наиболее полулярные страницы, переходы между ними и т.д. Соответственно, опираясь на эту статистику можно вырисовывать критические цепочки страниц и уделять им особое внимание.
  24. На этом месте обычно слайд «Вопросы», но из-за него никогда не получается срисовать контакты выступающего. Поэтому я его упразднил. Большое спасибо за внимание, перезжайте аккуратно, и да прибудет с вами сила! Вопросы