В этом сезоне конференция Heisenbug пройдет хитрее обычного, совместив онлайн и офлайн. На рубеже весны–лета мы проведем онлайн-часть. А когда станет еще теплее — можно будет встретиться в Питере и закрепить успех мероприятия живым общением, вопросами и личными знакомствами.  О чем именно захотят поговорить в офлайне участники — виднее самим участникам, а мы поделимся с Хабром тем, о чём расскажут спикеры. Собрали в одном посте описания докладов. Hardware UI Нагрузка Инструменты/фреймворки Best practices Машинное обучение Не кодом единым Тестирование — это не только привычный веб или мобильные приложения, бывают и вещи нестандартнее: Боль тестирования программно-аппаратных комплексов АО ИнфоТеКС Тестировать ПО непросто, но есть и следующий шаг: тестировать программно-аппаратные комплексы. К уже известным трудностям с софтом прибавляется ещё и специфика работы с хардом: построение TLS-соединения по ГОСТу;   целый спектр операционных систем функционирования; климатические испытания и виброиспытания; серийное производство. Вот некоторые таблетки, которые помогут унять эту боль: переработка тестов с использованием собственной криптографической библиотеки; разработка программного блока автоматизации и развертывание Razor сервера + бот; разработка платы для функциональных проверок с возможностью автоматизации; разработка кастомных прошивок; разработка устройств для серийного производства. А всю комплексную терапию Иван опишет в своем выступлении. Доклад построен так, чтобы слушатель понял, для чего всё это сделано и как. Как не потерять голову, тестируя storage Dell Technologies Dell Technologies Продолжаем железную тему. Теперь поговорим ещё и о системах хранения данных. Это увлекательно и не похоже на тестирование обычного бэкенда.  Юлия и Дмитрий занимаются тестированием сторов. Стор — это, конечно, хранилище данных, но что значит тестировать его?  Ну что же.. Участников ждет экскурсия по многогранному и всеобъемлющему миру тестирования сервиса хранения данных. Все ответы вы найдете сами, увидев мир глазами рядового тестировщика СХД. Для наглядности, ребята подготовили забавную историю от лица рядового тестировщика: как он начинает тестировать стор, как умнеет и поднимается по карьерной лестнице. У спикеров богатый опыт коллекционирования граблей в области тестирования СХД. Интересно будет широкой аудитории, а не только хардкорщикам в области IO. Ничего узкоспециального для понимания доклада не нужно — это, скорее, введение в проблемы тестирования. Как перевести легаси-проект на Selenide  Легко написать на Selenide новый проект. Но что делать, если вам достался в наследство старый проект на Selenium с кучей своих велосипедов и костылей? Взять и всё переписать — нереально.   В этом воркшопе рассмотрим, как можно внедрять Selenide постепенно, без необходимости всё переписывать. Попробуем написать на нем только новые кусочки и заменить некоторые старые. Подружим старый и новый код, чтобы они работали вместе. И увидим, как сильно в этом может помочь IDEA с её рефакторингами и шорткатами.  Растопырим пальцы! Как мы повысили эффективность фермы эмуляторов и ускорили UI-автотесты на Android ВКонтакте У UI-автотестов Android на эмуляторах есть безусловные достоинства, но есть и недостатки. В первую очередь, они долго выполняются, но ещё часто падают и дают ложные срабатывания. Из-за этого их результаты не вызывают особого доверия.  Всем хочется собрать ферму эмуляторов, нарастить её мощность и решить проблемы стабильности. Но не все знают, как этого добиться. Иван поделится практиками, советами и опытом, которые позволили команде VK разработать и обеспечить поддержку крупных ферм тестовых устройств. В докладе будут описаны конфигурации, сформированные в процессе экспериментов, и результаты, полученные при ускорении и увеличении стабильности. Послушать выступление будет полезно тем, кто развивает собственную инфраструктуру автотестов. Но впрочем и тем, кто просто увлечен мобильным тестированием или работает над оптимизацией времени прогона тестов. Понадобятся следующие технологии: Kubernetes, OpenSTF, QEMU. Selenium: почему существующие библиотеки устарели и как сделать новую Aerokube Многие опытные автоматизаторы и знают Selenium, и используют его для запуска тестов в браузерах. Но про внутреннее устройство Selenium —  знают уже намного реже и не всегда могут объяснить нюансы. Чем отличаются Selenium и WebDriver? А клиент Selenium и сервер Selenium? Исторически путаницы здесь много. Иван проведет подробный разбор этих понятий и расскажет о своем видении будущего клиентов для Selenium. Нативные UI-тесты за 21 день Юла Юла Доклад для тех, кто еще не сталкивался с построением инфраструктуры для нативных тестов и не адаптировал приложение для Android. Вы узнаете про опыт внедрения UI-тестов силами части команды Android-разработчиков «Юлы». Внедрение осуществлялось факультативно, не более 20% от времени на разработку.  Команда успешно довела проект до регулярных прогонов на CI. Вы услышите, что делать, если нет времени на тесты и как писать код так, чтобы проще было написать различные виды тестов.  Также в докладе: инициативные группы и договоренности с бизнесом; изменения в коде Android, которые могут потребоваться для нативных UI-тестов; построение простой и надежной инфраструктуры для прототипа;внедрение в кратчайшие сроки. Используемые технологии: Android, Dagger 2, Kaspresso, Allure, GitLab, Rx. Но главное — идеи, как можно адаптировать опыт докладчика под ваши нужды. Доклад будет полезен, если у вас нет тестов и вы хотели бы узнать, как построить минимальную инфраструктуру, и какие изменения в приложении, вероятно, потребуются.   Тема нагрузочного тестирования может показаться узкой, но даже внутри неё  хватает своих подразделов.  Replay логов в качестве профиля нагрузки для MongoDB. Миф или реальность?  Нагрузочное тестирование — само по себе нетривиальное направление в отрасли. А в нашем случае доклад ещё и про replay логов. Этого не было даже на Heisenbug — так что восполняем этот пробел. Раиса расскажет про то, как команда взяла логи приложений и научилась воспроизводить продакшен-нагрузку в лабе. Вы также услышите про то, как они разработали свой нагрузчик: проблемы, возникшие в пути, их решения и извлеченные уроки. Будет много про MongoDB, Java и логи. Понравится перформанс-инженерам и сочувствующим. Подготовка тестовых данных для нагрузочного тестирования протокола gRPC Ozon Как известно, один из самых занимательных (но и муторных) процессов — это подготовка и сбор тестовых данных. Дмитрий покажет, как к решению этой задачи подошли в Ozon: какими инструментами пользуются и какие бывают юзкейсы. Вопросов для обсуждения будет много: Как правильно сгенерировать запросы и не получить ошибки вместо правильных ответов от сервера? Как хранить и изменять подготовленные данные? Как обеспечить большую производительность во время теста? Вы узнаете, как удалось сделать гибкую систему для подготовки данных для нагрузочного тестирования gRPC (и HTTP). Как удалось поднять ее производительность, отказавшись от JSON, и как обходиться без рефлексии при тестировании gRPC.  Доклад пригодится не только нагрузочникам, но и всем, кто готовит тестовые данные или тестирует бинарные протоколы. Нагрузочное тестирование с помощью Python и Locust X5 Group Николай распишет свой рецепт реализации нагрузочного тестирования на Python. Кроме общего описания и демонстрации процесса работы, он приведёт много примеров реализации скриптов и технических задач. Доклад будет организован так: 1. Общее описание подхода Python + Locust.2. Примеры реализации скриптов НТ.3. Запуск и мониторинг тестов Locust. Нагрузочные тестировщики на Python и DevOps-ы — этот доклад для вас. Автоматизация JMeter перформанс-тестов с помощью перфоманс-логов из Chrome Driver Cisco Максим поговорит о приёмах оптимизации разработки и поддержки перфоманс-тестов на JMeter. Некоторые эти приёмы подходят для большинства тестов: например, включение модулей для исключения дублирования кода и передача параметров из командной строки. Но более подробно он рассмотрит вариант сохранения данных об API вызовах, произошедших в WebUI, с помощью performance logging в Chrome Driver. Данные о встроенных вызовах собираются при предварительном выполнении модифицированного функционального теста. Всё это может пригодиться в тех случаях, когда вам нужно симулировать в тесте производительности работу пользователей в WebUI, а вызовы и параметры API часто меняются и приходится часто менять тестовые скрипты, чтобы он не потеряли актуальность. Это позволяет всегда иметь актуальный набор вызовов и экономить на ручных операциях по поддержке тестовых скриптов. Будет интересно тем, кто уже уверенно пишет тесты производительности и хочет снизить затраты на написание и поддержку больших скриптов. Why Java Test Frameworks are Overrated  Стереотипы часто вынуждают нас использовать определенные тестовые фреймворки. Но случается так, что они лишь переусложняют наш код.  В этот раз Себастьян проведет сессию лайвкодинга, чтобы показать, почему многие тестовые фреймворки на Java переоценены. На примере корпоративных проектов он объяснит, как добиться главного — качества тестового кода. Примеры будут на Java. Себастьян известен своими докладами о том, как создавать тесты элегантно. Как разработчики, так и те, кто пишет тесты, смогут взглянуть на знакомые вещи с новой стороны. Mocks vs Testcontainers Synthesized/МФТИ Кто ещё не слышал, как прекрасны Testcontainers?  Их достоинства убедили многих, что в интеграционном тестировании больше не нужны моки. К тому же если мок не работает так же, как «настоящая» система, то в чем вообще его польза? Но всё не совсем так просто. Правда ли, что Testcontainers решат все проблемы интеграционных тестов и пора ли списывать со счетов базу данных H2? На эти вопросы Иван ответит разработчикам, которые пишут интеграционные тесты, работают с БД, кэшами и системами потоковой и пакетной обработки данных. Как устроено тестирование средства статического тестирования PVS-Studio LLC Сергей и его коллеги из PVS-Studio уже рассказывали о том, как применять статические анализаторы. В этот раз мы заглянем ещё глубже — в разработку самих анализаторов и посмотрим, как ловят ошибки в их коде. Тестирование анализаторов имеет свою специфику: Как искать ошибки в инструментах, основная цель которых — поиск ошибок? Как тесты помогают учить анализатор искать не только теоретические проблемы, но и реальные уязвимости? Те, кто интересуется тестированием необычных программ, обязательно узнают ответы. А может быть вдохновятся и на использование похожих приёмов в смежных областях тестирования. Контрактное тестирование как альтернатива системному тестированию Wallarm При разработке микросервисной архитектуры возникает проблема: как протестировать взаимодействие всех микросервисов. Если проводить системные тесты, то потребуется собрать всю систему целиком и запустить сквозное тестирование. Это сложно, долго и ресурсозатратно. Но есть и альтернатива — контрактное тестирование. Оно направлено на тестирование сервисов в изоляции. Дмитрий покажет, как с его помощью ускорить процесс разработки при сохранение уровня надежности. DocOps: шоссе к актуальной документации КУРС-ИТ Качество программного продукта — это, в том числе, качество документации. Однако с ней зачастую не церемонятся. И зря, кстати. Современный DocOps предлагает массу технических приёмов для приведения документации в порядок. Николай выступит с докладом об использовании этого подхода в крупных заказных проектах. Вы узнаете, как DocOps-инженер может: улучшить взаимодействие с заказчиком; стандартизировать разработку и онбординг; упростить ротацию задач между людьми; улучшить восприятие конечного пользователя; и, при этом, снизить затраты на документирование. Обзорный доклад Николая закрывает большую брешь в понимании общей картины обеспечения качества. Он точно будет полезен тем, кто пишет или редактирует документацию. Ну а тем более тем, кто хочет что-то автоматизировать или улучшить. Testing your test Prisma Medios de Pago Разработчики пишут юнит-тесты, чтобы проверить часть кода и увеличить процент покрытия. В начале все идет благополучно. Но когда кто-то вносит изменения в код, а тест продолжает показывать, что всё хорошо, вот тут и начинаются проблемы. Если тест продолжает показывать, что всё в порядке, то в коде точно что-то не так. Хороший способ понять, что происходит — мутационное тестирование: ты динамически вносишь различные модификации в код и смотришь, что получится. Андрес покажет вам, как использовать Pitest — инструмент, дающий разработчику возможность узнать качество теста. С его помощью можно увидеть разные типы отчетов, а сам Pitest можно интегрировать с некоторыми инструментами вроде Sonar. Время выбирать: тест-менеджмент  Выбор правильного инструмента под конкретный проект — это принципиальный выбор. На рынке инструментов тест-менеджмента столько вариантов, что даже в них разобраться уже непросто. Мы знаем, что рано или поздно каждый тестировщик встает перед вопросом, где же хранить свои тесты. Хочется, чтобы у системы и API был, и разные трекеры он поддерживал, и еще много чего.  Вам на помощь придет доклад Юлии. В нем речь пойдет о том, что вообще сегодня можно найти на рынке, как сделать выбор и какие параметры учитывать. Юлия проведет сравнительный анализ инструментов и расскажет об их практическом применении. Найти такой подробный, хорошо структурированный материал в открытых источниках вряд ли удастся. Тем, кто в команде принимает решение о выборе инструментов для тестирования, это точно может пригодится. А рядовых тестировщиков, возможно, вдохновит на развитие или расширит их кругозор. Уберите из своего резюме «разработка QA-фреймворка» Додо инжиниринг Часто QA-специалисты пишут у себя в резюме, что «создали собственный фреймворк». Ещё бы, конструировать собственный велосипед фреймворк — очень увлекательная задача. В итоге, мы имеем просто переусложненный код, от которого вреда больше, чем пользы. Дмитрий объяснит, в какой момент пора уже остановиться с этим: четырёх простых классов вполне достаточно для решения любых практических задач. В докладе рассматриваются практические вопросы по работе с БД (JPA/Hibernate), с REST и gRPC. Также обсудим, насколько оправдано заявлять: «У нас чистый Selenium: без своего фреймворка не обойтись!» Итого. Пишете интеграционные или e2e-тесты? Задумывались о том, что стандартные инструменты неудобны и хорошо бы сделать что-то своё? Советуем вам доклад Дмитрия. Спойлер: Selenide или Playwright не предлагаются. Системы для хранения данных. Тестирование оптимизаций Контур Сергей расскажет об оптимизациях в кластерах баз данных и их тестировании.  В докладе речь пойдет об: Аспектах тестирования оптимизаций. Базовых понятиях в распределенных системах. Требованиях, рисках, обеспечении качества и цене оптимизации инфраструктуры. «Низко висящих фруктах» Вы услышите истории про то, как можно оптимизировать настройки приложений и нанести им пользу (или вред?). А сам доклад «нанесёт» пользу специалистам в обеспечении качества, эксплуататорам, администраторам информационных систем, ну и, конечно, DevOps-инженерам. Автоматизация тестирования десктоп-приложений с использованием нейронных сетей ЛАНИТ Экспертиза ЛАНИТ Экспертиза Тестировать веб-приложения легко, благодаря доступу к компонентам UI. А вот с тестированием десктопа — не всё так просто: открытые и общедоступные решения не умеют определять и локализовывать элементы интерфейса. Разобраться с этим можно с помощью искусственного интеллекта. Он умеет на визуальной основе одного только изображения определить и локализацию, и тип компонентов, и их атрибуты на странице. Да, у нас уже было что-то подобное на одной из прошлых конференций, но Вадим всё расскажет с другой точки зрения. Он непосредственно участвовал в разработке такого инструмента для автоматизации тестирования десктоп-приложений.  В этот раз вы услышите доклад про единый сервис обучения распознаванию изображений.   Вадим и Сергей помогут разработчикам и QA-инженерам, автоматизириующим тестирование десктопа: legacy-системы в банках, страховании, ритейле и промышленности. Если у вас сложности с тестированием десткопных приложений или вам просто интересна тема компьютерного зрения — присоединяйтесь. Распознавание музыки в кино и сериалах для Кинопоиска Кинопоиск На Heisenbug такого еще не обсуждали, но тема актуальная. Доклад посвящен ML-стороне фичи «Распознавание музыки в кино и сериалах» для сервиса «Кинопоиск HD». Алексей подробно рассмотрит общий пайплайн построения разметки, технологический стек под капотом, а также проблемы при выполнении этой задачи. Он расскажет про использованные решения и то, как тестировали качество технологии, когда разработка только-только начиналась. Надеемся, что эта тема мотивирует участников на то, что попробовать свои силы в распознавании музыки или в нейросетевых алгоритмах и ML. В любом случае, если смотрите Кинопоиск, но хотите узнать про устройство сервиса поглубже — вам будет любопытно узнать, как Яндекс подошёл к вопросу. Анализ данных в автоматизации тестирования Яндекс Вместе с Виктором пройдём непростой путь от формирования тестовых данных до анализа полученных результатов и способа их наглядного представления. Спикер расскажет о нестандартных автотестах для класса задач с относительно большими данными, для которых стандартные подходы, увы, не работают. Как всегда, будут и проблемы, и вызовы, и удачные решения. Базовые знания теорвера и анализа данных — очень пригодятся. А примеры и решения будут на Python. Обычно доклады на Heisenbug — это всякая техническая конкретика, где на слайдах может быть код, никаких там soft skills. Но один блок активностей позволит поговорить и о более общих вещах.  Развитие в IT: начало, менеджерская развилка, повседневность Semrush Кто-то из участников Heisenbug уже знает Максима: он неоднократно участвовал в программном комитете конференции. Но вот в спикерском амплуа менее заметен, а это стоит исправлять: Максим уже больше 20 лет работает в IT-отрасли, так что много прошел и многое повидал.  И на такой дистанции можно делать выводы о том, как войти в IT и не выйти, как продолжить свое развитие после получения первой работы, в какой момент можно уходить в менеджмент и нужно ли это делать вообще. Вот об этом всём и поговорим. Как выстраивать работу с QA на разных уровнях зрелости по TMMI? Спортмастер Калуга Астрал Ozon Большинство лидов умеет работать с QA разного уровня: растить джунов, поддерживать сеньоров. Но что, если в ведении лида не одна команда и не отдельные специалисты, а несколько команд из разных продуктов? Уровни развития продуктов разные, соответственно и проблемы у команд различаются. Выработать и спустить ряд правил, единый для всех, здесь не получится. Нужно выстраивать работу с каждой командой по отдельности. По мнению Ксении, TMMI отлично справляется в подобной ситуации. Все плюсы и минусы внутреннего обучения Контур Контур Анастасия занималась созданием пары больших курсов для тестировщиков, небольших мастер-классов, а также локальных обучений. Была несколько раз наставником, ментором. И теперь есть что рассказать о том, кому и когда выгодно создавать своё собственное обучение. Какие виды обучения бывают, их плюсы и минусы. А также поделиться парой советов как делать такие большие проекты вместе со своей основной работой. Полезно будет тем, у кого хоть раз стоял вопрос об обучении (разного объема). Качество в науках о жизни: программное обеспечение и многое другое Quantori Quantori Life sciences («науки о жизни») — раздел естествознания. Для начала разберёмся: что это вообще и какие области входят в концепцию наук о жизни?  А дальше перейдём ближе к теме конференции: какое отношение они имеют к разработке программного обеспечения и какую роль здесь играет обеспечение качества? Как ставить цели, формировать процессы и координировать взаимодействие проектных команд для достижения высоких стандартов? Как тест-автоматизация, BDD, тесты, управляемые тестовыми данными, хорошие практики по автоматизированному производству (GAMP) и валидация помогают разрабатывать здесь качественные продукты? TestOps 101 Qameta Software Здесь выступление не в формате доклада, а в формате интервью с Русланом. Если на предыдущем Heisenbug вы смотрели доклад Артёма Ерошенко «Сказка о потерянном времени», то что-то здесь окажется для вас уже знакомым.  Неудивительно: оба спикера из Qameta, где топят за методологию TestOps. Однако отличия между докладами тоже есть, этот посвящён именно самому понятию TestOps. Так что, если видите слово впервые и хотите разобраться, тут сможете получить ответы на вопросы: что это вообще такое? Нужны ли нам технологии для максимальной автоматизации тестирования? Что может помешать на пути к ней? Как видите, конференция будет пестрая и насыщенная.  На этом новости о ней не заканчиваются, некоторые детали ещё дорабатываются. Если не хотите их пропустить, стоит подписаться на рассылку или в соцсетях. Ссылки на них есть на сайте Heisenbug. А если уже достаточно заинтересовались — вся актуальная информация и билеты тоже на том же сайте.  Увидимся с вами в онлайне. А потом — в Питере.