Как я могу автоматизировать тестирование для моей функции, управляемой базой данных? - PullRequest
2 голосов
/ 25 февраля 2011

Я пытаюсь улучшить автоматизированное тестирование в своем приложении, но не уверен, как лучше поступить.

Мое приложение собирает данные из нескольких форм, перекодирует их и сохраняет в базе данных. Я создал довольно сложное представление SQL, которое выравнивает структуру, поэтому ее можно импортировать в пакет статистики (SPSS).

Меня беспокоит, что представление является сложным, и я хочу автоматизировать некоторые тесты вокруг него.

В настоящее время у меня есть несколько функциональных тестов, которые создают полную модель объектов формы и отправляют ее в приложение. Затем я извлекаю представление из базы данных и использую отражение, чтобы проверить, соответствуют ли извлеченные поля представления исходным данным.

Проблема в том, что это очень ручная и тяжелая программа, мои приборы очень длинные, и добавлять новые сценарии неудобно (т. Е. Различные части модели не завершены).

У кого-нибудь есть советы, как мне улучшить свою тестовую стратегию? Советы, приемы, все приветствуются!

Спасибо!

Ответы [ 2 ]

2 голосов
/ 25 февраля 2011

DbFit идеально подходит для этого.DbFit - это расширение FitNesse, которое, возможно, вы уже используете, поскольку говорили об использовании «приспособлений».В любом случае, DbFit позволяет очень легко настроить тест, в котором вы можете заполнить некоторые данные, запустить просмотр, сравнить ожидаемые результаты, а затем он автоматически откатит данные, которые вы только что просмотрели для теста.И это очень легко обновить, так как вы добавляете больше полей в представление.И это не требует никаких дополнительных объектов в вашей БД, как и некоторые другие наборы SQL-модулей для тестирования.

Более подробную информацию об использовании DbFit можно найти по адресу:

http://benilovj.github.com/dbfit

http://groups.google.com/group/dbfit

И вот учебник, который я написал для него, который объясняет основные параметры:

http://www.sqlservercentral.com/articles/Testing/64636/

1 голос
/ 25 февраля 2011

Это очень сложный вопрос.Для меня это звучит так, будто Вы хотите сделать один тест, который проверяет все за один раз

Во-первых, ваше приложение должно быть сконструировано таким образом, чтобы каждая функциональность была изолирована в своем собственном классе, что облегчало бы его тестирование и замену заглушками при тестировании других вещей.Зависимости от других функций должны быть введены (Dependency Injection).

Во-вторых, вы должны использовать ту же технику для внешних систем, таких как соединения с базой данных и средства записи файлов SPSS.Это включает в себя обертывание такой функциональности, так что эти зависимости также могут быть внедрены и, таким образом, заменены заглушками при тестировании других аспектов вашего приложения.

В-третьих, имейте в виду, что если тесты трудно писать, то в 99,99% случаев это означает, что ваш дизайн не так силен, как мог бы.

С уважением, Мортен

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...