Что о тестировании расскажут на Heisenbug 2023 Spring: от инструментов до марсоходов

Ближайшая конференция Heisenbug будет больше обычного: целых четыре дня (два онлайновых и два в Москве с возможностью удалённого подключения). А значит, и докладов тоже будет много. И сейчас, когда программа готова, пришло время показать Хабру их описания.

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

И ещё, как водится на Heisenbug, вместо «болтологии» — техническая конкретика. Как тестировать Flutter-приложения? Как ускорить прогон тестов в многомодульном проекте Maven? Даже хайповый ChatGPT тут будет не в очередных абстрактных рассуждениях «уволят ли нас всех через пять лет», а в конкретном «сравним на практике ChatGPT со статическим анализатором кода».

Оглавление

Рокет саенс

Роботы летят на Марс

84349694d99e35a0abd67844d620a27e.jpgВладимир Сурдин

МГУ

Это будет открывающим докладом офлайн-части, так что здесь ситуация особая. Владимира многие уже знают как популяризатора астрономии и науки в целом. Что он делает на конференции по тестированию? Ну, при исследовании космоса тестирование вообще-то бывает ещё важнее, чем на Земле: было бы глупо отправлять на Марс железяку за гигантскую сумму, не оттестировав её как следует. Но как сделать на Земле правильное тестовое окружение для устройства, у которого в продакшн-среде даже гравитация будет отличаться? Вот и узнаем.

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

Неправильно ты, дядя Фёдор, браузерными расширениями пользуешься

9c05d8d76d18347282ba312b8dce0fff.jpegЮлия Атлыгина 

Tempo

226184850caacff878e3ab5489d5cd34.jpgТатьяна Дроздова

Ozon Fintech

Тут интересный случай. Ещё в 2017-м Юлия выступила с докладом «Инструменты тестировщика», и его текстовая расшифровка на Хабре по-прежнему собирает просмотры (уже больше 120 000!). А Татьяна лишь полгода назад выступила с темой «Браузерные инструменты», который тоже понравился участникам, так что его мы недавно тоже расшифровали. Теперь две эти специалистки по инструментам вместе расскажут о следующем:

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

Appium vs Нативные инструменты разработки мобильных автотестов: влияние выбора инструмента на процесс разработки и тестирования

54e8c350a5d8258febd9ea66449a5eb4.jpgАлександр Стародубов

Aero

e8406fbb389c2ae3c9b52554cf716a54.pngИлья Смотров

Aero

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

Используем JS в браузере для повседневных задачек

0e98992eb1a0b878c25b6da79d171e35.jpgАлексей Иванов

Chrome DevTools — основной инструмент дебага во время веб-разработки. А Console — один из главных модулей DevTools. Его основная задача заключается в отображении ошибок в коде, но также он отвечает и за выполнение команд на JS. 

Цель доклада — показать, как с помощью консоли и других модулей DevTools сократить время на тестирование. Затронем темы:

  • Подготовка тестовых данных

  • Автоматизация рутины

  • Нужно ли сделать свое расширение для помощи тестировщикам?

Mockingbird, или Как убить всех зайцев одним выстрелом

88c34db374667bd38c6ce1e7846c836a.jpgОльга Инеева

Тинькофф

Существующие популярные решения для мокирования не покрывали все нужды, например, мокирование работы с очередями, поддержка сложных сценариев. Так появился open source-инструмент для мокирования mockingbird, созданный разработчиком из Тинькофф Даниилом Смирновым. 

В докладе спикер расскажет о возможностях mockingbird и о том, как его применяют для ручного и автоматизированного тестирования в Тинькофф.

Корпоративные инструменты спешат на помощь!

7a245c7e51cb632263736bc712091e28.jpgВладислав Григорьев

X5 Tech

ca7b110f4dd226046959813065c710b5.jpgМария Снопок

X5 Tech

Большие компании, где больше одного отдела тестирования, часто решают одни и те же задачи сами по себе. Это менее эффективно, чем единый подход. Поэтому в компании спикера решили реализовать один общий инструмент. Был сделан фреймворк на Python и шаблоны для CI/CD, написано много статей в корпоративной wiki. В итоге получилось снизить порог вхождения в АТ и сэкономить много времени, используя универсальные решения.

