Анализ покрытия функциональных тестов

В проекте, над которым я работаю, у нас есть функциональные тесты, написанные над Selenium. Приложение претерпевает функциональные изменения при каждом выпуске функции.

Есть ли инструмент/механизм, чтобы мы могли отслеживать пробелы в автоматизированных функциональных тестах, чтобы по крайней мере ручные тестеры могли следить за этими областями?

Примечание: мы не делаем FTDD, поэтому функциональное покрытие теста может быть довольно низким, хотя мы обеспечиваем высокий охват unit test. Мы используем NCover для проверки покрытия unit test.

Ответ 1

Есть, по крайней мере, два (коммерческих, но дешевых) инструмента, которые, как я знаю, позволяют вам подключаться к процессу IIS для захвата данных покрытия для приложений IIS.

NCover:

NCover включает командную строку //iis переключатель. Этот переключатель устанавливает среды покрытия в рамках IIS и перезапускает веб-сервер. Вы запустите NCover, чтобы проанализировать охват для ваших веб-приложений:

NCover.Console.exe nunit-console.exe TestAssembly.dll//iis Когда вы запускаете NCover таким образом, IIS будет перезапущен, чтобы NCover мог контролировать ваш охват и ваши тесты будут запустить. После завершения NCover остановится IIS и отсоединить себя.

Смотрите: http://docs.ncover.com/how-to/code-coverage-of-asp-net-applications-on-iis/

DotCover by jetbrains:

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

См. http://www.jetbrains.com/dotcover/

Я думаю, что Rational и Microsoft Teamsystem также имеют решения, но они немного дороже.

Ответ 2

Мы используем систему для тестирования, которая включает человека, создающего текстовое повествование - тест script - для ручного тестирования функциональности. Это перечисляется определенным образом (например, [функциональность] -001). Затем наши тесты Selenium отмечены как покрывающие одно или несколько из этих перечислений.

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

Ответ 3

Некоторые из наших инструментов Test Coverage (в настоящее время Java, С# и COBOL) предназначены для работы с такими вещами.

Если вы запускаете свое приложение и выполняете определенную функцию, вы можете использовать эти инструменты для тестирования, чтобы собирать данные о покрытии кода для этой конкретной функции. По сути, это запись всего кода, который выполняет функциональность. С некоторыми незначительными сценариями вы можете организовать для каждого теста функциональности и запускать данные покрытия кода для этого теста.

Собранные векторы охвата тестирования могут быть объединены в сводный вектор инструментом, который предоставит вам номер покрытия кода для вашего кода на основе всего набора тестов функциональности.

Если вы измените базу кода, инструмент для охвата тестирования скажет вам, какие блоки кода были изменены (он сравнивается на уровне метода для различий). Это, в свою очередь, может быть применено к векторам тестирования, уже собранным для отдельных функциональных возможностей; если есть пересечение, вам нужно снова запустить функциональный тест, поскольку изменился код, от которого он зависел.

Таким образом, вы можете решить, какие функции необходимо повторно протестировать после изменения.

Ответ 4

NDepend имеет возможность отображать дефрагментацию кода между различными версиями.

с сайта NDepend (http://www.ndepend.com/Features.aspx#Coverage):

Написание автоматических тестов является центральной практикой для повышения правильности кода. Зная, какая часть кода покрыта автоматическими тестами, помогает улучшить тесты и, следовательно, помогает повысить правильность кода.

NDepend собирает данные покрытия кода из NCover ™ и Visual Studio Team System ™. Из этих данных NDepend указывает некоторые показатели на методы, типы, пространства имен и сборки: PercentageCoverage, NbLinesOfCodeCovered, NbLinesOfCodeNotCovered и BranchCoverage (только от NCover).

Эти метрики могут использоваться совместно с другими функциями NDepend. Например, вы можете узнать, какой код был добавлен или реорганизован со времени последней версии и не полностью покрыт испытаниями. Вы можете написать ограничение CQL, чтобы непрерывно проверять, что набор классов покрыт на 100%. Вы можете указать, какие сложные методы требуют больше тестов.

Видео-демо здесь: http://s3.amazonaws.com/NDependOnlineDemos/Coverage_viewlet_swf.html

Ответ 5

Предложить функциональный инструмент покрытия для .net core

Ncover: не поддерживает ядро .net

dotcover: есть дефект в открытом состоянии