Конференция Heisenbug («по тестированию, но не только для тестировщиков») близится: программа уже готова, и пришло время поделиться с Хабром всеми подробностями.
Во-первых, напоминаем формат. Конференция будет проходить три дня. Первые два — полностью онлайновые. А вот в третий всё на выбор участников: можно приехать на конференцию в Москве, чтобы как следует пообщаться лично, или подключиться удалённо из любой точки планеты.
Во-вторых, публикуем полную программу. В ней не только доклады-монологи: будут и воркшопы с мастер-классами, где можно научиться чему-то на практике, и круглые столы с тематическими обсуждениями. Среди прочего будут звучать слова «SRE», «Kaspresso», «бенчмаркинг», «TestOps» и не только. Но обо всём по порядку.
Оглавление
Воркшопы и мастер-классы
Всё, что вы хотели знать о Kaspresso и UI-тестах под Android (часть 1, часть 2)
Евгений Мацюк
Careem (UAE)
Автотесты под Android — всё еще боль? Тогда вам прямая дорога на этот большой воркшоп из двух частей. Его цель — построение процесса автотестирования на Android от А до Я в теории и на практике. Выберем инструменты для написания автотестов, развернем инфраструктуру, выстроим процессы CI/CD и разработки, сделаем удобные отчеты. После воркшопа вы выйдете абсолютно другим человеком.
Чтобы воркшоп был максимально полезным, советуем изучить гайд на Хабре перед конференцией.
Просто и понятно про Citrus Framework
Александр Кузнецов
МТС
Александр затронет такие темы, как:
Быстрый старт в Citrus Framework.
Возможности фреймворка и его особенности.
Что такое Citrus Framework, почему и когда его стоит использовать (на практических примерах).
На воркшопе будут использованы IntelliJ IDEA, maven.
Браузерные инструменты: как и зачем их приручать
Татьяна Дроздова
Онлайн-кинотеатр START
За последние несколько лет у браузеров появилось много неочевидных функций, которые помогают с функциональным тестированием, тестированием вёрстки и иногда даже с автоматизацией UI-тестов. На примере повседневных задач Татьяна покажет, как браузерные инструменты и функции позволяют выполнять всё проще и быстрее.
Использование Docker Compose для разработки и тестирования
Алексей Романов
Иннотех
Мы часто слышим, что Docker упрощает жизнь разработчиков и QA, но давайте разберемся, как им пользоваться в мире микросервисов? Поговорим, как с помощью Docker Compose собирать и тестировать все свои сервисы, как собирать и отлаживать микросервисы, поднимая остальное окружение в контейнерах.
Анна Васильева
ATI.SU
Дополнительные навыки в нагрузочном тестировании, производительности, UX, безопасности, автоматизации и так далее помогают QA эффективнее повышать качество в своем продукте. QA, имея знания в тестировании безопасности, может быть евангелистом безопасности в своей команде (Security Champion).
С чего обычно начинают знакомиться с тестированием безопасности — пентестом? Пробуют перебрать пароли от какого-либо сервиса (брутфорс). Знакомятся с OWASP Top 10 и начинают искать XSS, добавляя в поля <img src=x onerror=alert('XSS');>.
Но начинать, по мнению спикера, лучше всего с простой и распространённой уязвимости IDOR (BOLA). На мастер-классе вы научитесь искать её с помощью инструмента Burp Suite. Сохраняйте инструкцию, что нужно сделать перед участием.
Инструменты и фреймворки
E2E-тестирование в CI с помощью Testcontainers
Семен Киреков
МТС Digital
Доклад Семена — о том, что такое E2E-тесты, чем они отличаются от юнит-тестов и интеграционных тестов и почему являются неотъемлемой частью релизного цикла в микросервисных продуктах. На конкретном примере вы увидите, как писать свои E2E-тесты на JUnit5 + Spring Boot Test и настроить их автоматический запуск на каждый пул-реквест с помощью Testcontainers.
Бенчмаркинг и тестирование анализаторов кода и компиляторов
Андрей Кулешов
Huawei
В своей ежедневной работе мы используем сотни приложений из мира системного программирования, но никогда не задумываемся, насколько они надежные и как они тестируются. В докладе будет рассказано про то, как принято верифицировать и тестировать анализаторы кода и другие программы из области системного программирования — например, компиляторы, которые зачастую имеют тестовую базу размером в сотни тысяч тестов.
Андрей расскажет про то, какие бенчмарки, фреймворки и подходы существуют для этого, а также про разрабатываемую сейчас открытую cloud-платформу Save Our Tool для автоматизации и упрощения тестирования и бенчмаркинга статических анализаторов.
TestOps. Построение процесса тестирования на примере Azure DevOps
Александр Шарков
Монитор Электрик (monitel.ru)
Не все руководители могут построить процесс TestOps до конца, считая эти процессы слишком сложными. В действительности у организации процесса тестирования есть базовые принципы, следование которым поможет вам уже в качестве руководителя настроить, автоматизировать свою работу, построить нужные отчеты.
Принципы TestOps могут быть использованы на любой платформе. В докладе в качестве примера взят Azure DevOps — это комплексное решение по разработке программного обеспечения, объединяющее в себе планирование работ, систему управления версиями, сборку, CI/CD, баг-трекинг, TCMS, запуск тестов и многое другое. На его примере Александр рассмотрит, как можно автоматически построить TestOps во множестве команд и уходить в отпуск с уверенностью, что все процессы работают без вас.
Жизнь за Нерзула, или Как сгенерировать 1000 моков и отказаться от тестовых стендов
Алексей Белоглазов
Тинькофф
Возникает куча проблем при работе на тестовом контуре? Хочется все замокать? Со временем моки начинают разъезжаться с сервисами? Соответствие моков реальным сервисам нужно постоянно поддерживать?
Решением может стать «Нерзул» — инструмент, который генерирует моки на основе поведения реальных сервисов. Это один из инструментов в подходе shift left, где нужно тестировать требования к бизнес-задачам.
Как сделать удобный инструмент для тестирования операционной системы
Олег Пригода
Kaspersky
Олег расскажет, как в его команде написали обвязку для pytest и теперь прогоняют разные типы тестов для разных продуктов — от разных команд на разном железе в требованиях SDL.
В каждой компании, выпускающей релизы крупных продуктов, разработчики, тестировщики, билд-инженеры и менеджеры преследуют разные цели.
Чтобы угодить всем, требуется написать много разнородного кода. В команде Олег попробовали структурировать его и на основе pytest в качестве движка написали инструмент, удовлетворяющий желаниям всех перечисленных ролей. Главной идеей была модульность, которая дает возможность из набора готовых кубиков собирать любые конфигурации.
В докладе пойдет об архитектуре инструмента, реализации некоторых его частей, а также будет показана его работа для разных пользовательских сценариев.
Best practices
Дмитрий Андриянов
Яндекс
Все видели «пирамиду тестирования», которая учит, что «дешевых» (быстрых, лёгких) тестов должно быть больше, чем «дорогих» (медленных, сложных). Звучит логично.
Но когда дело касается пользовательского интерфейса, построить пирамиду мало у кого получается. Сложное окружение (браузер или ОС), асинхронность и большое количество внешних зависимостей — кажется, дешевые тесты не применимы в тестировании GUI. Или применимы?
Спикер расскажет, как в Яндексе провели эксперимент — как получилось заменить 80% функциональных Selenium-тестов, юнит-тестами на Jest и JSDOM. Покрытие функциональных требований тестами сохранилось, но теперь вместо нескольких часов, тесты стали выполняться за пять минут. Приятный бонус — стало удобнее разрабатывать и отлаживать автотесты.
Доклад будет интересен middle+ разработчикам и тестировщикам, которые организуют автоматизированное тестирование своего проекта.
Как мы автотестируем VK Звонки
Михаил Шваркунов
VK
С начала пандемии и бума онлайн-конференций решения для видеозвонков VK тоже сильно эволюционировали: появились новые функции, увеличилось количество участников с восьми до бесконечности, стали поддерживаться разные платформы.
Спикер расскажет, с чего начиналась автоматизация тестирования десктоп-клиента, какие автоматические проверки в команде делают для контроля качества звонков и как проверяют клиентский перформанс.
Где кончается функциональное и начинается юзабилити-тестирование
Яна Елизарова
Доклад закрывает несколько вопросов, возникающих в процессах заказной разработки и в небольшой команды продукта:
В зоне чьей ответственности лежит эргономика — инженера тестирования, дизайнера, UX-исследователя?
Если нужного специалиста нет под рукой, как провести консистентное юзабилити-тестирование?
Как зафиксировать результаты тестирования удобства?
В докладе — юзкейсы и постановка задачи в бэклог. Best practices и истории факапов.
k-ветки: использование фича-веток в микросервисной архитектуре
Евгений Харченко
Авито
При работе с монолитом работать с фича-ветками просто и удобно. При работе с микросервисами работать с фича-ветками проще, чем с отдельным сервисом. Увидеть же фича-ветку продукта целиком сложнее: это либо дорого, либо создаёт проблемы другим.
Спикер расскажет о реализаци фича-веток на динамической маршрутизации между сервисами:
как это сделано в «Авито» и как оформляется в продукт для внутренних пользователей;
какие проблемы составляют подводную часть айсберга, и что с ними делать;
какие возможности это открывает.
Тема будет интересна инженерам, связанным с организацией CI/CD и с поддержкой процессов разработки.
Нагрузка
Jira-based генератор трафика в автоматической системе сервисов стрельб по проду
Анатолий Пласковский
Это выступление о том, как:
автоматизировать систему исследований производительности от модуля запуска до модуля анализа результатов;
предоставить сотрудникам компании удобный инструмент для проведения и контроля стрельб на проде, используя в качестве ключевой технологии Jira;
регулярно получать актуальные данные с прода о производительности бизнес-сценариев для всех типов людей в компании.
С технической стороны доклад будет полезен всем, кто причастен к проведению исследований производительности: нагрузочным и функциональным тестировщикам, разработчикам, представителям эксплуатации.
С процессной — будет полезен проектным и продуктовым менеджерам.
Нагрузочное тестирование на прод: сложный путь, но great success
Василий Кудрявцев
РТЛабс
Многие это делают, но мало кто об этом говорит: нагрузочное тестирование на прод — кошмар некоторых «академически настроенных» специалистов и старожилов.
Василий расскажет про опыт подготовки такого нагрузочного тестирования на Госуслугах, о плюсах и минусах, о том, что нужно учесть и чего стоит ожидать. Все будет в виде пошагового гайда и бонусного чек-листа в конце доклада.
Yandex Load Testing: что облачные инструменты дают нагрузочному тестировщику
Александр Иванов
Яндекс
Доклад о том, что представляет собой сервис Load Testing, какие возможности дает синергия облачного провайдера и Яндекс.Танк и как оптимально подобрать ресурсы под подачу нагрузки.
Из доклада вы узнаете не только о том, как решить типовые задачи нагрузочного тестирования, но и какие фишки планируется поддержать в ближайшее время.
Сразу к практике: опыт обучения нагрузке
Максим Рогожников
Тинькофф
Спикер расскажет, как в его команде прошли путь от найма тестировщиков производительности в каждую команду до обучения тестировщиков, разработчиков SRE и т. д. практикам и подходам нагрузочного тестирования. Вы узнаете, как выстроить этот процесс, какие бывают трудности и чему обучают в команде. Также узнаете, какой профит это дает.
Метрики качества для регулярных нагрузочных тестов. Автоматизация остановки неуспешных тестов
Дмитрий Цитман
Мир Plat.Form
Нагрузочное тестирование в современной продуктовой разработке столкнулось с серьезной реформацией. Высокая интенсивность релизов и параллельная разработка создает конкуренцию за ресурсы стендов. Одним из способов решения проблемы может быть автоматизация остановки неуспешных тестов. В докладе я расскажу о том, какие проблемы стоят за данной задачей и какие качественные решения нужно предпринять, чтобы автоматизация была возможна. В докладе будут затронуты темы подготовки требований, сценариев и метрик, а также, о том как можно собирать и обрабатывать метрики во время идущего теста, для того чтобы автоматическая остановка тестов была возможна.
Ещё три доклада по нагрузке (описания добавятся на сайте позже)
Владимир Ситников
JMeter Committer
Вячеслав Смирнов
Miro
Кирилл Юрков
Самокат
Безопасность
Тестирование безопасности API: кейсы, инструменты и рекомендации
Рамазан Рамазанов
DeteAct
При анализе защищенности API приложений почти всегда находят кучу уязвимостей. На примере реальных проектов за последние несколько лет Рамазан расскажет, как ломают API, какие недостатки чаще всего встречаются и как сделать API безопаснее.
Анализ защищенности Windows-приложений
Василий Буров
Kaspersky
В докладе Василий познакомит вас с некоторыми методами тестирования на проникновение и их применением для анализа защищенности Windows-приложений, что позволит не допустить превращения разрабатываемых вами приложений в оружие злоумышленника.
Добавляем поддержку скриптового языка в AFL и LibFuzzer на примере Lua
Сергей Бронников
VK/Tarantool
Один из компонентов СУБД Tarantool — это сервер приложений на Lua, который предоставляет Lua API к самой СУБД и четырем десяткам вспомогательных модулей. До сих пор тестирование функциональности с помощью Lua ограничивалось тестированием на основе примеров. Рандомизированное тестирование было ограничено из-за отсутствия поддержки Lua в фаззерах. Сергей реализовал поддержку фаззинга Lua-скриптов в популярных движках American Fuzzy Lop и libFuzzer, что позволило найти проблемы, которые не находили другие тесты.
Доклад будет интересен всем, кто разрабатывает серверное ПО, интересуется рандомизированным тестированием или планирует добавить поддержку нового языка в AFL или libFuzzer. Знание Lua не потребуется.
Мобильное тестирование
Алексей Альтер-Песоцкий
Stream
Одновременно тестировать фронтенд и бэкенд с помощью автоматических тестов может быть довольно проблематично. Бывают ситуации, когда с фронтендом все в порядке, а UI-тесты все равно падают из-за перебоев или задержек на бэкенде, и это может сильно замедлять процесс тестирования и, как следствие, разработки.
Спикер расскажет про нестандартный подход к разработке автоматизированного тестирования под названием MockServer-driven development (MSDD), при котором автоматические тесты разрабатываются через создание фиктивного сервера, а тестовое покрытие непосредственно зависит от покрытия серверной части.
Инфраструктура Android UI-тестов
Эмилия Куцарева
VK
В «Одноклассниках» UI-автотесты на Android запускаются на каждый коммит в каждом пулл-реквесте. По результатам запуска происходит автоматический анализ запрета мерджа.
Так на раннем этапе разработки кода мы можем найти проблемные места и не пустить их в основную ветку. При запрете мерджа разработчик также получает информацию о том, на какие из падающих тестов стоит обратить внимание, так как мы разделили тесты по категориям в зависимости от стабильности их прохождения.
Сейчас в команде спикера около 1000 тестов, из которых падает менее 1%. В этом им помогает собственная система перезапуска не только тестов, но и отдельных действий и шагов. О том, как это устроено, вы узнаете из доклада.
Hardware
Тестируем воздух: беспроводные устройства умного дома с протоколом Zigbee
Клавдия Осенникова
Яндекс
Дмитрий Башев
Яндекс
Клава и Дима расскажут о тестировании новых устройств умного дома с Яндекс Станцией. Вы познакомитесь с протоколом Zigbee и узнаете, как поддерживать интеграцию на всех уровнях: от прошивки устройства до интерфейса в приложении и голосовых команд.
Ребята поделятся best practices, расскажут о проблемах, с которыми столкнулись при тестировании работы сети, и объяснят, почему важно проводить тесты при участии реальных пользователей и помнить о наличии разных ревизий устройств.
Автоматизация проверок дронов в стиле дзен
Антон Ласточкин
Ручные проверки сложных программно-аппаратных комплексов — дело неблагодарное. Тестирование дронов включает в себя проверки embedded-систем и наземной станции. Представьте, что тестировщик будет думать о том, как создать автотест, вместо того, чтобы проверять все вручную.
Антон расскажет, как вместе с командой организовал собственный фреймворк тестирования на базе опенсорс-движка. После внедрения инструмента написание тестов стало естественным и гармоничным. Автоматизаторы обходятся без языка программирования, в работе используют лишь нескольких шаблонов приемочного тестирования.
В докладе будут затронуты ключевые моменты, которые позволили проекту эволюционировать. Вы узнаете, как избежать ошибок при внедрении автоматизации проверок во встраиваемых системах и GUI на Qt.
VoT, или Как тестировать голосом
Максим Немченко
Альфа-Банк
Роман Кудрявцев
Альфа-Банк
Все мы привыкли к традиционным методам и подходам тестирования. Проверяем бездушные экраны и респонсы руками или скриптами. За этим всем легко утратить творческий подход к работе. Но все меняется, когда дело касается тестирования Альфа — голосового ассистента Альфа-Банка. Ведь сказать можно всё что угодно! И в ответ можно услышать совершенно неожиданно саркастичный ответ.
Спикеры «разберут» Альфа по косточкам, расскажут о функциональности и, конечно же, о тестировании. Его будет много, и оно будет творческим! Доклад будет интересен ручным QA-инженерам любого уровня и всем тем, кто интересуется голосовыми технологиями.
Mesut Durukal
Indeed
Автоматизация работы складов и разработка автономные мобильные роботов сейчас на слуху. Крупнейшие компании в сегменте онлайн-шоппинга и доставки инвестируют в такие системы. А верифицировать и валидировать их оказывается новым большим вызовом.
У качества есть много разные аспектов, от производительности до юзабилити. Они важны всегда, но в случае с автоматизацией складов особенно важно, что исходная идея тут в эффективности и продуктивности. Восстанавливаемость тоже важна, потому что в случае фатальной ошибки может приостановиться работа всего склада.
Автоматизация тестирования подобных вещей приводит к сразу нескольким вызовам. Роботы и hardware-компоненты вроде сенсоров усложняют задачу. У каждого заказчика свой склад со своей конфигурацией. Система должна поддерживать разные конфигурации — по количеству двигающихся роботов, количеству товаров на складе, приоритетности заказов. Возникает множество вопросов от воспроизводимости багов до зависимости от железа.
О различных сложностях и способах их решения и пойдёт речь в докладе.
UI
Дизайн и унификация UI-тестов на базе Model Based Testing
Никита Чегодаев
ВТБ
Спикер поделится опытом в сфере тест-дизайна UI-тестов. Расскажет о подходе, который применяет, на практическом примере разберет его сильные и слабые стороны.
Напоследок
Не докладами едиными живут конференции. Во-первых, на Heisenbug будут и другие активности. Например, такие интервью и обсуждения:
TestOps 101: Part 2 (для пропустивших: видеозапись «первой части»)
А ещё — игра «100 к 1 тестировщику»
Но важнее, наверное, другое: конференция — это не только про просмотр докладов. Можно будет активно пообщаться и в Москве на офлайн-дне 18 ноября, и при удалённом подключении: после каждого доклада происходит видеосозвон со спикером, и у каждого доклада есть свой чат для вопросов.
А нам остаётся напомнить: все подробности (вроде расписания) и билеты — на сайте конференции.