Регрессионное тестирование охватывает как модульные, так и функциональные тесты. Функциональные тесты осуществляют полную программу с различными входами. Модульные тесты выполняют отдельные функции, подпрограммы или методы объекта.
Модульные тесты являются частью кода решения и должны соответствовать первичному коду, как и Microsoft MVC. Поскольку функциональные тесты проверяют всю систему, а не только ее компоненты, они могут жить где угодно. Однако, поскольку ваши функциональные тесты являются автоматическими сценариями, они должны быть включены в решение.
Преимущество наличия в коде функциональных и модульных тестов заключается в управлении проектами. Наличие всех файлов проекта в одном репозитории связывает версию кода с тестовой версией. Скрипты тестирования должны храниться в репозитории (системе контроля версий), как и любой другой код проекта, поэтому хорошо оставить их вместе с решением.
Таким образом, команда тестировщиков может проводить тестирование белого ящика (тестирование с доступом к коду), проверяя решение, как разработчик. Их работа может быть сохранена, распространена и задокументирована в Visual Studio. Microsoft даже включает в себя некоторые веб-инструменты управления с Team Foundation Server, которые можно использовать для управления тестированием с помощью открытого взаимодействия между группой тестирования и разработчиками.