Модульное тестирование, апробация и файлы данных - PullRequest
1 голос
/ 09 июня 2009

(Не говоря уже о том, чтобы расчесываться, если это интеграционное тестирование или юнит-тестирование.)

Я бы предпочел сначала проверить в большом масштабе. Если мое приложение пишет файл VRML, который совпадает с эталонным, тогда работает экспортер VRML, тогда мне не нужно запускать модульные тесты для каждого отдельного оператора в коде. Я также хотел бы использовать это для тестирования графического интерфейса, сравнивая скриншоты.

Существует ли инфраструктура модульных тестов (в идеале для C ++), которая интегрирует такого рода тестирование или, по крайней мере, упрощает интеграцию с модульными тестами?

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

Ответы [ 3 ]

3 голосов
/ 09 июня 2009

Взгляните на Сертификационные тесты , написанные несколькими моими друзьями Не C ++, но это общая идея того, что вам нужно, также известная как тесты Golden Master. Хорошие вещи, будь то юнит-тесты или нет.

1 голос
/ 09 июня 2009

Хорошо, я думаю, вы делаете неверное предположение о природе кода модульного теста; ваше заявление, что

Если мое приложение пишет файл VRML, который такой же, как эталонный, то VRML экспортер работает, у меня нет запускать юнит-тесты на каждом утверждение в коде.

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

(Обратите внимание, что я действительно не пытаюсь быть придирчивым к этому; кроме того, вы можете использовать множество сред модульных тестов для достижения этого результата; имейте в виду, что то, что вы пишете, на самом деле не является " Модульные тесты », несмотря на то, что они выполняются в рамках модульного теста.)

1 голос
/ 09 июня 2009

Kitware для VTK использует CDash для выполнения большей части своего тестирования. Многие из его тестов похожи по своей природе на это - они выписывают изображение отрендеренной модели и сравнивают его с эталонным изображением.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...