Моки и Go

7936f450f77cfb58efaf4c7618206021.jpgАлексей Романов

Ozon Fintech

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

Как тестирование показывает слабые стороны СУБД

1a0eb7294696f566e202dc62f29f26d3.jpgИван Чувашов

SoftSwiss

В докладе мы поговорим не совсем про тестирование, а про базы данных. Понятно, что современная ИТ-инфраструктура компании может динамически масштабироваться и распределять пользовательскую нагрузку. Но всегда есть слабое звено, и это реляционные базы данных — неотъемлемый атрибут всех современных продуктов. Как понять, что приложение еще может масштабироваться, а вот база данных нет? Что делать в этом случае? Как можно решить эту проблему простым и нетривиальным способом? Как можно собирать метрики производительности и повышать быстродействие приложения?

Сбор нефункциональных требований для тестирования беспилотных грузовиков

c1b3f2caecc147c952af9404737f6c8a.jpgАлександра Коршунова

Evocargo

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

Восстание машин: ChatGPT vs. статический анализатор

12e353041d1bf950077ede38203fc4da.jpgАлексей Авдеев

PVS-Studio

В этом докладе мы сравним возможности поиска ошибок и дефектов безопасности чат-ботом ChatGPT и статическим анализатором. Рассмотрим уникальные преимущества и проблемы, связанные с каждым инструментом, и порассуждаем над вопросом: «Может ли ChatGPT заменить привычные инструменты анализа кода?»

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

fc15c07d0a59a87a4210830d7891adc5.jpgМарина Третьякова

Контур

Часто от команды приходит требование: «А давайте left-shift testing проводить, раньше вникать в аналитику, готовиться к тестированию». А как именно тестировать эту самую аналитику, остается за кадром. Предлагаем на мастер-классе наглядно обучиться тому, как это делать, понять, на что обращать внимание, разобрать понятную для всех постановку аналитики и попробовать применить полученные знания на практике.

Техники тест-дизайна на примере выдачи QR-кодов

92443e7e85feddf90c0eefc3c39ea584.jpgРаиса Липатова

JettyCloud

Сейчас «боли» стало меньше, но в свое время мы видели, как создатели правил поведения и выдачи QR-кодов пропускали множество случаев, которые осложняли людям жизнь. Что, если бы «ковидные» QR-коды выдавались автоматической системой, и нам пришлось бы эту систему тестировать? Какие техники тест-дизайна можно использовать? Покроют ли они все случаи или нет? Об этом пойдет речь в докладе.

Автоматизация сбора метрик с помощью open source-решения

66941f3024d3fa99fde0bd00ab75692a.jpgОльга Татаринова

AGIMA

ab9e053f1bb9c73bb934188319d8b1b0.jpgОльга Лобанова

AGIMA

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

Мастер-класс по инструментам для gRPC API

452916bdba84e41bb8e2ce8045b1b102.jpegСергей Шайкин

Electrolux AB

В наш скоростной век быстродействие работы сайта или приложения играет первостепенную роль. Поэтому правильный выбор фреймворка передачи данных имеет немаловажное значение. Одним из молодых, современных и перспективных фреймворков является gRPC. Это кроссплатформенный высокопроизводительный фреймворк для удаленного вызова процедур с открытым исходным кодом. Сергей расскажет об особенностях тестирования gRPC и покажет это на реальном примере с применением различных инструментов. А также поможет определиться с их выбором.

Allure-Go

91107504cd7bd475acf98bf2204291b1.jpgАнтон Синяев

Ozon Fintech

Библиотека Allure-Go, появившаяся в начале 2022 года, предназначена для E2E-тестов на Go, интегрированных с Allure. Проект начался как форк Testify, но теперь отличается от Testify тем, что имеет полную поддержку Allure, параметризованные тесты и внятно работающую параллельность.

Его главные преимущества и особенности:

  • простота интерфейса;

  • Allure и широкие возможности детализации отчетов;

  • гибкость;

  • параметризация;

  • параллельная работа тестов.

