У нас есть старая библиотека C#, которую нужно «очистить», реорганизовать, в основном переделать. В этой библиотеке нет связанных с тестированием модулей (и нет документации по этому вопросу). Мы хотим заверить, что после переделать все с нуля все функции сохранены и никаких ошибок не вводится. Для этого я спрашиваю вас, как бы вы приблизились к такой ситуации, как эта мысль об модульном тестировании. Должен ли я создавать модульные тесты как для старой библиотеки проектов, так и для новой? Нет смысла создавать модульное тестирование для устаревшего кода. Или это?Тестирование модулей при переносе устаревшего кода
ответ
Это, к несчастью, зависит от того, как вы планируете переписывать. Если вы хотите полностью перепроектировать, то выполнение модульных тестов для устаревшего кода будет более или менее бесполезным, и вы не сможете их перенести. Модульные испытания плотно соединены с блоком . Редизайн тестируемых устройств обычно аннулирует их модульные тесты.
Предлагаю с учетом письменных тестов интеграции для старой библиотеки, то есть для проверки больших процессов (если это возможно). Они могут быть более сальсистыми и должны дать вам уверенность в том, что широкая картинка все еще не повреждена. Но это может быть очень специфично для домена, то есть если вы переносите некоторую библиотеку инструментов, возможно, не будет расширенного изображения , чтобы посмотреть!
Если ваша цель - сохранить существующий API без изменений и только улучшить внутреннюю реализацию вашей библиотеки, вы должны охватить открытый API своей старой библиотеки модульными тестами. Тогда вы будете в безопасности, чтобы делать рефакторинг и улучшения.
Если ваши улучшения требуют изменений в общедоступном API, модульные тесты для старой библиотеки не помогли бы - вы должны охватить новый API с помощью модульных тестов.
Таким образом, для устаревшего кода не существует никаких модульных тестов. Теоретически мы даже не уверены, что это ошибка.
Для устаревшего кода для тестирования модулей требуются некоторые методы повторного факторинга, которые также требуют изменения устаревшего кода. Если план состоит в том, чтобы написать новую библиотеку, модуль, тестирующий старый, удваивает работу и не даст вам никаких хороших идей.
Вы хотите знать, не были ли введены ошибки: Создайте новый проект, управляемый тестом. Вы хотите знать, одинаковы ли функциональные возможности? приемочные испытания конечного пользователя, поскольку автоматизированный способ проверки того, являются ли новые и старые, одинаковыми, не существует.
Я пропустил часть, это внутренний компонент, используемый другими компонентами, а не пользователем. В этом случае вы можете написать тесты на «черный ящик». Это требует, чтобы вы сохраняли государственные контракты одинаково, но позволяете выявлять различия между старым и новым проектом.
- 1. Тестирование устаревшего кода
- 2. Приемочное тестирование устаревшего кода
- 3. Тестирование модулей - инструменты для интеграции/генерации кода
- 4. Проверка качества кода устаревшего кода
- 5. F # проблема при переносе некоторого кода VB.NET
- 6. Тестирование модулей WinForms
- 7. Автоматическое тестирование модулей C++
- 8. Замена устаревшего кода DirectDraw
- 9. Понимание устаревшего кода Грааля?
- 10. Обновление устаревшего кода
- 11. Понимание устаревшего кода Libgdx
- 12. Рефакторинг устаревшего кода
- 13. Добавить изменение устаревшего кода
- 14. Узел тестирования устаревшего кода
- 15. Тестирование модулей: NoSuchMethodError при вызове Notification.setLatestEventInfo()
- 16. Тестирование модулей в Android?
- 17. Успешное тестирование модулей pyinotify?
- 18. Тестирование модулей в Silverlight
- 19. Тестирование модулей Sqoop Applications
- 20. Угловое тестирование? Тестирование модулей и тестирование E2E?
- 21. Тестирование модулей - обрезание SqlDataReader
- 22. Тестирование модулей DAO
- 23. Тестирование модулей Рамка анализа iOS
- 24. Тестирование модулей NHibernate UserTypes
- 25. Тестирование модулей для магазина приложений
- 26. Тестирование модулей базы данных (MySQL)
- 27. Тестирование модулей для Extendscript
- 28. Тестирование модулей в python?
- 29. Тестирование модулей в октаве
- 30. ServiceStack: Тестирование модулей WebServices
Планируете ли вы написать весь проект с нуля? Насколько огромный этот проект? –
Это не так сложно, имеет 6 классов: большинство из них с +/- 100 линиями и один с +/- 1100 линиями –
Вопрос может быть лучше подходит для http://programmers.stackexchange.com/, но в основном тот же черный -box следует использовать для нового и старого проекта. – Codor