heisenbug Heisenbug 2019 Мск (05.12.2019 — 06.12.2019)

Lincheck. Тестирование многопоточной структуры данных в Java

img

Доклад про автоматизацию тестирования многопоточных структур данных в Java и подходы к проверке исполнения многопоточной структуры данных на линеаризуемость.

Если вы писали многопоточный код, то знаете, что сложно написать его корректно сразу. Для тестирования обычно пишут стресс-тесты, покрывающие лишь некоторые опасные сценарии исполнения. Но часто для поиска ошибки такого подхода оказывается недостаточно. Для решения этой проблемы был создан lincheck — пока единственный инструмент в мире JVM, позволяющий удобно тестировать корректность (обычно линеаризуемость) многопоточного кода.

Сперва в докладе будет описано использование инструмента, затем его внутреннее устройство.

Комментарий программного комитета:

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