Чтобы прокачать тестирование производительности, нужно всего лишь…

acd7dc012b4f538ac81047ae6149181b.jpegЕгор Романов

Supabase

Егор расскажет о том, с чего они начинали тестировать производительность WebSocket-сервиса Realtime: какие этапы прошли на пути к автоматизации и CI и как распространили это на остальные продукты компании. Также он объяснит, что сделать, чтобы переиспользовать их опыт и получившийся open-source инструмент у себя.

Как подготовиться к запуску бенчмарка СУБД?

48b55ffbe64adaab710d5c23783f09e4.jpegМихаил Жилин

Postgres Professional

Мы ценим современные базы данных за их надежность и производительность. Последний фактор можно оценить не только качественно, но и количественно благодаря бесконечному множеству существующих бенчмарков. И вот после очередных бессонных ночей борьбы с бенчмарками в команде осознали, что уже набралась некоторая критическая масса грабель, на которые с треском наступили. Поэтому в докладе будет рассказано, зачем нужны бенчмарки, какая от них польза и какие подводные камни могут быть при их запусках.

Houston, We Have Problems With the Queries

b42aa0acb4712e6174ac5da571b7d434.jpgAndres Sacco

TravelX

Нередко разработчики создают запросы к базе данных, не проверяя их влияние на производительность. И это приводит к проблемам в продакшене — большое количество запросов начинает влиять на производительность БД или всего приложения. Андрес расскажет, как создавать модульные тесты для обнаружения этих проблем, используя библиотеки QuickPerf и Testcontainers. Он покажет пример тестирования микросервиса, который выполняет запросы для обновления БД и получения информации из таблиц с плохой производительностью.

Как ускорить прогон тестов в многомодульном проекте Maven

eba15f7f486524e03316bec568bb53fb.jpgДаниил Шилко

Wrike

89dbb8c363de39dbc99934f0ee57050c.jpgИван Варивода

Wrike

Когда в проекте автотестов находится много модулей Maven, время прогона тестов может занимать очень много времени. Чтобы ускорить процесс, во Wrike написали новый инструмент — Maven Modules Merger (Merger). Проблемы с долгим прогоном тестов могут быть связаны с длительной сборкой проекта, трудностями менеджмента количества потоков и продолжительными ретраями тестов в каждом модуле. Merger объединяет несколько модулей Maven в один, решая все эти проблемы. Внедрение Merger помогло Wrike сократить время общего прогона тестов для деплоя больше чем на треть, а время некоторых отдельных сборок с 50 до 12 минут. Целевая аудитория доклада — QA и автоматизаторы, использующие стек Maven + Java.

Автоматизация браузерного тестирования без бэкенда с помощью Playwright

fc242f12d97a410ed489ee1ce3cd9806.jpgЭдип Асанов

Ozon Fintech

842bf1e69303aa380b5c42c3b2244d66.jpgАнтон Виноградов

Ozon Fintech

В 2021 году при начале разработки Ozon Банка стали выстраивать процесс тестирования, основанный на полной автоматизации. При этом было принято решение тестировать фронтенд в изоляции с замоканными «ручками». А в качестве инструмента браузерного тестирования фронтенда был выбран Playwright. 

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

UI

How to Write Reusable Tests

a70c12457adaa699ead43e523e494a94.JPGMesut Durukal

Indeed

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

Спикер расскажет об инструменте автоматизации тестирования на базе Cypress, в котором максимально повышена возможность повторного использования тестов — наряду с удобством сопровождения, читабельностью, стабильностью и эффективностью. 

Как мы гоняли Android UI-автотесты на 20 игровых десктопах, и почему нам понравилось

819d14a621ddc920f99646a8ac1c81fc.jpgСергей Павлов

Лаборатория Касперского

Сергей расскажет о преодолении трудностей в автотестировании Android, связанных с окружением — железом и софтом.

Любой написанный Android UI-автотест должен на чем-то запуститься, будь то устройство или эмулятор. Но даже оптимально написанный автотест будет работать плохо, если мощности железа под ним не соответствуют потребностям. Спикер объяснит, почему они выбрали десктопы для запуска эмуляторов и что нужно эмулятору для стабильной работы.

