НовостиОбзорыСобытияIT@WorkРеклама
Промышленная автоматизация:

Блог

Volkswagen и проблема стандартных тестов в ИТ

Разразившийся на днях скандал с тестированием дизельных автомобилей концерна Volkswagen, программное обеспечение которых позволяло в десятки раз занижать показатели выброса вредных веществ[spoiler], заставил вспомнить о стандартных тестах в ИТ-отрасли. Напомню, что в случае с Volkswagen во время экологических тестов управляющее ПО переводило мотор в специальный щадящий режим работы с минимальными выбросами вредных веществ в атмосферу. Во время реального движения режим менялся, при этом увеличивалась мощность двигателя, но существенно возрастали и вредные выбросы.

У нас ведь тоже нередко ИТ-система оптимизируется для достижения максимального результата в стандартном тесте, и при этом совсем не очевидно, что система, лучшая в тестах, столь же успешно справится с самыми разными реальными задачами. Вспомним те же тесты Linpack, которыми меряются между собой производители суперкомпьютеров. О том, что многие вендоры давно уже поднаторели в "чемпионатах по стандартным тестам" и умеют делать это превосходно, говорят с завидной регулярностью. Причем чаще всего жалуются проигравшие. В то же время, среднему айтишнику трудно разобраться, какая часть результата тестирования обеспечивается реальными преимуществами той или иной платформы, а какая специальными "настройками и подкрутками".

Самый свежий пример: в сентябре Oracle обнародовала результаты стандартного теста SAP Business Warehouse Enhanced Mixed Workload (BW-EML), оценивающего производительность СУБД в аналитических задачах, выполняемых на базе хранилища SAP BW. Тест, проводившийся на in-memory опции Oracle DB 12c, показал что она чуть ли не вдвое производительнее, чем SAP HANA при использовании одинаковых по числу Intel-процессоров и объему оперативной памяти серверных конфигураций. Реальное ли это преимущество и за счет чего оно достигнуто? Комментариев со стороны SAP я пока не видел.

Мне кажется, проблема стандартных тестов все-таки существует, и дай бог, чтобы она не проявила себя в ИТ столь же скандально, как и в случае с автомобилями Volkswagen.
Колесов Андрей
Это давняя история с любыми тестами. Любой тест - это лишь "информация для размышлений", но не истина в конечной инстанции.

В свое время, еще в 90-е, я следил за тестами на производительность языков, в том числе Pascal и Basic. В частности, возникал вопрос - кто пишет тестовые примеры? Какие программисты - специалисты по Паскалю или по Бейсику?

Поясню. Например, есть простейшая задача - сложения 100 чисел (я, конечно, тут привожу сильно примитивный пример). Так вот ее можно реализовать несколькими способами (разными видами операторов) и разница по скорости может различаться в несколько раз.
В зависимости, от специфики реализации языка скорость будут разной. Ну, например, оператор DO будет быстрее работать в Паскале, а оператор IF - в Бейсике. Соответственно, если вы будете в тесте использовать DO, то победит Паскаль, а если IF - Бейсик.

Если я специалист по Бейсику, то знаю его особенности и использую более оптимальные конструкции и мой вариант побеждает. Если код пишел программист Паскаля, то он в Бейсике использует вариант Паскаля...

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