Получи случайную криптовалюту за регистрацию!

Профессор CMU Энди Павло организовал во время карантина серию | Протестировал

Профессор CMU Энди Павло организовал во время карантина серию докладов о различных СУБД от людей из индустрии.
Часть докладов посвящена тестированию СУБД. Я посмотрел каждый из них и напишу, что в них было интересного. Сегодня про два из них.

Доклад Performance Testing at MongoDB от David Daly, MongoDB.

Давид рассказывает о том, что они разделяют все тесты производительности на системные тесты (тесты для нескольких машин, запускаются в облаке), микробенчмарки (тесты для одной машины, запускают на выделенном пуле машин) и юнит-тесты на производительность (используют Google Benchmark, запускают часто на выделенном пуле машин). Потом рассказывает о трех вариантах подхода к мониторингу деградаций: оценка результатов человеком, автоматически с помощью пороговых значений, мат. методы, описанные в их статье. Для тестирования они используют свою собственную систему для непрерывной интеграции, написанную с нуля - Evergreen CI. Все тесты запускают с помощью Evergreen. (Выглядит она неплохо, но каждый раз когда я захожу туда она у меня сильно тормозит. Как они ею пользуются?) В докладе он ссылается на их статью про выявление деградаций Change Point Detection in Software Performance Testing, в которой в деталях описываются методы оценки регрессий при тестировании MongoDB, исходный код доступен.

Доклад Finding Logic Bugs in Database Management Systems от Manuel Rigger, ETH.

Доклад про тестирование SQL в общем и про SQLancer, автором которого Мануэль является, в частности. Я немного писал про SQLancer ранее. Если кратко это инструмент позволяет генерировать валидные SQL запросы, на которых сломались самые популярные СУБД (PostgreSQL, sqlite и т.д. См. полный список). Идея в основе SQLancer это подход Ternary Logic Partitioning (TLP). Хотел описать пример словами, но из картинки всё становится понятно гораздо быстрее.