2015-01-13 3 views
3

У нас есть старая библиотека C#, которую нужно «очистить», реорганизовать, в основном переделать. В этой библиотеке нет связанных с тестированием модулей (и нет документации по этому вопросу). Мы хотим заверить, что после переделать все с нуля все функции сохранены и никаких ошибок не вводится. Для этого я спрашиваю вас, как бы вы приблизились к такой ситуации, как эта мысль об модульном тестировании. Должен ли я создавать модульные тесты как для старой библиотеки проектов, так и для новой? Нет смысла создавать модульное тестирование для устаревшего кода. Или это?Тестирование модулей при переносе устаревшего кода

+0

Планируете ли вы написать весь проект с нуля? Насколько огромный этот проект? –

+0

Это не так сложно, имеет 6 классов: большинство из них с +/- 100 линиями и один с +/- 1100 линиями –

+0

Вопрос может быть лучше подходит для http://programmers.stackexchange.com/, но в основном тот же черный -box следует использовать для нового и старого проекта. – Codor

ответ

1

Это, к несчастью, зависит от того, как вы планируете переписывать. Если вы хотите полностью перепроектировать, то выполнение модульных тестов для устаревшего кода будет более или менее бесполезным, и вы не сможете их перенести. Модульные испытания плотно соединены с блоком . Редизайн тестируемых устройств обычно аннулирует их модульные тесты.

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

0

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

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

1

Таким образом, для устаревшего кода не существует никаких модульных тестов. Теоретически мы даже не уверены, что это ошибка.

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

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

Я пропустил часть, это внутренний компонент, используемый другими компонентами, а не пользователем. В этом случае вы можете написать тесты на «черный ящик». Это требует, чтобы вы сохраняли государственные контракты одинаково, но позволяете выявлять различия между старым и новым проектом.

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