Покрытие кода в поблочном тестировании

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

Sub ScanAndColor(tblName As String)

    Dim row As Integer
    row = 1

    'scan down until you find tblName, this is like "STEPS" or "STEPS1" or whatever
    Do While Cells(row, 1).Text <> tblName

        'just read the next row
        row = row + 1

        'since we're letting someone else tell us what value to stop at, maybe we should add some infinite loop protection
        If row = 1000 Then GoTo EscapeHatch
    Loop

    'push down one column to start reading just under the headers
    row = row + 1

    'scan down through the table until we hit some whitespace
    Do While Cells(row, 1).Text <> ""

        'in each iteration, grab every 3rd column from col 2 and assign it a color
        '  according to the code in the first cell.
        For col = 2 To 14 Step 3
            Cells(row, col).Interior.Color = Cells(Cells(row, 1) + 15, 2).Interior.Color

        Next col

        'increment the row
        row = row + 1
    Loop

EscapeHatch:
End Sub
5
задан Hemant 19 March 2009 в 17:43
поделиться

6 ответов

NCover (и коммерческий и открытый исходный код один с тем же именем) и инструмент покрытия кода в Visual Studio являются в значительной степени Вашими основными инструментами в мире MS.

Покрытие кода является обратной метрикой. Это действительно не показывает Вам, какой код соответственно тестируется. Как упомянутый Nick, у Вас может быть тест, которые покрывают, но действительно не тестируют много. Покрытие кода вместо этого говорит Вам, какая область Вашего кода не имеют абсолютно никаких тестов. Оттуда, можно решить, имеет ли это смысл к тестам записи на этот код.

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

Я соглашаюсь, что получение той последней части кода является, вероятно, самым жестким и может быть точка, где ROI на нем просто не имеет смысла.

10
ответ дан 18 December 2019 в 06:36
поделиться

При выполнении Разработки через тестирование код должен поражать по крайней мере 70% без попытки. Некоторые области Вы просто не можете или быть бессмысленными, чтобы иметь тестовое покрытие, это - то, где атрибуты NoCoverage для NCover пригождаются (можно отметить классы, которые будут исключены покрытием кода).

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

4
ответ дан 18 December 2019 в 06:36
поделиться

NCover поможет показать Вам покрытие. Покрытие невероятно полезно, к сожалению, оно может, очевидно, играться. Если у Вас будут плохие разработчики, покрывающие код только для подъема %age, то да, это в конечном счете будет бесполезно и скроет раскрытые области. После того как Вы увольняете тех людей, можно зафиксировать его и возвратиться к полезной информации. Определение целей покрытия, которые недосягаемы, является верным способом получить плохое покрытие.

4
ответ дан 18 December 2019 в 06:36
поделиться

Я не использовал его лично, но один из моих коллег клянется nCover (http://www.ncover.com/).

Насколько покрытие идет в Ruby, по крайней мере, 70% легко, 90% является выполнимым, и 100% редко возможность.

1
ответ дан 18 December 2019 в 06:36
поделиться

Выпуск Разработчика системы Команды Visual Studio включает покрытие кода. Это может быть включено когда рабочие модульные тесты.

Откройте .testrunconfig и выбор, для каких блоков Вы хотите данные.

1
ответ дан 18 December 2019 в 06:36
поделиться

Существует две вещи принять во внимание при рассмотрении Покрытия Кода.

  1. Покрытие кода является сражением убывающей доходности: после определенного предела каждый дополнительный процент приводит к меньшему количеству значения. Некоторый код (как оперативные библиотеки) должен составить 100%, покрытых, тогда как кода/взаимодействия UI может быть очень трудно касаться.
  2. Покрытие кода является метрикой, которая может обманывать: 100%-е покрытие кода не приравнивается к полностью протестированному приложению.

Возьмите, например, этот отрывок:

if (a == 2)
{
    do_A_Stuff();
}

if (b == 3)
{
    do_B_Stuff();
}

Запустите тест где = 2 и второй тест где b = 3. Это - 100%-е покрытие кода. Но что происходит когда с тестом где = 2 и b = 3? Они - "Переменные Отношения" и могут привести к самонадеянности в метриках покрытия.

4
ответ дан 18 December 2019 в 06:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: