Протестировать всё: о чём расскажут на Heisenbug 2022 Spring

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

В этом сезоне конференция Heisenbug пройдет хитрее обычного, совместив онлайн и офлайн. На рубеже весны–лета мы проведем онлайн-часть. А когда станет еще теплее — можно будет встретиться в Питере и закрепить успех мероприятия живым общением, вопросами и личными знакомствами. 

О чем именно захотят поговорить в офлайне участники — виднее самим участникам, а мы поделимся с Хабром тем, о чём расскажут спикеры. Собрали в одном посте описания докладов.

Оглавление

  • Hardware

  • UI

  • Нагрузка

  • Инструменты/фреймворки

  • Best practices

  • Машинное обучение

  • Не кодом единым


Hardware

Тестирование — это не только привычный веб или мобильные приложения, бывают и вещи нестандартнее:

Боль тестирования программно-аппаратных комплексов

Иван Саварин

АО ИнфоТеКС

Тестировать ПО непросто, но есть и следующий шаг: тестировать программно-аппаратные комплексы. К уже известным трудностям с софтом прибавляется ещё и специфика работы с хардом:

  • построение TLS-соединения по ГОСТу;

  • целый спектр операционных систем функционирования;

  • климатические испытания и виброиспытания;

  • серийное производство.

Вот некоторые таблетки, которые помогут унять эту боль:

  • переработка тестов с использованием собственной криптографической библиотеки;

  • разработка программного блока автоматизации и развертывание Razor сервера + бот;

  • разработка платы для функциональных проверок с возможностью автоматизации;

  • разработка кастомных прошивок;

  • разработка устройств для серийного производства.

А всю комплексную терапию Иван опишет в своем выступлении. Доклад построен так, чтобы слушатель понял, для чего всё это сделано и как.


Как не потерять голову, тестируя storage

Юлия Ковшова

Dell Technologies

Дмитрий Рождественский

Dell Technologies

Продолжаем железную тему. Теперь поговорим ещё и о системах хранения данных. Это увлекательно и не похоже на тестирование обычного бэкенда. 

Юлия и Дмитрий занимаются тестированием сторов. Стор — это, конечно, хранилище данных, но что значит тестировать его? 

Ну что же.. Участников ждет экскурсия по многогранному и всеобъемлющему миру тестирования сервиса хранения данных. Все ответы вы найдете сами, увидев мир глазами рядового тестировщика СХД. Для наглядности, ребята подготовили забавную историю от лица рядового тестировщика: как он начинает тестировать стор, как умнеет и поднимается по карьерной лестнице.

У спикеров богатый опыт коллекционирования граблей в области тестирования СХД. Интересно будет широкой аудитории, а не только хардкорщикам в области IO. Ничего узкоспециального для понимания доклада не нужно — это, скорее, введение в проблемы тестирования.


UI

Как мы повысили эффективность фермы эмуляторов и ускорили 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

Старший специалист по нагрузочному тестированию в X5 Tech. Тестирует Платформу прогнозирования спроса Х5.

Более 5 лет занимается нагрузочным тестированием. Ранее участвовал в российских и зарубежных проектах: Сбербанк, ВТБ24, ЮЛМАРТ, Innovative Interfaces. Работал в составе команд Aplana, EPAM.


Автоматизация JMeter перформанс-тестов с помощью перфоманс-логов из Chrome Driver

Максим Семененко

Cisco

Максим поговорит о приёмах оптимизации разработки и поддержки перфоманс-тестов на JMeter.

Некоторые эти приёмы подходят для большинства тестов: например, включение модулей для исключения дублирования кода и передача параметров из командной строки.

Но более подробно он рассмотрит вариант сохранения данных об API вызовах, произошедших в WebUI, с помощью performance logging в Chrome Driver. Данные о встроенных вызовах собираются при предварительном выполнении модифицированного функционального теста.

Всё это может пригодиться в тех случаях, когда вам нужно симулировать в тесте производительности работу пользователей в WebUI, а вызовы и параметры API часто меняются и приходится часто менять тестовые скрипты, чтобы он не потеряли актуальность. Это позволяет всегда иметь актуальный набор вызовов и экономить на ручных операциях по поддержке тестовых скриптов.

Будет интересно тем, кто уже уверенно пишет тесты производительности и хочет снизить затраты на написание и поддержку больших скриптов.


Инструменты и фреймворки

Why Java Test Frameworks are Overrated

Sebastian Daschner

Стереотипы часто вынуждают нас использовать определенные тестовые фреймворки. Но случается так, что они лишь переусложняют наш код. 

В этот раз Себастьян проведет сессию лайвкодинга, чтобы показать, почему многие тестовые фреймворки на Java переоценены. На примере корпоративных проектов он объяснит, как добиться главного — качества тестового кода. Примеры будут на Java.

Себастьян известен своими докладами о том, как создавать тесты элегантно. Как разработчики, так и те, кто пишет тесты, смогут взглянуть на знакомые вещи с новой стороны.


Mocks vs Testcontainers

