Предложения по юнит-тестированию - PullRequest
0 голосов
/ 14 сентября 2010

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

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

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

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

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

ура

Ответы [ 3 ]

2 голосов
/ 14 сентября 2010

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

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

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

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

РЕДАКТИРОВАТЬ: Использование sed внутри bash-скрипта:

Предположим, что файл шаблона ввода параметров содержит 3 кода для замены: $ FREQ $, $ NUM $ и $ TOL $. Затем я пишу bash-скрипт с гнездом из 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.

2 голосов
/ 14 сентября 2010

Я предлагаю вам прочитать кое-что о модульном тестировании, управляемом данными.

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

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

1 голос
/ 15 сентября 2010

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

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