Как профессиональный тестировщик, я предлагаю вам иметь правильное сочетание автоматического и ручного тестирования.
АВТОМАТИЗИРОВАННОЕ ИСПЫТАНИЕ
Модульное тестирование
Используйте NUnit для проверки ваших классов, функций и взаимодействия между ними.
http://www.nunit.org/index.php
Автоматическое функциональное тестирование
Если это возможно, вы должны автоматизировать большую часть функционального тестирования. Некоторые каркасные работы имеют встроенное функциональное тестирование. В противном случае вы должны использовать инструмент для этого. Если вы разрабатываете веб-сайты / приложения, возможно, вы захотите взглянуть на Selenium.
http://www.peterkrantz.com/2005/selenium-for-aspnet/
Непрерывная интеграция
Используйте CI, чтобы убедиться, что все ваши автоматические тесты запускаются каждый раз, когда кто-то из вашей команды делает коммит в проект.
http://martinfowler.com/articles/continuousIntegration.html
РУЧНОЕ ИСПЫТАНИЕ
Как бы я ни любил автоматизированное тестирование, оно, IMHO, не заменит ручное тестирование. Основная причина в том, что автоматизированный пользователь может делать только то, что ему говорят, и проверять только то, что ему сообщили, для того, чтобы он воспринимался как пройденный / неудачный. Человек может использовать свой интеллект, чтобы находить ошибки и задавать вопросы, возникающие при тестировании чего-то другого.
- Поисковые испытания
ET - это очень дешевый и эффективный способ поиска дефектов в проекте. Он использует интеллект человека и учит тестеров / разработчиков больше о проекте, чем любой другой метод тестирования, который я знаю. Проведение сеанса ET для каждой функции, развернутой в тестовой среде, - это не только эффективный способ быстрого поиска проблем, но и хороший способ учиться и получать удовольствие!
http://www.satisfice.com/articles/et-article.pdf