О визуализации данных в тестировании ПО

Для тестирования модуля я сделал автотест, который запускал SQL запросы нужного нам типа сначала для обучения, а потом уже непосредственно для тестирования модуля. При каждом запуске тест сохранял параметры планировщика: время планирования и выполнения запроса, ошибку оценки количества строк и другие. После этого тест проверял, что параметры планировщика с машинным обучением как минимум не хуже стандартного планировщика. Сначала я попробовал для оценки успешности теста использовать статистические методы. Но чем больше я погружался в нюансы работы модуля, тем меньше я был уверен, что тест правильно оценивает собранные цифры. Поэтому для большей уверенности я начал строить графики для визуализации результатов теста. И как потом оказалось не зря - в ходе тестирования нашел запросы с которыми aqo некорректно рассчитывал время.

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

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

Подробнее про модуль aqo можно почитать в статье Олега Иванова и документации.

Теги: softwaretestingpostgresqlfeedstory