Что делать, если нужен эмулятор с предустановленными данными? Как их распространить на хосты? Вы узнаете, как преднастроить эмуляторы для 11-й версии ОС и запаковать их в Docker image.

Что делать если тестов много, они написаны на разных ЯП для разных приложений и этим тестам нужны разные версии зависимостей? Вы узнаете, как изолировать окружение и параллелить тесты на одном хосте с помощью Docker Compose.

Хорошие UI-тесты. Реально?!

e7df099d27987588d96abff676c36a8a.jpgАлександр Шарков

Монитор Электрик (monitel.ru)

В чем секрет хороших UI-тестов? Быстро пишутся, легко читаются, редко падают, пишут логи, тестовую документацию, замеряют тестовое покрытие, соблюдают паттерны программирования, распределяются между командами (TestOps), легко меняют фреймворк.

Всего 40 минут — и вы узнаете основной рецепт их приготовления. Вместе со спикером вы зайдете во вселенную Microsoft и возьмете у нее самое лучшее.

Why browser engines ≠ real desktop browsers ≠ mobile browsers

f3715dbf754831b9f8557d1714e11032.jpegDavid Burns

BrowserStack

Зачастую мы не задумываемся, в чем разница между обычным и headless-браузерами. Запускаем тесты в десктопных браузерах с эмуляцией мобильных. Что мы при этом можем упустить? На реальных примерах Дэвид покажет нюансы тестирования в headless браузерах, браузерных движках и режимах эмуляции мобильных платформ. Он также поделится техническими аспектами «пробелов» в тестировании — на основе знаний, полученных при работе в Mozilla.

API: допинг и стабилизатор для UI-тестирования

5335c114158a4c86fed04a5a71e4fea7.PNGЮлия Атласова

Signant Health

Зачастую API тестируемого приложения воспринимается как некая отдельная от UI часть, не имеющая к этим функциональным UI-тестам никакого отношения: она покрывается unit-тестами, отвечают за неё разработчик. Однако с помощью API-запросов можно значительно ускорить, упростить, стабилизировать UI-тесты, а часть тестирования бизнес-логики и вовсе переместить в область API тестирования. Такие «гибридные» тесты, совмещающие UI и API-шаги, встречаются крайне редко. И хотелось бы наглядно, с примерами, продемонстрировать, что это не сложно, крайне эффективно и никаким канонам классического UI тестирования не противоречит.

Паттерны в UI тестах на Web, Android и iOS

7f99d232611e077f2e37398201b2b966.jpgЭмилия Куцарева

Одноклассники

Спикер расскажет, какие паттерны проектирования стоит использовать в автотестах, исходя из продуктовых задач. Вы узнаете, как сразу писать код автотестов удобно, функционально и красиво. Эмилия рассмотрит разные случаи и то, как под них подстраивать автотесты, чтобы поддержка была более легкой. Примеры будут представлены под несколько платформ: web, mobile web, Android и iOS.

Написание UI-тестов для web в условиях постоянных экспериментов

f63d83632425f7883f4f72b6911e146d.JPGРоман Цакунов

VK

Как пишутся UI-автотесты в команде, отвечающей за авторизацию, регистрацию и восстановление. Необходимо учитывать, что очень часто проводятся эксперименты с фичами: применяются разные страницы авторизации, разные страницы подтверждения телефона и так далее. Используемые технологии: Selenium и Selenide, паттерн проектирования Factory, API для подготовки тестовых данных.

Hardware

Hardware-тестирование Flipper: путь синей изоленты

0bab21ee56f5916b2265d24a59c32d05.jpgКонстантин Волков

Flipper devices

Стенды и пайплайны тестирования Flipper Zero. Как проводить различные тесты (юнит-тесты, интеграционные, smoke, e2e) в hardware, как автоматизировать процесс при отсутствующем API с помощью OpenCV, тестировать open source и масштабировать данные процессы?

Automatization Nonstop Testing Over Network (ANTON) на примере проекта SmartBadge

e8b183dde7c21b81ee48e76f0859f6d2.JPGСтанислав Песня

