2010-09-14 4 views
0

Здравствуйте, еще один вопрос относительно отладки: Автоматическое создание тестовых примеров, когда я знаю набор параметров. И делаю все это сразу, вместо этого во время разработки (можно пинать себя)Предложения для модульного тестирования

У меня есть набор параметров для моего программного обеспечения, которое я хочу проверить. (Только для 12 параметров). Однако, конечно, эти параметры часто являются целыми числами, поэтому для каждого параметра я могу иметь 4 значения, которые имеют смысл (0, безумно огромный, обычно большой, обычно маленький).

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

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

С нетерпением ждем ваших предложений.

ура

+0

Взгляните на http: // fortranwiki.org/fortran/show/Unit + тестирование + фреймворки – Wildcat

ответ

2

Существует множество способов генерации тестовых примеров в вашем сценарии - хотя вы немного расплывчаты в отношении того, какую форму необходимо вводить для ваших программ и единиц. Для одной из моих программ Fortran я использую файл параметров ввода шаблона, скрипт bash и файл make. Файл make, когда вызывается на тестовую фальшивую цель:

a) компилирует программу; b) запускает сценарий bash, который использует sed для замены заполнителей в файле параметров шаблона, для создания 128 (или любых) тестовых входных файлов; c) отправляет все тестовые задания в систему управления заданиями на нашем кластере.

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

Если вам нужен более конкретный совет, напишите более конкретные вопросы.

EDIT: Использование СЭД в Баш скрипт:

Предположим, что параметр входного файла шаблона содержит 3 коды, которые будут заменены: $ FREQ $, $ NUM $ и $ TOL $. Тогда я пишу Баш скрипт с 3-глубоким циклом гнездованием что-то вроде этого:

for frq in 0.01 0.0 1 10 
do 
    for np in 1 2 4 8 16 
    do 
     for tol in 0.001 0.0001 0.00001 
      sed .... 
     done 
    done 
done 

Это не красиво, но это работает, и это спасает меня борьбу с гораздо более сложными решениями, такими как тестирование XUnit или программирование Python.

+0

звучит так, как мне нужно. как вы используете sed для использования базы данных? Я также искал генератор регулярных выражений «reverse». до сих пор не повезло – tarrasch

+0

спасибо, что попробуете это. – tarrasch

2

Предлагаю вам прочитать что-то о тестировании модулей с данными.

Существует множество рамок, которые могут помочь вам в этом.

Вы можете начать здесь: http://www.slideshare.net/dnastacio/datadriven-unit-testing-for-java-1933154.

+0

hm это не слишком перебор? если нет возможности экспортировать все тестовые примеры в файлы, мне придется снова реализовать всю структуру fortran, так как ее java – tarrasch

1

Я вижу, что вы работаете с FORTRAN, и вы, вероятно, имеете дело с одной из версий xUnit от FORTRAN. Будучи пользователем JUnit, я предлагаю parameterized tests - посмотрите, применяется ли понятие в вашем случае.

+0

спасибо, я прочитаю что-нибудь об этом, но попробую решение выше – tarrasch

Смежные вопросы