Если вы хотите знать, как тестировать все приложение, это не модульный тест, поскольку блок, когда речь идет о приложениях .Net, - это класс или метод. Я догадываюсь ваше заблуждение вызвано тем фактом, что созданная вами вещь , созданная вами автоматически, является тестовым модулем (вы проводите модульные тесты с тестовыми модулями, но вы также можете проводить интеграционные тесты с тестовыми модулями). ..). Вы, вероятно, говорите о автоматических интеграционных тестах или приемочных тестах (которые никогда не должны быть автоматическими).
Модели тестирования, такие как V-Model, определяют как минимум три фазы тестирования:
Модульное тестирование
Проверяет одну функциональность или
особенность системы. Это основано на
техническая спецификация
единица (класс или метод), которым вы являетесь
строительство. Это может быть автоматизировано через
использование тестов юнитов. Кроме того, я думаю, что следует
использовать CI Server (непрерывная интеграция)
здесь, так как если ваши единицы не интегрируются правильно,
там проблема, скорее всего, появилась на этом этапе.
Интеграционное тестирование
Как только вы подтвердите, что каждый из ваших
"единицы" (классы или методы) работают
индивидуально, попробуйте сейчас проверить,
вся система работает как единое целое. Так
вы делаете интеграционный тест, который
проверяет, работают ли эти устройства
правильно вместе, чтобы достичь
цель системы. Вам следует
попробуйте автоматизировать интеграционные тесты как
Что ж. Вы можете использовать такие инструменты, как
StoryTeller за это.
Приемочное тестирование пользователя
Пользовательский приемочный тест должен быть
проводится пользователем, поэтому нет
автоматизация здесь. Конечно вы можете
создать и загрузить данные, которые пользователь
будет проверять, поэтому части
тесты автоматизированы, но не
результат . Ни один робот не должен дать вам окончательное слово, что система
работает, только пользователь.
Теперь, чтобы ответить на ваши вопросы:
Каковы стандартные механизмы выполнения модульного тестирования и написания контрольных примеров?
Для этой цели вам следует использовать .Net Test Units. Чтобы протестировать взаимодействие с пользователем (вы можете протестировать взаимодействие с пользователем на экране), вы можете использовать внешнее приложение (проверьте ссылки ниже). Какой-то робот может автоматизировать такие тесты для вас.
Меняются ли методологии в зависимости от характера приложений, таких как Windows Forms, веб-приложения и т. Д.?
Действительно. Например, пакетное приложение может быть протестировано модулем с помощью единственного использования тестовых модулей. Тестовые случаи для пакетных систем также могут быть более слабыми, но потребуется больше данных для проверки всех ограничений.
Каков наилучший подход, чтобы убедиться, что мы охватываем все сценарии? Какие-нибудь популярные книги на эту тему?
Я не уверен, что есть реальный способ сделать уверенным , что вы рассмотрели каждый сценарий, но вам нужно определить, с чем вы тестируете. Как я уже говорил ранее, вам следует выполнить модульное тестирование в соответствии с технической спецификацией, поэтому, если ваша спецификация хорошо написана, вы сможете четко определить тестовые случаи. Если вы чувствуете необходимость проверить что-то, что не было указано, тогда вам следует улучшить свои методы проектирования .
Популярные инструменты для выполнения модульного тестирования?
Список инструментов тестирования GUI
Список структур модульного тестирования
Надеюсь, это поможет.