Как структурировать приемочные тесты и планы тестирования?

#tdd #nunit #cucumber #specflow #acceptance-testing

#tdd #nunit #огурец #specflow #приемочное тестирование

Вопрос:

Я рассматриваю два разных подхода к структурированию моих приемочных тестов. У нас есть проект Silverlight, который обращается к уровню обслуживания (я владею обеими сторонами). Из-за особенностей Silverlight тестовый код, вызывающий сборки Silverlight, должен находиться в отдельном тестовом проекте от остальных тестов, отличных от Silverlight.

1) Возьмите все критерии приемлемости, которые мы придумали, и поместите их в файлы функций. Пометьте сценарии тегами, чтобы указать среду, в которой они будут выполняться (@server, @client и т. Д.). Включите ручные тесты в файлы функций и пометьте их тегом @manual .

Плюсы: все тесты, которые записываются BAs, будут в одном месте для их просмотра и возможного редактирования

Недостатки: возможно, имеет смысл протестировать некоторые сценарии с помощью модульных тестов или интеграционных тестов, и NUnit может быть лучшим инструментом для этого, чем SpecFlow

2) Напишите критерии приемлемости для всего, но затем автоматизируйте некоторые в SpecFlow, некоторые с помощью модульных тестов, некоторые с помощью интеграционных тестов и т. Д. В SpecFlow будут только сценарии, автоматизированные SpecFlow. Мы можем поместить сценарии, которые будут проходить модульное тестирование, тестирование интеграции или ручное тестирование, в файлы компонентов, но эти сценарии фактически не будут запускать какой-либо код, они будут просто для целей документации.

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

Минусы: нам придется синхронизировать сценарии, которые не выполняются SpecFlow, с любым кодом, который их автоматизирует.

Мысли? Есть ли другой способ, о котором я не думаю? Как вы это делаете?

Ответ №1:

Я думаю, что у вас здесь два разных проекта с точки зрения тестирования.

Теоретически ваши службы могут вызываться чем-то другим, а не приложением Silverlight. Это может быть приложение HTML5, какой-либо другой контейнер MVC, написанный на Java, и т. Д. И т. Д. Поэтому я бы написал сценарии / спецификации / что у вас есть для сервисов самостоятельно.

Аналогично, у вас есть приложение Silverlight, которое может взаимодействовать с измененным уровнем обслуживания. Это будет ваш NUnit и т. Д. Тогда у вас будут дополнительные приемочные тесты в SpecFlow / Cucumber, которые будут «интеграционными» тестами, которые показывают, как все приложение будет действовать на пользователя.

Ответ №2:

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