У нас есть большой код устаревшего кода, несколько частей которого запланированы для рефакторинга или замены. Мы хотим оптимизировать части, которые в настоящее время влияют на пользовательский опыт, облегчают повторное использование в планируемом новом продукте и, надеюсь, улучшают ремонтопригодность.Создание тестов из анализа во время выполнения
У нас есть неплохие функциональные тесты для существующего продукта. Это смесь автоматизированных и ручных тестов GUI, но они могут занять разработчика более чем на пол дня, чтобы полностью работать. «Низкоуровневая логика домена» имеет хороший набор модульных тестов (NUnit) с хорошим охватом. К сожалению, в остальной части кода нет модульных тестов (или, по крайней мере, нет достойных модульных тестов).
То, что я хотел бы найти инструмент, который автоматически генерирует тесты для конкретных методов/классов и, возможно, специфических интерфейсов на основе их использования и поведения в функциональных тестах. Эти модульные тесты были бы неоценимы для рефакторинга, а также будут выполняться как часть нашего C.I. системы для обнаружения регрессий намного раньше, чем в настоящее время (и локализовать регрессии намного лучше, чем «кнопка X не работает».).
Есть ли такие инструменты? У вас есть рекомендации для меня?
Я столкнулся с Parasoft .TEST, который выглядит так, как будто я хочу. Есть ли у вас какие-либо комментарии по поводу моей ситуации?
Я не думаю, что что-то, что просто генерирует тестовый код из статического анализа, ala NStub, полезно здесь. Я полагаю, что это действительно генерация репрезентативных тестовых данных, которые действительно важны.
Пожалуйста, игнорируйте достоинства или недостатки автоматизированной генерации тестов - это не то, что я обычно защищал. (Не в последнюю очередь потому, что вы получаете тесты, которые проходят по сломанному коду!)