SberDevices

b10f75877d798b9613cf2dea7c367fc4.jpgСергей Рюнтю

SberDevices

Automatization Nonstop Testing Over Network — автоматизация непрерывного тестирования по сети. Она включает в себя методологию и стандарты, применение которых позволит сделать разработку и тестирование продуктов прозрачным, предсказуемым и более гибким для всех участников команды. Но прежде всего, это платформа для удаленного тестирования и разработки программного обеспечения на реальном «железе», которая воспроизводит все пользовательские и технические сценарии взаимодействия с продуктом на этапе его производства и использования готового продукта.

Mobile

Автоматизация мобильных приложений, написанных на Flutter

508213f34acd31e1b315ff3607cb01fd.jpgАлександр Жалейко

ВК-ИТ

Проблема автоматизации Flutter-приложений ставит перед тестировщиком ряд нетривиальных задач. Стандартные средства автоматизации не подходят. В докладе будет рассказано, как решать задачу, и сделан краткий обзор трех основных инструментов: утилиты integration_test (ex-Flutter Driver), которую предлагает сам Flutter, библиотеки flutter_gherkin () и Appium Flutter Driver. Рассмотрим на примере, почему стандартный Appium не подходит, разберем плюсы и минусы трех инструментов, проведем практическую часть с примером автоматизации тестового сценария с использованием Appium Flutter Driver. 

Перепись «ферменных лет» или опыт построения фермы девайсов ВКонтакте

7fc90203bc9f0936c2780c74904483a8.jpgДаниил Смирнов

ВКонтакте

Рассказ про то, как появилась и развивалась ферма устройств в VK. Поговорим про выявление проблем и пути их решения с подробностями: как боролись с лагами и с черным экраном при вводе пароля; как учитывали требования разных команд; как делали сервис девайсов для автотестов внутри фермы; как решали вопрос с горизонтальным размещением некоторых моделей.

 Что должен знать мобильный тестировщик в 2023 году для позиции сеньора

588b398b7a5a5f684aeabe4349fd15ff.jpgАлександр Петров

В докладе будет агрегировано рассказано о ручном мобильном тестировании и о том, что для него надо знать. За основу доклада Александр взял свой курс по мобильному тестированию в МГТУ им. Н.Э. Баумана и МИФИ, дополнив его интересными кейсами из реальной практики. Особое внимание будет уделено каверзным вопросам на собеседованиях, которые он встречал за все время работы или задавал сам.

Marathon test runner: разбираемся и настраиваем Android & iOS

6a04201a8cd9fbb56260f9cc133b2e47.jpgАнтон Малинский

MarathonLabs

В данном воркшопе разберемся, как разворачивать Marathon, поговорим про разных параметры тестирования и возможные сценарии оптимизации (скорость vs надежность vs стоимость). Разберемся с общими настройками прогонов тестов в целом. Рассмотрим особенности Android и iOS, а также дополнительные функции для каждой из этих платформ. В конце воркшопа у вас будет несколько вариантов прогонов тестов под обе платформы.

Тестирование производительности мобильного приложения

90c5fae63c08d52f32d5b5cc47fdb4dc.jpgПавел Щедухин

Ozon

После разработки сотни фич в Ozon поняли, что за плавностью работы приложения нужен контроль. Компания не хочет, чтобы пользователь сталкивался с неприятными торможениями интерфейсов или долгой загрузкой, поэтому было принято решение о необходимости наладить процесс тестирования производительности до и после релиза. Павел расскажет, какой способ они выбрали, что измеряют и как это встроено в релизные процессы команды.

Веселые фермеры 

2d6653fcd35fd84b8611b6ccb63d084e.jpgНикита Макаров

Тинькофф

c44316bd1ec99711dd11bce6f376fd25.jpegРоман Торстэн

Тинькофф

Автоматизация тестирования мобильных приложений — не самое простое занятие. А запуск сотен уже написанных автотестов в режиме «много-часто-стабильно» — еще более сложная задача. Спикеры расскажут о своем решении и поделятся им с профессиональным сообществом.

Безопасность

