Тестирование со всех сторон: о чём расскажут на Heisenbug
Программа конференции Heisenbug готова, настало время представить её Хабру. Понятно, что там расскажут о тестировании, но как именно? Среди блоков программы — инструменты тестирования, нагрузочное тестирование, тестирование веба и мобильных приложений, даже ИИ. А кроме докладов, будет ряд воркшопов — так что можно будет не только слушать, но и практиковаться.
Подробно рассказали про доклады и воркшопы под катом. Главное, что их все объединяет: это практически применимые выступления от знающих людей. Почему мы так считаем? Решая, включать ли доклад в программу, программный комитет отвечает на 4 вопроса:
- чем интересна тема,
- чем ценен спикер,
- кому будет полезно,
- почему стоит слушать это здесь и сейчас.
А вот блоки, на которые можно поделить программу:
— AI
— Инструменты
— Нагрузочное тестирование
— Визуальное тестирование
— Web
— Бэкенд
— Мобильные приложения
— Не только тестирование: вокруг Heisenbug
AI
Конечно, ИИ — далеко не самое частое, с чем сталкиваются люди в тестировании. Но начнём с этой темы, потому что по ней выскажутся два особенно заметных спикера:
«The role of testing in the age of AI», James Whittaker
Джеймс известен прежде всего как автор книг и визионер в тестировании. Одна из самых известных его книг — «Как тестируют в Google». Помимо Google, он работал в других гигантах вроде Microsoft, где получил титул Distinguished Engineer. В общем, этого человека интересно послушать, о чём именно он бы ни говорил.
Выступление Джеймса станет закрывающим докладом конференции, и после нескольких дней суровой технической конкретики «как именно нам работать сегодня» даст подумать о более общих вопросах. По мнению Джеймса, уже приходит эпоха ИИ, отличающаяся от эпохи традиционного программного обеспечения, и это скажется на тестировании. По-прежнему нужно будет проверять, что технологии работают как должны и радуют пользователей —, но способы проверки изменятся. Какие скиллы нам понадобятся, чтобы успешно работать в таком мире?
«Искусственный Интеллект и Справедливость: как ловить баги мироустройства?», Иван Ямщиков
Иван раньше выступал на Heisenbug с докладом «Что общего между тестированием и анализом данных», и тогда получил отличные отзывы. Теперь он вернётся: как и Джеймс Уиттакер, выступит с обзорным докладом по теме ИИ, но с другого ракурса. Какими должны быть законы, которыми подчиняется ИИ?
Иван хорошо разбирается в теме машинного обучения и искусственного интеллекта, глядя на них и с академической стороны (по опыту работы в институте Макса Планка), и с индустриальной (по опыту работы на компании, разрабающие решения на основе AI) — так что по таким вопросам логично слушать как раз его.
А вот теперь перейдём от общих рассуждений о будущем к технической конкретике настоящего: тем инструментам и практикам, которые сегодня применяют в тестировании.
«TMS в Agile команде. Твой верный друг», Игорь Голдшмидт
У вас уже несколько проектов в Agile-команде, вы быстро растете, а QA-процессы не успевают за вами? У вас уже несколько команд и вы работаете над кросс-проектами? Старые инструменты не справляются, и вы чувствуете, что готовы к чему-то большему?
Тогда вам нужен инструмент для организации и автоматизации процесса тестирования. Самое время задуматься о системе управления тестированием (TMS). Но как ее успешно внедрить? Когда и как нужно интегрировать ее с автотестами? Какая функциональность критична, а какая нет? Нужна ли возможность взаимодействия с другими командами? На все эти вопросы Игорь постарается ответить вам в своем докладе. На примере своей истории и опыта работы с TestIT.
Чем интересна тема: Хранение тест-кейсов — достаточно холиварная тема, TMS пользуются все, даже если она не нужна вообще.
Кому будет полезно: Тем, кто работает с системой хранения тест-кейсов, находится в процессе выбора ТМС или хочет понять: может ли быть что-то лучше, чем Excel.
«Типы автоматического тестирования в IntelliJ IDEA», Юрий Артамонов
Современная IDE — это не один продукт, а целая платформа для разработки плагинов и других IDE с огромным количеством функциональности, протестировать которую вручную не под силу ни одной команде. В этом докладе мы посмотрим, как при помощи автоматических тестов и проверок тестируют IDE в JetBrains, с какими сложностями приходится сталкиваться, и что из этого может пригодиться в других областях разработки ПО.
«Ultimate end-to-end testing», Николай Голубев
Николай — один из главных соавторов фреймворка webtau (сокращение от web test automation).
Цель этого фреймворка — предоставить API (возможно REPL и runner) для тестирования на таких уровнях, как HTTP, Web UI, DB, CLI с согласованным API, отчетностью об охвате и расширяемостью.
Фреймворк имеет DSL, чтобы помогать вам писать кратко и надежно.
В этом докладе Николай хочет показать, как использовать webtau для тестирования приложения магазина игр, которое имеет веб-интерфейс, REST API, GraphQL и CLI-интерфейс. У webtau также есть новая (недавно выпущенная) концепция Persona для упрощения сценариев авторизации при тестировании. Еще его можно использовать для управления несколькими браузерами одновременно для тестирования веб-сокетов.
Спикер также покажет, как использовать тесты для сбора данных с целью документирования и создания документации для тестируемого приложения.
Чем интересна тема: Целостный и лаконичный тестовый фреймворк — это всегда интересно. Особенно если он бесплатный и с продуманным подходом написания браузерных тестов.
Кому будет полезно: Тем, кто страдает от написания Selenium-тестов (например, из-за того, что тест невозможно начать выполнять «со второй половины»).
«Автоматизация CI/CD. Управление ордой Jenkins-джобов», Вячеслав Лукашевич
Чем интересна тема: За годы своего существования Jenkins оброс большим количеством возможностей, из-за чего правильно «готовить» его для нетривиальных задач не всегда просто. Вячеслав в своём докладе покажет, как это делается в организации с десятками проектов и сотнями Jenkins-пайплайнов.
Чем ценен спикер: Работая на должности QA Architect в компании Evolution Gaming, Вячеслав имеет дело с крупной инсталляцией Jenkins, большой командой разработчиков, создающих десятки merge requests в день, и успешно справился с задачей перехода от двухнедельного релизного цикла к ежедневному.
Кому будет полезно: Тестировщикам и разработчикам, которые имеют дело с Jenkins и хотят прокачать свои знания.
«System testing of RabbitMQ: Tooling + Practices + Lessons Learned», Jack Vanlightly
Чем интересна тема: Тестирование распределённых систем — это «высший пилотаж». А когда речь заходит о тестировании такого известного продукта, как RabbitMQ, это становится интересно вдвойне.
Чем ценен спикер: Джек — специалист в области распределённых и messaging-систем.
В 2019 году на Heisenbug Джек рассказывал, как с помощью методов формальной верификации он находил баги в протоколе репликации Kafka, а теперь будет делиться своим опытом тестирования и оптимизации RabbitMQ.
Кому будет полезно: Тестировщикам и разработчикам, которые хотят развиваться в сторону распределенных систем.
Почему здесь и сейчас: Джек делает доклад специально для Heisenbug, чтобы рассказать о своем опыте последних полутора лет работы в RabbitMQ core team в Pivotal.
Артём Ерошенко — тема уточняется
Артём (слева) и Всеволод Брекелов
Тут случай, когда достаточно назвать фамилию человека, чтобы многим уже стало интересно. Кто-то знает Артёма как автора Allure Framework. Кто-то — как спикера с отличными докладами (и про тот же Allure), и не только). Кто-то — как ведущего нашего YouTube-шоу «Ошибка выжившего».
В общем, мы ещё уточняем, о чём Артём расскажет в этот раз, но уже уверены, что зрители у этого доклада будут.
«Воркшоп: Как начать свой проект автоматизации с нуля (с божьей помощью и Selenide)», Андрей Солнцев
Андрей расскажет, как создать свой проект с нуля и завести несколько базовых тестов.
Чем интересна тема: Практически каждый проект нуждается в автоматизации, но многие обходятся без нее из-за нехватки знаний. При этом каждый автоматизатор написал как минимум один проект с автоматизацией тестирования, но сделал ли он это правильно?
Чем ценен спикер: Андрей — автор Selenide, приверженец TTD, поэтому он идеальный кандидат для рассказа о построении фреймворка на Selenide.
Кому будет полезно: Воркшоп отлично подойдёт для тех, кто сомневается о переходе с Selenium на Selenide, а также для тех, у кого нет автоматизации на проекте.
Начинающие научатся легко за несколько часов делать основу для дальнейшего написания тестов, уже умеющие узнают нюансы используемых технологий.
Почему здесь и сейчас: В воркшопе надо было участвовать несколько лет назад, чтобы сейчас у всех была автоматизация. Вышли новые версии JUnit, Selenide, Allure, которые сделали этот процесс простым как никогда, а с учётом увеличения скорости разработки нам надо уменьшать временные затраты на одни и те же действия руками. Пора учиться делать автоматизацию.
«Воркшоп: Покрытие кода в JVM», Евгений Мандриков
Наверняка всем известна фраза «нельзя управлять тем, что нельзя измерить». Но что же она означает, когда речь идет про измерение покрытия кода? Может быть речь идет про управление процессом разработки? А может про автоматическое (и не очень) тестирование? Или может вовсе не про тестирование?
Евгений поможет разобраться с тем, какие бывают метрики покрытия кода, зачем они нужны, когда и как их можно измерять. Вместе мы рассмотрим примеры использования одного из самых популярных на сегодняшний день инструментов сбора информации о покрытии кода в JVM — JaCoCo. Вы узнаете о различных принципах использования — от Java и Kotlin до экзотических JVM-языков, от интеграции с IDE (IntelliJ, Eclipse), различными системами сборки (Gradle, Maven, Ant), системами непрерывной интеграции и контроля качества (Jenkins CI, SonarQube), вплоть до JaCoCo APIs. А также научитесь избегать распространенные ошибки.
Чем интересна тема: Покрытие кода — вечная тема. Особенно для разработчиков, особенно когда все стараются толкнуть тестирование влево (Shift-Left).
Чем ценен спикер: Женя съел целую стаю собак на тонкостях и нюансах покрытия кода, инструментах вокруг этого, и разрабатывает небезызвестный SonarQube.
Кому будет полезно: Разработчикам и тестировщикам, которые озаботились покрытием своего кода тестами и уже столкнулись с некоторыми интересными ситуациями.
Почему здесь и сейчас: Эволюция в JVM теперь идет намного быстрее, и сюрпризы появляются чаще и чаще.
Нагрузочное тестирование
«Нагрузочное тестирование игрового сервера», Антон Поцюс
Нагрузочное тестирование в играх — обширная и в то же время малоизученная тема. Цель доклада — поделиться опытом создания собственного инструмента на основе Vert.x и Kotlin coroutines для нагрузочного тестирования бэкенда мобильных игр студии IT Territory.
Чем интересна тема: Многие (если не все мы) играем в игрушки, а тестирование игр — вообще отдельная техножесть, и это всегда интересно.
Чем ценен спикер: IT Territory делает игры уже очень давно и знает в этом толк.
Кому будет полезно: Тем, кто тоже тестирует игры с клиент-серверной архитектурой, тем, кто играет в игры, и всем кому интересно, как устроены игры под капотом.
«Воркшоп: Стартуем в тестировании производительности», Сергей Махетов
Воркшоп для тестировщиков, которые хотят заняться тестированием производительности, но не знают, с чего начать.
Создадим тест с нуля на Jmeter. Пошагово сделаем базовый запрос, рассмотрим способы задания профиля нагрузки, метрики тестирования, предоставление отчетов (консоль, графический интерфейс, HTML-отчет, отчет в Grafana). Потестируем HTTP, JDBC, JMS. Рассмотрим, какими способами можно формировать данные для запроса: статика, генерация, извлечение из предыдущего запроса, чтение из файла. Сделаем тест с использованием других приложений, допустим Gatling и Apache Benchmarking tool, поговорим в общем об утилитах тестирования производительности.
«Воркшоп: Встраивание в CI тестирования производительности», Сергей Чепкасов
Сергей покажет, как встроить тестирование производительности в ваш CI на основе GitLab CI. Вместе напишем скрипты на Gatling по различным протоколам и поднимем всё необходимое для тестирование окружение (Vector, Loki и т.д.). Также произведем быстрый анализ результатов производительности и поиск узкого места в приложениях.
Чем интересна тема: Кто делает нагрузочное тестирование — молодцы, а кто встраивает в CI — сообще красавцы.
Чем ценен спикер: Сергей наладил CI + нагрузочное тестирование + анализ в Тинькофф банке.
Кому будет полезно: Тем, кто сходил (или собирается) на воркшоп Сергея Махетова. Тем, кто уже представляет, как делать нагрузку, и хочет поставить её на поток.
Визуальное тестирование
«Advanced automated visual validation testing», Shweta Sharma
Чем интересна тема: без визуального тестирования приложений далеко не уедешь, ведь CSS может случайно поехать — и всё, сайт развалился.
Кому будет полезно: тем, кто пишет веб-приложения. Научитесь использовать инструменты визуального тестирования и станете пропускать меньше багов.
Почему здесь и сейчас: в 2020 году недоступный сайт страшен как неизвестно что.
«Знакомство с визуальным тестированием при помощи Visual Regression Tracker», Павел Стрункин
Сохранять контроль над тем, как выглядит ваше приложение на разных устройствах и с разным расширением — это тяжелый труд. Павел представит опенсорсное самостоятельное решение для визуального тестирования и управления его результатами.
Чем ценен спикер: Павел создал свой инструмент для визуального тестирования, работающий в докере и выложил в open-source. Павел имеет богатый опыт выступлений.
Кому будет полезно: Тестировщикам, выбирающим инструмент для решение задачи visual testing и управления результатами.
Почему здесь и сейчас: Опенсорс-инструменты для визуального тестирования, с помощью которых можно работать на собственном сервере в intranet, не распространены широко. Tracker — бесплатный и активно разрабатывается.
Web
«Воркшоп: Изучаем WebdriverIO», Александр Хотемской
Воркшоп представляет собой сжатую версию курса из 10 уроков по автоматизации тестирования с помощью WebdriverIO. Так что он займёт целых 4 докладных слота — тут материала будет по-настоящему много.
Чем интересна тема: Потребность в тестировщиках, умеющих в JS, растёт год от года, веб-приложения становятся всё сложнее. Материал от Александра поможет начать разбираться в тонкостях построения автоматизированного тестирования на JS.
Чем ценен спикер: Александр — евангелист JavaScript-тестирования и один из самых активных участников JavaScript testing community.
Кому будет полезно: Тем, кто уже имеет опыт программирования на JS и других языках и кто хочет получить практический опыт в разворачивании современной тестовой инфраструктуры в экосистеме JS.
«Flaky tests. Метод», Андрей Солнцев
Продолжение саги про моргающие тесты: в 2017 Андрей выступал на Heisenbug с докладом «Flaky tests», можно почитать расшифровку на Хабре.
На этот раз будет меньше видео и больше логики: в каком порядке вещи должны случаться и что бывает, когда порядок нарушается. На десерт Андрей расскажет про общий метод решения flaky-тестов.
Чем интересна тема: Нестабильные UI-тесты — это огромная проблема. Почти всегда непонятно, почему это происходит, а иногда это выглядит как магия. Эта версия доклада содержит демонстрации основных проблем и способы их решения.
Чем ценен спикер: Андрей — автор Selenide и знает, как там всё работает. Также у Андрея большой опыт написания UI-тестов с его использованием, что позволяет ему определять, где проблема — это технические ограничения фреймворка, а где — особенности тестируемого продукта.
Кому будет полезно: Флаки-тесты появляются рано или поздно у всех, особенно когда мы используем ajax-запросы и динамическую подгрузку элементов.
Бэкенд
«ORM-подход к тестированию микросервисов», Роман Романюк
На летней онлайн-конференции, в 15-минутном интервью, Роман уже рассказывал про проблемы тестирования большого количества микросервисов малыми силами и про отсутствие единого подхода. Он также затронул тему подходов внутреннего фреймворка Wargaming Arsenal Platform. В этот раз он продемонстрирует его в работе, и вы сможете опробовать его возможности.
Мы поговорим о:
- необходимости построения модели/роли сущности, если это нужно;
- построении связей между ролями/моделями сущностей через транспорты (HTTP, AMQP, DB, т.д.);
- зачем вообще описывать модель данных и что дает преобразование полей модели;
- как это будет выглядеть в тестах и как у вас будет появляться набор параметризованных смоук-тестов на лету;
- как повлияет подобный подход на атомарность и гибкость в случае изменений бизнес-требований.
Технологический стек: Python, HTTP, AMQP, SQL, pytest. Доклад будет интересен, в первую очередь, тем людям, кто часто работает с тестированием микросервисов, и им кажется, что понять связь их тестов с проектом человек со стороны не сможет.
«Серверный античит: Панацея или рудимент?», Евгений Ченцов, Евгений Крутских
В современном мире практически любая онлайн-игра страдает от читеров: на каждую закрытую разработчиками дыру хакеры находят две новых. При наличии серверных расчетов часто разрабатывается механизм защиты, позволяющий находить читеров, основываясь на доступных бэкенду данных. Такую систему называют «серверным античитом» и считают настоящей панацеей. Казалось бы, вот она — мечта разработчика, больше не нужно дорабатывать клиентский античит. Сервер все сделает за нас! Но на практике все оказывается намного сложнее.
Для демонстрации проблем реализации серверного античита спикеры рассмотрят пример антиспидхака для MMORPG-игры. Подчеркнут проблемы реализации, связанные не только с действиями злоумышленников, но и с естественным развитием и усложнением проекта. Покажут необходимость принятия компромиссных решений, особенно в тех случаях, когда проектирование системы защиты происходит после фактического выхода игры.
Интересно будет и тем, кто работает над мультиплеерными играми (разработчикам, QA-специалистам, геймдизайнерам, продукт-менеджерам), и просто заинтересованным в играх людям, желающим понять, в чем же состоит проблема серверного античита.
Мобильные приложения
«Практики автоматизации мобильных приложений», Дмитрий Макаренко
В Badoo стремятся доставлять новую функциональность пользователям как можно быстрее. При этом большая роль отводится автоматизации, которая позволяет быть уверенными в корректной работе приложения. В компании используются кроссплатформенные фреймворки Calabash и Appium, которые позволяют переиспользовать существенное количество сценариев и кода между приложениями для разных платформ.
В докладе Дмитрий расскажет про опыт автоматизации мобильных приложений в Badoo. А также поделится практиками как ускорить создание, увеличить стабильность и облегчить поддержку тестов для разных платформ (iOS и Android). Доклад спикера актуален для тех, кто уже занимается автоматизацией мобильных приложений, и для тех, кто собирается заниматься ей в будущем.
Кому будет полезно: Тем, кто переводит тесты на мультиплатформенные рельсы.
Не только тестирование: вокруг Heisenbug
С программой конференции мы разобрались, но есть кое-что ещё: возможность по одному билету увидеть доклады не только с Heisenbug, но и с других мероприятий.
Мы проводим сезон из целых 8 конференций на разные темы — от Java-разработки до DevOps. И хотя они рассчитаны на разную аудиторию, мы видим, что многим людям интересны некоторые доклады с «соседних» конференций: часто бывают смежные темы.
Поэтому мы придумали билет «Full Pass»: билет-абонемент, дающий доступ ко всем конференциям сезона сразу. Смысл в том, чтобы «свою» конференцию смотреть активно, а остальные выборочно: разбираешься заранее, какие доклады с них тебе интересны, составляешь собственное расписание и подключаешься именно к ним. Благо в онлайне подключиться на один доклад легко и просто (на офлайн-конференции так не побегаешь).
Если вам интересен Full Pass, можно перейти на сайт со ссылками на программы всех конференций.
А если только Heisenbug — тут вся информация и билеты на его сайте.