Тестирование фреймворка для функционального / системного тестирования на C / C ++? - PullRequest
11 голосов
/ 13 января 2009

Для C ++ существует множество хороших фреймворков для модульных тестов, но я не смог найти подходящую для функционального тестирования . Под функциональным тестированием я имею в виду материал, который касается диска, требует наличия всего приложения и т. Д.

Точка на тот случай: какая структура помогает в тестировании таких вещей, как работает ли ваш ввод / вывод? У меня есть свёрнутая вручную система, которая создает временные папки, копирует кучу данных, поэтому тесты всегда выполняются в одной и той же среде, но прежде чем я потрачу больше времени на свою пользовательскую среду - хороший уже там?

Ответы [ 3 ]

3 голосов
/ 13 января 2009

Я написал один с нуля уже три раза - дважды для тестирования приложений C ++, которые общались с биржами по протоколу FIX, один раз для приложения с графическим интерфейсом.

Проблема в том, что вам нужно подражать внешнему миру для правильного тестирования системы. Я не имею в виду «вне вашего кода» - вне вашего приложения. Это включает в себя эмуляцию конечных пользователей, внешних объектов, Интернета и т. Д.

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

Несколько советов: убедитесь, что ваши журналы легко разбираются, детализированы, но не слишком многословны. Иметь нормальную конфигурацию по умолчанию. Упростите «сброс» приложения - это нужно делать после каждого теста.

Подход, который я обычно использую, заключается в том, чтобы иметь своего рода «адаптер», который превращает связь приложения с внешним миром в стандартный вывод некоторого исполняемого файла. Затем я создаю Perl-фреймворк поверх этого, а затем в тестовых примерах используется фреймворк.

2 голосов
/ 13 января 2009

Ниже я перечислю несколько инструментов и более крупных приложений для тестирования, о которых мне известно. Если вы предоставите больше информации о вашей платформе (ОС и т. Д.), Мы, вероятно, сможем дать более точные ответы.

Для части того, что вам нужно, Microsoft предоставляет Application Verifier :

Application Verifier (AppVerifier) ​​- инструмент проверки времени выполнения, используемый при тестировании приложений на совместимость с Microsoft Windows XP. Этот инструмент можно использовать для проверки широкого спектра известных проблем совместимости во время работы приложения. В этой статье подробно описываются шаги по использованию AppVerifier как эффективного дополнения к циклам разработки и тестирования приложений.

Application Verifier может быть полезен для тестирования нехватки памяти, других нехваток ресурсов и другого использования API.

Другой частью головоломки является пакет Microsoft Detours, который можно использовать для замены вызовов API вашим собственным кодом (например, полезно возвращать коды ошибок для тестов, которые сложно настроить).

Detours - библиотека для инструментов произвольных функций Win32 на машинах x86, x64 и IA64. Detours перехватывает функции Win32, переписывая код в памяти для целевых функций. Пакет Detours также содержит утилиты для присоединения произвольных библиотек DLL и сегментов данных (называемых полезными нагрузками) к любому двоичному файлу Win32.

Также доступны другие, более крупные (и более дорогие) комплексные пакеты. Borland производит Шелк .
Automated Software делает TestComplete . Выбор одного из этих инструментов будет соответствовать вашим потребностям.
IBM / Rational предоставляет Rational Functional Tester , который доступен на многих платформах и обладает широкими возможностями.

0 голосов
/ 25 июня 2011

Привет. Я не уверен, что имеющаяся у нас среда помогает в вашей ситуации, но она подключается к Rational Functional Tester и позволяет пользователю создавать различные наборы данных для присоединения к различным тестам и изменять условия, не меняя сценарии, и повторно использует автоматизация эффективным способом. Посмотрите, если вы заинтересованы: http://www.testpro.com.au/Test-Automation-Framework.html

...