Специфические атаки на интернет-банкинг

c645ff23570e465fbdaee7b29af4fe16.jpgРамазан Рамазанов

DeteAct

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

Нагрузка

Jira-based генератор трафика в автоматической системе сервисов стрельб по проду

3f016ad65c10cb30fd36b8d420306368.jpegАнатолий Пласковский

Как автоматизировать систему исследований производительности от модуля запуска до модуля анализа результатов? Как предоставить сотрудникам компании удобный инструмент для проведения и контроля стрельб на проде, используя в качестве ключевой технологии Jira? Как регулярно получать актуальные данные с прода о производительности бизнес-сценариев для всех типов людей в компании? Узнаем всё это из доклада.

Нагрузочное тестирование: получили результаты, и что дальше?

dd3b742bb259f4e040eda7f7a3646816.pngГригорий Липин

Яндекс

Что происходит после того, как провели нагрузочное тестирование сервиса и получили результаты? Уже есть достаточно много материалов о правильном запуске тестов, различных инструментах, инфраструктуре нагрузочного тестирования внутри разных команд или компаний. Но очень мало рассказов о том, что происходит после нагрузочного тестирования, как работать с результатами и в зависимости от них выстраивать и масштабировать инфраструктуру. Попробуем это исправить.

Сервис подготовки к сезону, или Как проводить 19 000 нагрузочных тестов в месяц и не умереть под нагрузкой

236688fe10f1f464710f61c576b2dda5.jpgИван Приходько

Ozon

Нагрузочное тестирование — это сложно и дорого. Требует много усилий и не всегда приносит профит. В докладе будет рассказано про нагрузочное тестирование в Ozon  Tech и проведение 19000 тестов в месяц. О том, как устроен соответствующий сервис в Ozon и какие проблемы он решает. Какие вызовы и проблемы возникли при его построении и развитии.

Как (не) надо проводить нагрузочное тестирование

38cee06ec73a4843dbf4c951cac3cc4b.jpgГригорий Кошелев

Контур

К результатам нагрузочного тестирования всегда нужно относиться критически. Убедимся в этом на нескольких примерах, когда цифры врут, а те или иные факторы сводят на нет усилия по нагрузочному тестированию (на примере Java, Apache JMeter и Gatling). Сколько RPS выдержит наш сервис? Что мы только что протестировали? Почему на проде цифры меньше? Почему на проде цифры больше? А не хлопнуть ли нам по проду? Если вы уже знаете ответы на эти вопросы, вероятно, это не тот доклад, который вы ищете. Но если нет — это тот самый случай, когда о некоторых граблях можно узнать заранее.

B-tree индексы в базах данных на примере PostgreSQL

51dbfe60597bac0ce7dbeb4499b027b6.jpgВладимир Ситников

JMeter Committer

Доклад о том, как работают обычные™ индексы в базах данных. Будет крайне полезен как тем, кто начинает работать с базами данных, так и тем, кто работал, но подзабыл. Используете IndexedDB? А порядок колонок в индексе правильный указываете? Или, быть может, у вас бэкенд на PostgreSQL, и там без индексов никуда. Рассмотрим ряд вопросов: как индекс ускоряет поиск, нужно ли индексировать условия where, в каком порядке указывать колонки в индексе — вплоть до случаев, когда индекс замедляет работу приложения.

Измеряй это! Оживление нагрузочных тестов на Java

e710315091e0bf3a1b7e4b52e29b1003.pngДмитрий Тучс

Dodo Engineering

Apache JMeter изучен вдоль и поперек, но когда речь идет о написании своих нагрузочных сценариев «поверх» JMeter, есть десятки способов выстрелить себе в ногу. И самый верный способ это заметить — качественно измерять то, что вы делаете. Поговорим о работе с памятью в Java, о многопоточности и тред-пулах, и даже о такой банальной теме, как парсинг JSON. Почему и как все это пришлось переписать, чтобы нагрузить бэкенд Dodo IS втрое выше? Доклад рассчитан на широкую аудиторию, в том числе даже не имеющую опыта в нагрузочном тестировании, но так или иначе использующую Java в работе.

