Кто-нибудь сталкивается с любыми практичными подходами к внедрению Test Driven Development (и, возможно, Driven Driven Development) в/для приложений COBOL?
Идеальное решение позволило бы провести как модульное, так и интеграционное тестирование как транзакционного (CICS), так и пакетного режима cobol, сидящего на обычной комбинации баз данных DB2 и различных наборов данных фиксированной ширины.
Я видел http://sites.google.com/site/cobolunit/, и это выглядит интересно. Кто-нибудь видел это, работая в гневе? Это сработало? Каковы были ошибки?
Просто чтобы ваши творческие соки текли, некоторые "требования" для идеального подхода:
- Обязательно разрешить интеграционный тест для реализации всей программы cobol.
- Обязательно разрешать тесты для самостоятельной сертификации своих результатов (т.е. делать утверждения a la xUnit)
- Должен поддерживать как пакетный режим, так и CICS cobol.
- Если разрешить unit test выполнять отдельные абзацы внутри программы cobol, манипулируя рабочим хранилищем до/после вызова тестируемого кода.
- Должно предоставить возможность автоматически выполнять серию тестов (комплект) и сообщать об общем результате.
- Следует поддерживать использование тестовых данных, которые настроены перед тестом и затем сбрасываются.
- Должно чисто отделить тест от производственного кода.
- Если предлагает типичный тест на коэффициент производственного кода около 1:1 (т.е. при написании тестов не следует умножать количество кода, написанного настолько, что общая стоимость обслуживания увеличивается вместо вниз)
- Не следует требовать от разработчиков COBOL изучения другого языка программирования, если только это не противоречит указанному выше требованию.
- Может поддерживать отчеты о покрытии кода.
- Могли поощрять принятие различных шаблонов проектирования в самом коде, чтобы сделать код более легким для тестирования.
Комментарии приветствуются с обоснованностью/уместностью вышеуказанных требований.
Напоминаем, что то, что я ищу здесь, является хорошим практическим советом по наилучшему способу достижения таких вещей - я не обязательно ожидаю предварительно упакованного решения. Я был бы доволен примером того, где кто-то успешно использовал TDD в cobol, вместе с некоторыми указаниями и gotchas о том, что работает, а что нет.