У меня имеется проект приложения с консольным интерфейсом. Пишу сам, причем мультиплатформенно.
Пока будет работать под системами: 1) FreeBSD amd64, i386 8.2 и выше 2) Windows XP и выше.
Мне хочется тестировать приложение по принципу черного ящика, т.е. без вставок какого-либо дополнительного
кода в код самого приложения. Другими словами мы знаем какие опции в командной строке можно задать, знаем
назначение программы, следовательно знаем что должно получиться и только на основании этого мне хочется
тестировать.
Вопросы
- Существуют ли мульти-платформенные средства тестирования консольных приложений? (предпочтения тем которые без GUI)
- Если "да", то какие? (Приведите пожалуйства названия)
Пока мне не удалось найти подобного средства и поэтому начал разрабатывать сам, на Python 3.2.
Скрипту на вход будут подаваться папки:
* С отчетами корректной работы приложения
* ini-файлами описывающие тест-план.
Тест-план с проектировал таким:
# inp_cmdline = %(inp_option)s %(input)s # out_cmdline = %(out_option)s %(output)s # FullCommand = %(application)s %(inp_cmdline)s %(out_cmdline)s %(options)s [general] application = "..\\..\\bin\\Win32-Release\\MalwareCryptor.exe" report = "app32_parse_headers.log" inp_option = "--source-file" out_option = "--output-file" options = "--postfix out" output_md5 = [empty_input] input = "EmptyFile.bin" input_md5 = "D41D8CD98F00B204E9800998ECF8427E" exit_code = 0 output_md5 =
Скрипт будет формировать ком. строку(см.комментарий) и выполнять тестовый случай, который описан очередной
секций и ее название есть название случая. Как видно из примера тест-плана по md5 входного файла можно узнать
корректный ли файл? После выполнения мы можем проверить код возврата по завершению приложения, а также md5
выходного файла. После выполнения тест-плана получается отчет, который сравнивается с оригинальным отчетом
из папки с отчетами, напомню что она является входной информацией для скрипта.
Как то так... То что я привел свою разработку преследует цель дать желающему помочь мне дополнительную ин-
формацию о том что я хочу.
P.S.:
Моя основная специализация это разработка, а не тестирование. Это к тому, что я могу не знать терминологии
профессиональных тестировщиков и поэтому прошу попроще ;)