Особое мнение: смотрим на нагрузочные тесты как на функциональные

2c0de26df5d5c69af8e96273a99cd8cb.jpegСергей Попов

Мир Plat.Form

Доклад от партнёра конференции — компании Мир Plat.Form. Как простейшим путем, оставаясь в привычном для функциональных тестировщиков стеке, внедрить регулярный прогон тестирования производительности? Зачем здесь Java и стоило ли прикручивать Cucumber? Как понять, что производительность бэкенда не деградировала, но при этом до поры до времени обойтись без профилирования? Смотрим на нагрузочные тесты под другим углом, и оборачиваем наш любимый JMeter в функциональноподобный тест.

Прочее

AI в вашем продукте больше не следует правилам. Теперь придется тестировать не правильность, а эффективность

8835591659bfdd12632c252592138112.jpegФедор Романенко

Авито

Эйфория от внедрения первого «умного» алгоритма или ML-модели отягощается утренним осознанием, что все это придется тестировать. Вам важно убедиться, что новая логика функционирует как задумано, и что нет регрессов. И тут выясняется, что понятия «правильности» работы больше нет, только непонятная «эффективность», про которую неясно, как ее правильно измерять. Не упрощает задачу то, что вы не можете зафиксировать входные данные. Как Авито и другие большие компании выпутываются из сложного положения?

Как приручить автотестового монстра, или Dependency Injection в автотестах

9fbcabc2ed1bb2e34159c6c9daadc045.jpgАртём Сидорук

Kaspersky

Вы пишете автотесты? Ваш проект с автотестами огромен и монструозен, и добавление каждого нового сервиса в него приносит нестерпимое желание все удалить и написать заново? У вас есть базовый класс на 3000+ строк с методами на все случаи жизни? Или, возможно, вам приходилось исправлять множество тестов, чтобы добавить одну и ту же строчку в каждом из них? Если хотя бы на часть вопросов вы ответили положительно — этот доклад для вас!  

Значимость технических и продуктовых метрик в тестировании

11f4d463e8bbf478bbdfaf0c99f8cefe.jpegИван Левиков

ВКонтакте

Рассмотрим важность сбора и обработки не только продуктовых, но и технических метрик для улучшения качества приложения. Разберем на примере конкретной проблемы, как ее решали во ВКонтакте и как это решение помогло улучшить пользовательский опыт. Также будет затронут механизм контроля проблем с ANR и роста крашей приложения, основанный на собираемых данных.

Когнитивные искажения против тестировщиков

547d985ea93caf2b4e3734bae030813f.jpegРуслан Ахметзянов

TestOps-энтузиаст

Ранее на Heisenbug Руслан популяризировал подход TestOps, а теперь выступает с более общей темой. Вы же не думаете, что все миллионы лет эволюции человека наша природа стремилась к тому, что мы будем сидеть в комфортном кресле и тестировать релизы (или писать автотесты)? Большую часть времени наш мозг создавал сложную систему правил и оптимизаций, чтобы мы не посходили с ума. Думаете, это пошло нам на пользу? Конечно, мы таки не посходили с ума! Но как и любые оптимизации, заточка под happy path не всегда ведет к правильным результатам.

В докладе Руслан расскажет, какие именно когнитивные искажения заставляют вас делать ошибки, неверные выводы и предположения. Но он не будет пытаться объяснить, как с ними бороться — тут уж вы сами!

В заключение

Не докладами едиными — на Heisenbug будут и другие активности. Например, обсуждения нескольких экспертов:

Но ещё важнее то, что впервые с 2019-го у Heisenbug будет двухдневный офлайн в Москве. Там будет и возможность удалённого подключения, так что доклады не пропустят даже находящиеся далеко. Но у тех, кто лично соберётся на площадке, наверняка возникнут свои обсуждения, не уступающие по интересности запланированным. И тут мы уж ничего анонсировать не можем — это вы сами справитесь.

А нам остаётся напомнить: Heisenbug пройдёт 11–12 апреля в онлайне и 16–17 апреля в Москве (с возможностью онлайн-подключения), все подробности и билеты — на сайте.

© Habrahabr.ru