EDIT: Благодаря ncie комментаторов, я получить разницу между единицей и автоматизированным тестированием, поэтому я переименовал темуКак начать автоматическое тестирование большого приложения?
Environement: .NET 2.0, SQL Server 2005, Windows Server 2003
Я прочитал эту статью :
http://www.codeproject.com/KB/tips/convince.aspx
Этот парень говорит о том, как вы можете добавить автоматизированного тестирования в существующее приложение без changng все.
И я должен сказать, что эта статья действительно удивительна и заставляет меня попробовать!
Итак, наша система почти такая же: все данные доступны через веб-службы, поэтому мы можем легко (например, с помощью soapui) провести автоматическое тестирование этих веб-сервисов.
НО: как насчет базы данных? Чтобы провести некоторое автоматическое тестирование, нам нужно иметь правильные данные в базе данных, соответствующие автоматическому тесту.
Например, если я хочу сделать автоматический тест, проверяющий, что программное обеспечение вызывает ошибку, если имя клиента пуст, мне нужно добавить в моем db клиента с пустым именем.
вот как я думаю, что я могу это сделать:
- создать сервер с всем необходимым (МИС, SQL Server ...)
- добавить что-то, так что дата этого сервера никогда не меняются так Я не должен изменить время в моем автоматизированном тесте
- добавить в свою базу данных записей, которые я должен сделать мой автоматизированный тест
ПРОБЛЕМА: база данных будет большой беспорядок после 10 автоматизированный тест, и я буду ver знать, какая запись предназначена для автоматического теста. Идея заключалась бы в том, чтобы добавить столбец «TEST_NAME» к каждой таблице, но это немного грязно в моем сознании.
Так вы когда-нибудь пробовали такую технику? Вы использовали некоторые специальные инструменты? Является ли мой образ мышления хорошим? (или, по крайней мере, хороший).
Благодаря
EDIT: Я получил 2 -1 для этой темы, я хотел бы знать, почему так я не буду делать ту же ошибку дважды.
Вы хотите сделать больше модульного тестирования (используйте Mocks и подделки вместо реальной базы данных) и меньше тестирования уровня системы, которые будут часто ломаться, потому что эти тесты в значительной степени зависят от среды и реальной базы данных с конкретными записями. Это будет для вас более сложной задачей, так как вы еще не разработали свои тесты перед разработкой. Книга Michael Feathers, работающая эффективно с устаревшим кодом, может помочь в вашем сценарии. –
@remi - вы можете подумать об изменении «модульного теста» на «автоматический тест». Единичные тесты изолированы от внешних ресурсов, таких как базы данных, файловые системы и сети. –
@Jeff: здесь я хочу проверить только свой бизнес-уровень (= веб-сервис), а не мою базу данных, но мне нужно добавить тестовые данные в свою базу данных, чтобы они работали. @Chris O: Как говорит Омар в этой статье, здесь цель состоит в том, чтобы написать только единичный тест, наш код не готов к насмешкам (и разработчикам тоже), поэтому я думаю, что мы должны использовать нашу базу данных. –