Багфиксинг процесса разработки в iOS: взгляд с двух сторонBadoo Development
Techleads Meetup #1
"Багфиксинг процесса разработки в iOS: взгляд с двух сторон"
Екатерина Николаенко, iOS QA Lead и
Катерина Трофименко, iOS Developer (Badoo)
Описание:
Приложение Badoo для iOS существует около 7 лет и пережило уже 4 реинкарнации. Наши процессы и подходы не всегда были оптимальны и мы не единственные, кто познали релизы через боль и страдание всех участников процесса разработки.
Чтобы найти идеальный баланс между скоростью и качеством мы решили отрефакторить процессы разработки и тестирования в iOS команде и добились релизов раз в неделю. Из нашего доклада вы узнаете об эволюции команды с точки зрения разработки и тестирования. А так же мы расскажем как мы уменьшили crash-rate в 40 раз.
Techleads Meetup #1
"Технологии vs коммуникации: что важнее?"
Альгис Фатеев, руководитель тестирования (Avito)
Описание:
последние несколько лет проект Avito растёт лавинообразным образом, с 2012 года команда разработчиков выросла в 20 раз. За очень короткое время мы прошли путь от «ну что, будем релизиться?» до отлаженного процесса выкатки кода в продакшн. В докладе речь пойдёт о том, как изменилась команда, процессы разработки и жизненный цикл задач в Avito за последние годы, как внедрялось тестирование в проект.
Кроме того, я отдельно рассмотрю вопросы, касающиеся управляемости проекта при резком росте:
— какие решения, заложенные на начальном этапе, позволили нам быстро масштабироваться;
— с какими главными болезнями роста мы столкнулись и как их решали;
— как подготовиться на случай лавинообразного роста.
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщикаQAFest
В темные времена доминации Internet Explorer на рынке браузеров, тестировщик оставался один на один с тестируемым приложением, и лишь усердие, трудолюбие и крепкий алкоголь могли спасти его от безумия и профессионального выгорания.
К счастью, времена изменились. Современные браузеры скрывают в себе множество полезных функций и имеют тысячи плагинов, способных помочь тестировщику веб приложений. Я расскажу вам о браузерных плагинах, которые значительно облегчили тестирование верстки, поизводительности, отзывчивости сайта, позволили мне ускорить выполнение рутинных задач, а также повысили личную эффективность.
Багфиксинг процесса разработки в iOS: взгляд с двух сторонBadoo Development
Techleads Meetup #1
"Багфиксинг процесса разработки в iOS: взгляд с двух сторон"
Екатерина Николаенко, iOS QA Lead и
Катерина Трофименко, iOS Developer (Badoo)
Описание:
Приложение Badoo для iOS существует около 7 лет и пережило уже 4 реинкарнации. Наши процессы и подходы не всегда были оптимальны и мы не единственные, кто познали релизы через боль и страдание всех участников процесса разработки.
Чтобы найти идеальный баланс между скоростью и качеством мы решили отрефакторить процессы разработки и тестирования в iOS команде и добились релизов раз в неделю. Из нашего доклада вы узнаете об эволюции команды с точки зрения разработки и тестирования. А так же мы расскажем как мы уменьшили crash-rate в 40 раз.
Techleads Meetup #1
"Технологии vs коммуникации: что важнее?"
Альгис Фатеев, руководитель тестирования (Avito)
Описание:
последние несколько лет проект Avito растёт лавинообразным образом, с 2012 года команда разработчиков выросла в 20 раз. За очень короткое время мы прошли путь от «ну что, будем релизиться?» до отлаженного процесса выкатки кода в продакшн. В докладе речь пойдёт о том, как изменилась команда, процессы разработки и жизненный цикл задач в Avito за последние годы, как внедрялось тестирование в проект.
Кроме того, я отдельно рассмотрю вопросы, касающиеся управляемости проекта при резком росте:
— какие решения, заложенные на начальном этапе, позволили нам быстро масштабироваться;
— с какими главными болезнями роста мы столкнулись и как их решали;
— как подготовиться на случай лавинообразного роста.
QA Fest 2016. Александр Неделяев. Браузерные помощники тестировщикаQAFest
В темные времена доминации Internet Explorer на рынке браузеров, тестировщик оставался один на один с тестируемым приложением, и лишь усердие, трудолюбие и крепкий алкоголь могли спасти его от безумия и профессионального выгорания.
К счастью, времена изменились. Современные браузеры скрывают в себе множество полезных функций и имеют тысячи плагинов, способных помочь тестировщику веб приложений. Я расскажу вам о браузерных плагинах, которые значительно облегчили тестирование верстки, поизводительности, отзывчивости сайта, позволили мне ускорить выполнение рутинных задач, а также повысили личную эффективность.
Дело тестера боится: как в опытных руках могут заиграть Java и TestNgIT61
Вячеслав Марков, QA engineer в Weezlabs
Я расскажу о том, как в нашей фирме организовано тестирование бэкенда с помощью тестового фреймворка TestNG и Java. Расскажу о data-driven тестировании и о том, почему его удобно применять. Покажу и опишу разработанную нами структуру типового тестового проекта. Представлю применяемые нами способы сбора и документирования результатов, а так же их анализ в условиях CI.
Techleads Meetup #1
Мобильный веб: назад в будущее"
Виталий Шароватов, Mobile Web Team Lead и Руслан Байрамкулов, Senior Mobile Web QA Engineer (Badoo)
Описание:
Количество пользователей мобильных устройств уже давно превысило количество пользователей стационарных компьютеров и ноутбуков. В свою очередь мобильный веб — это самая быстрорастущая мобильная платформа (по данным comScore, 2015). И если будущее не за этой платформой, то как минимум, она будет его заметной частью.
Давным-давно для Мобильного веба в Badoo были «тёмные времена». Использовались дизайны нативных платформ и эмитировалось их поведение. Даже релизы случались раз в неделю-две. Около года назад ситуация начала меняться в лучшую сторону. Мобильная веб версия Badoo догнала по количеству фич остальные платформы и показала существенный рост по всем показателям. Теперь мобильный веб релизится каждый день.
В докладе мы расскажем о том, что неправильного происходит с процессами внутри и снаружи команды. Для примера возьмем как собственные грабли, так и чужие, но такие распространённые ошибки организации работы.
О том, что не помогло, рассказывать не будем, а о том, что сработало, ничего не утаим. Эта информация поможет вам работать в удовольствие. В ассортименте истории о том:
— как один автоматизатор всю регрессию покрыл;
— как подружились продакты-дизайнеры с командой разработки;
— как жадные программисты забрали себе всю ответственность;
— пуркуа QA любит сидеть с девелоперами плечом к плечу;
— зачем нужно не спускать глаз с багов, ломающих автоматизацию, и как заканчивать фичу после того, как закончили фичу.
В этой презентации я рассказываю не только об автотестах, а о целом комплексе автоматических инструментов для обеспечения качества веб-сервиса на разных этапах разработки.
Как обеспечить проверку формата? Как поддерживать документацию в актуальном виде? Какую архитектуру выбрать для функциональных тестов?
Немного интересного про JSON-схемы и параметризованные тесты, про тестирование API методом чёрного ящика и про выбор исходных данных для тестирования.
Дело тестера боится: как в опытных руках могут заиграть Java и TestNgIT61
Вячеслав Марков, QA engineer в Weezlabs
Я расскажу о том, как в нашей фирме организовано тестирование бэкенда с помощью тестового фреймворка TestNG и Java. Расскажу о data-driven тестировании и о том, почему его удобно применять. Покажу и опишу разработанную нами структуру типового тестового проекта. Представлю применяемые нами способы сбора и документирования результатов, а так же их анализ в условиях CI.
Techleads Meetup #1
Мобильный веб: назад в будущее"
Виталий Шароватов, Mobile Web Team Lead и Руслан Байрамкулов, Senior Mobile Web QA Engineer (Badoo)
Описание:
Количество пользователей мобильных устройств уже давно превысило количество пользователей стационарных компьютеров и ноутбуков. В свою очередь мобильный веб — это самая быстрорастущая мобильная платформа (по данным comScore, 2015). И если будущее не за этой платформой, то как минимум, она будет его заметной частью.
Давным-давно для Мобильного веба в Badoo были «тёмные времена». Использовались дизайны нативных платформ и эмитировалось их поведение. Даже релизы случались раз в неделю-две. Около года назад ситуация начала меняться в лучшую сторону. Мобильная веб версия Badoo догнала по количеству фич остальные платформы и показала существенный рост по всем показателям. Теперь мобильный веб релизится каждый день.
В докладе мы расскажем о том, что неправильного происходит с процессами внутри и снаружи команды. Для примера возьмем как собственные грабли, так и чужие, но такие распространённые ошибки организации работы.
О том, что не помогло, рассказывать не будем, а о том, что сработало, ничего не утаим. Эта информация поможет вам работать в удовольствие. В ассортименте истории о том:
— как один автоматизатор всю регрессию покрыл;
— как подружились продакты-дизайнеры с командой разработки;
— как жадные программисты забрали себе всю ответственность;
— пуркуа QA любит сидеть с девелоперами плечом к плечу;
— зачем нужно не спускать глаз с багов, ломающих автоматизацию, и как заканчивать фичу после того, как закончили фичу.
В этой презентации я рассказываю не только об автотестах, а о целом комплексе автоматических инструментов для обеспечения качества веб-сервиса на разных этапах разработки.
Как обеспечить проверку формата? Как поддерживать документацию в актуальном виде? Какую архитектуру выбрать для функциональных тестов?
Немного интересного про JSON-схемы и параметризованные тесты, про тестирование API методом чёрного ящика и про выбор исходных данных для тестирования.
В этом докладе я в подробностях расскажу о том, как устроено хранение фотографий в нашей компании (всего около ~1 Пб).
Наша система была устроена достаточно просто — сами фотографии хранятся на SAN Storages, которые подключены через Fiber Channel к отдельной группе серверов, "*photos". На photos-серверах смонтированы разделы на соответствующих сетевых блочных устройствах, которые с точки зрения пользователя выглядят, как обычная файловая система.
Мы не используем никакие «хитрые» системы для хранения фотографий и не храним всё в одном файле — каждый размер каждой фотографии представляет из себя обычный файл на файловой системе ext3/4. Фотографии отдаются через nginx напрямую из файловой системы.
Такой способ хранения больших объемов данных весьма дешев, но приводил к проблемам, когда соответствующие SAN «падали», вплоть до повреждения файловой системы с потерей части данных пользователей.
Поэтому, для решения этой проблемы, а также проблем с производительностью, мы решили сделать «софтверную репликацию» фотографий с кешированием данных на SSD.
Также, в качестве эксперимента, мы решили попробовать ещё один способ — хранение на локальных дисках вместо использования SAN. По стоимости решение значительно дороже, но зато надежнее и проще в поддержке. Также, для обеспечения устойчивости к выходу из строя любой машины из такого кластера, мы решили сделать возможной балансировку всех поступающих запросов на весь кластер, то есть, в современных терминах, сделать «распределенное, отказоустойчивое, высокодоступное облачное хранилище».
Доклад Андрея Саса на конференции РИТ++ 2014. "Email-рассылки для профи- част...Badoo Development
Внезапно оказалось, что email-рассылка важна для вашего проекта? Обнаружили, что письма приходят в "Спам"? Иногда пользователи ждут их по часу? Хотите увеличить число отправляемых писем в N раз и не знаете, справится ли почтовый сервер? Не знаете, как правильно тестировать разные версии писем?
Этот доклад даст вам видение всего спектра задач, которые приходится решать для поддержания email-рассылок проекта "в тонусе", а также представление о возможных путях их решения.
Популярные проблемы и пути их решения:
1. Техническая реализация:
а) что нужно знать:
- устройство вашей системы отправки;
- как настроены механизмы авторизации писем;
- какова скорость рассылки, каково число серверов и т.п.;
б) популярные задачи и проблемы:
- хочу слать 3 миллиона писем в день, как много серверов мне понадобится?
- собственный сервер vs. сторонний рассыльщик?
- как понять, что сервис рассылок "плохой"?
- без какой статистики нельзя жить?
в) полезные советы и хаки:
- микрофреймворк для писем;
- config типов писем;
- асинхронная генерация писем;
- мониторинг падений email-адресов.
2. Доставляемость:
а) что нужно знать:
- распределение базы по почтовым сервисам;
- источники пополнения базы;
- типы писем и логику их рассылки;
- историю проблем с доставляемостью;
б) популярные задачи и проблемы:
- письма начали приходить в "Спам", что же делать?
- как построить мониторинг доставляемости?
в) полезные советы и хаки:
- популярные ошибки, приводящие к проблемам;
- postmaster.mail.ru;
- postoffice.yandex.ru;
- будьте осторожны с приглашениями;
- график среднего времени доставки как показатель доставляемости.
Зачем тестировать? Тестирование в интерпретаторе и доктесты. Модуль unittest. Пакет py.test - на порядок лучше. Тестирование свойств и пакет hypothesis.
Лекция 7. Исключения и менеджеры контекста.Roman Brovko
Исключения, зачем они нужны и как их обрабатывать. Встроенные исключения и базовые классы BaseException и Exception. Операторы try...except..else..finally. Менеджеры контекста и модуль contextlib.
Синтаксис объявления классов. Атрибуты, связанные и несвязанные методы, __dict__, __slots__. Статические методы и методы класса. Свойства, декоратор @property. Наследование, перегрузка методов и функция super. Декораторы классов. Магические методы.
Внедрение Docker в процесс разработки демонов. Доклад Константина Карпова на ...Badoo Development
Рассказываем о том, как мы жили без Docker'а и зачем его решили использовать. А также описываем процесс внедрения в CI и, в частности, в тесты, плюс с какими проблемами столкнулись и как их побороли.
QA-конференция heisenbug.ru
ChromeDriver Jailbreak, Александр Баяндин (Badoo)
Chrome DevTools — один из наиболее полезных инструментов веб-разработчика. Он позволяет получать исчерпывающую информацию о странице и запросах и эмулировать мобильные браузеры на медленных устройствах. ChromeDriver использует тот же Chrome Debugging Protocol, что и DevTools для реализации Selenium JSON Wire Protocol взаимодействия с браузером. Этот протокол описывает самый базовый набор методов для взаимодействия со страницей, который несомненно уже всего набора методов, доступных в DevTools. В своём докладе Александр расскажет о том, как можно использовать (почти) всю мощь DevTools в Selenium-тестах и как сделать их отладку наиболее удобной.
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Ontico
HighLoad++ 2017
Зал «Кейптаун», 8 ноября, 10:00
Тезисы:
http://www.highload.ru/2017/abstracts/2914.html
Казалось бы, что нужно для организации тестового окружения? Тестовая железка и копия боевого окружения - и тестовый сервер готов. Но как быть, когда проект сложный? А когда большой? А если нужно тестировать одновременно много версий? А если все это вместе?
Организация тестирования большого развивающегося проекта, где одновременно в разработке и тестировании около полусотни фич - достаточно непростая задача. Ситуация обычно осложняется тем, что иногда есть желание потрогать еще не полностью готовый функционал. В таких ситуациях часто возникает вопрос: "А куда это можно накатить и где покликать?"
...
Евгений Батовский, Николай Птущук "Современный станок верстальщика"Yandex
Рассказ о том, что представляет собой наш «станок» верстальщика сегодня. Рассказывается с примерами, какие браузеры поддерживаем, как производим кроссбраузерное тестирование и какие инструменты используем, готовя проект к выходу в свет.
В лекции мы попробуем взглянуть на страницу глазами пользователей и понять, что можно сделать для ускорения ее загрузки. Рассмотрим основные оптимизации на стороне браузера, познакомимся с инструментами для измерения времени отображения.
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Ontico
HighLoad++ 2017
Зал «Кейптаун», 8 ноября, 15:00
Тезисы:
http://www.highload.ru/2017/abstracts/2957.html
Расскажем о нашем опыте разработки модуля межсетевого экрана для MySQL с использованием генератора парсеров ANTLR и языка Kotlin.
Подробно рассмотрим следующие вопросы:
— когда и почему целесообразно использовать ANTLR;
— особенности разработки ANTLR-грамматики для MySQL;
— сравнение производительности рантаймов для ANTLR в рамках задачи синтаксического анализа MySQL (C#, Java, Kotlin, Go, Python, PyPy, C++);
— вспомогательные DSL;
— микросервисная архитектура модуля экранирования SQL;
— полученные результаты.
96. Резюмируя
- Обнаруживать проблему на самых ранних этапах
- Полноценный цикл CI
- Гибкий фреймворк и утилиты
- Быстрое добавление новых тестов
- Легкое воспроизведение проблемы
97. Спасибо за внимание
Антон Волков
advolkov1@gmail.com
Badoo Development
tech.badoo.com
habrahabr.ru/company/badoo/
bit.ly/2058FhM
QAApi