Медленно вводите модульные тесты, целевые интеграционные тесты и полные системные тесты .
Для всех этих целей используйте инфраструктуру модульного тестирования .net. Это будет то, что вы делаете в тесте, что делает его любым из вышеперечисленных сценариев. Обязательно держите каждый из этих трех типов тестов отдельно , так как они будут иметь большую разницу в скорости, необходимой для их выполнения.
В качестве основы для модульного тестирования я предлагаю NUnit , но есть и другие, которые я нашел интересными, но никогда не делал прыжок, это xUnit.net .
Для полных системных тестов я предлагаю запускать их в рамках модульного тестирования, используя WatiN . Вы также можете пойти с Selenium RC .
У нас часто возникали проблемы, такие как developer1 вносил некоторые изменения в хранимую процедуру или функцию, и это влияло на работу developer2. Такие проблемы прослеживаются случайно позже.
Для этого конкретного типа сценария я настоятельно рекомендую сфокусированные интеграционные тесты . Полные системные тесты могут поймать такой сценарий, но он все равно оставит вас понять, почему он сломался.
Вместо этого сфокусируйте тест в очень специфическом коде доступа к БД, который выполняет вызов этой процедуры. Добавив сценарии, которые раскрывают все ожидания, которые разработчик2 ожидал от упомянутой процедуры, когда он (-ы) написал соответствующий код .net, проблемы регрессии с этим кодом интеграции могут быть выявлены очень быстро и решаться очень эффективно. Также обратите внимание, что developer1 может легко запускать целенаправленные интеграционные тесты, которые многократно затрагивают эту процедуру или область базы данных / что происходит гораздо чаще, чем при полных системных тестах.