Иван Пономарёв

Synthesized/МФТИ

Кто ещё не слышал, как прекрасны Testcontainers? 

Их достоинства убедили многих, что в интеграционном тестировании больше не нужны моки. К тому же если мок не работает так же, как «настоящая» система, то в чем вообще его польза? Но всё не совсем так просто.

Правда ли, что Testcontainers решат все проблемы интеграционных тестов и пора ли списывать со счетов базу данных H2?

На эти вопросы Иван ответит разработчикам, которые пишут интеграционные тесты, работают с БД, кэшами и системами потоковой и пакетной обработки данных.


Как устроено тестирование средства статического тестирования

Сергей Васильев

PVS-Studio LLC

Сергей и его коллеги из PVS-Studio уже рассказывали о том, как применять статические анализаторы. В этот раз мы заглянем ещё глубже — в разработку самих анализаторов и посмотрим, как ловят ошибки в их коде.

Тестирование анализаторов имеет свою специфику:

  • Как искать ошибки в инструментах, основная цель которых — поиск ошибок?

  • Как тесты помогают учить анализатор искать не только теоретические проблемы, но и реальные уязвимости?

Те, кто интересуется тестированием необычных программ, обязательно узнают ответы. А может быть вдохновятся и на использование похожих приёмов в смежных областях тестирования.


Контрактное тестирование как альтернатива системному тестированию

Дмитрий Шидловский

Wallarm

При разработке микросервисной архитектуры возникает проблема: как протестировать взаимодействие всех микросервисов.

Если проводить системные тесты, то потребуется собрать всю систему целиком и запустить сквозное тестирование. Это сложно, долго и ресурсозатратно.

Но есть и альтернатива — контрактное тестирование. Оно направлено на тестирование сервисов в изоляции. Дмитрий покажет, как с его помощью ускорить процесс разработки при сохранение уровня надежности.


DocOps: шоссе к актуальной документации

Николай Поташников

КУРС-ИТ

Качество программного продукта — это, в том числе, качество документации. Однако с ней зачастую не церемонятся. И зря, кстати. Современный DocOps предлагает массу технических приёмов для приведения документации в порядок.

Николай выступит с докладом об использовании этого подхода в крупных заказных проектах. Вы узнаете, как DocOps-инженер может:

  • улучшить взаимодействие с заказчиком;

  • стандартизировать разработку и онбординг;

  • упростить ротацию задач между людьми;

  • улучшить восприятие конечного пользователя;

  • и, при этом, снизить затраты на документирование.

Обзорный доклад Николая закрывает большую брешь в понимании общей картины обеспечения качества. Он точно будет полезен тем, кто пишет или редактирует документацию. Ну а тем более тем, кто хочет что-то автоматизировать или улучшить.


Testing your test

Andres Sacco

Prisma Medios de Pago

Разработчики пишут юнит-тесты, чтобы проверить часть кода и увеличить процент покрытия. В начале все идет благополучно. Но когда кто-то вносит изменения в код, а тест продолжает показывать, что всё хорошо, вот тут и начинаются проблемы.

Если тест продолжает показывать, что всё в порядке, то в коде точно что-то не так. Хороший способ понять, что происходит — мутационное тестирование: ты динамически вносишь различные модификации в код и смотришь, что получится.

Андрес покажет вам, как использовать Pitest — инструмент, дающий разработчику возможность узнать качество теста. С его помощью можно увидеть разные типы отчетов, а сам Pitest можно интегрировать с некоторыми инструментами вроде Sonar.


Best practices

Время выбирать: тест-менеджмент

Юлия Атлыгина

Выбор правильного инструмента под конкретный проект — это принципиальный выбор. На рынке инструментов тест-менеджмента столько вариантов, что даже в них разобраться уже непросто.

Мы знаем, что рано или поздно каждый тестировщик встает перед вопросом, где же хранить свои тесты. Хочется, чтобы у системы и 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.

А если уже достаточно заинтересовались — вся актуальная информация и билеты тоже на том же сайте

Увидимся с вами в онлайне. А потом — в Питере.

Источник: https://habr.com/ru/company/jugru/blog/666224/


Интересные статьи

Интересные статьи

Несмотря на то, что MariaDB является форком базы данных MySQL Oracle, они разошлись настолько, что сейчас сильно отличаются друг от друга. Такая система управления базами данных, как MySQL, является п...
В статье показано, как работают библиотеки Spring (Spring Data, Spring Feign), и показано, как можно создать свою похожую библиотеку. Читать далее ...
Spring предоставляет много удобств и многие его возможности кажутся магией - поставил аннотацию и все работает. Но, когда что-то идет не так (например, почему-то не работ...
Когда мы создаем программное обеспечение, мы хотим создавать «-способности»: понятность, ремонтопригодность, расширяемость и - в тренде сейчас - декомпозицию (чтобы мы могли разложить мон...
Сравнивать CRM системы – дело неблагодарное. Очень уж сильно они отличаются в целях создания, реализации, в деталях.