2009-05-06 4 views
3

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

У нас есть неплохие функциональные тесты для существующего продукта. Это смесь автоматизированных и ручных тестов GUI, но они могут занять разработчика более чем на пол дня, чтобы полностью работать. «Низкоуровневая логика домена» имеет хороший набор модульных тестов (NUnit) с хорошим охватом. К сожалению, в остальной части кода нет модульных тестов (или, по крайней мере, нет достойных модульных тестов).

То, что я хотел бы найти инструмент, который автоматически генерирует тесты для конкретных методов/классов и, возможно, специфических интерфейсов на основе их использования и поведения в функциональных тестах. Эти модульные тесты были бы неоценимы для рефакторинга, а также будут выполняться как часть нашего C.I. системы для обнаружения регрессий намного раньше, чем в настоящее время (и локализовать регрессии намного лучше, чем «кнопка X не работает».).

Есть ли такие инструменты? У вас есть рекомендации для меня?

Я столкнулся с Parasoft .TEST, который выглядит так, как будто я хочу. Есть ли у вас какие-либо комментарии по поводу моей ситуации?

Я не думаю, что что-то, что просто генерирует тестовый код из статического анализа, ala NStub, полезно здесь. Я полагаю, что это действительно генерация репрезентативных тестовых данных, которые действительно важны.

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

ответ

0

Ну, вы можете посмотреть PEX - но я считаю, что он изобретает собственные данные (он не смотрит ваши существующие тесты, AFAIK).

2

Попробуйте Pex:

справа от редактора кода Visual Studio, Pex находит интересные значения ввода-вывода ваших методов, которые можно сохранить, как небольшой набор тестов с высоким покрытием кода. Pex осуществляет систематический анализ, поиск граничных условий, исключений и сбоев утверждения, которые вы можете отлаживать сразу. Pex позволяет тестировать параметризованные единицы измерения, расширение модульного тестирования, которое снижает затраты на техобслуживание.

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