Водич за покривање кода: огранак, изјава, одлука, ФСМ

Преглед садржаја:

Anonim

Шта је покривеност Цоде?

Покривеност кодом је мера која описује степен тестирања изворног кода програма. То је један од облика белог кутија који проналази подручја програма која се не спроводе у скупу тест случајева. Такође ствара неке тест случајеве за повећање покривености и одређивање квантитативне мере покривености кодом.

У већини случајева систем покривања кода прикупља информације о покренутом програму. Такође то комбинује са информацијама о изворном коду да би се генерисао извештај о покривености кода тест пакета.

У овом упутству ћете научити-

  • Шта је покривеност Цоде?
  • Зашто користити Цоде Цовераге?
  • Методе покривања кода
  • Извештај Покривеност
  • Покривеност одлуком
  • Покривеност филијале
  • Обухват стања
  • Покривеност коначних државних машина
  • Коју врсту покривености кода одабрати
  • Покривеност кода насупрот функционалној покривености
  • Алати за покривање кода
  • Предности и недостаци употребе покривености кодом

Зашто користити Цоде Цовераге?

Ево неколико главних разлога за употребу покривања кода:

  • Помаже вам да измерите ефикасност примене теста
  • Нуди квантитативно мерење.
  • Дефинише степен до којег је изворни код тестиран.

Методе покривања кода

Следе главне методе покривања кода

  • Извештај Покривеност
  • Покривеност одлуком
  • Покривеност филијале
  • Укључи / искључи покривеност
  • Покривеност ФСМ

Извештај Покривеност

Статемент Цовераге је техника тестирања беле кутије у којој се сви извршни изрази у изворном коду извршавају најмање једном. Користи се за израчунавање броја извршених израза у изворном коду. Главна сврха покривања изјаве је да покрије све могуће путеве, линије и изјаве у изворном коду.

Покривеност изјавама користи се за извођење сценарија на основу структуре кода који се тестира.

У тестирању беле кутије, тестер се концентрише на то како софтвер ради. Другим речима, испитивач ће се концентрисати на унутрашњи рад изворног кода у вези са контролним графиконима протока или дијаграмима тока.

Генерално, у било којем софтверу, ако погледамо изворни код, наћи ће се широк спектар елемената попут оператора, функција, петље, изузетних руковалаца итд. На основу уноса у програм, неке наредбе кода можда неће бити извршене . Циљ покривања Изјаве је да покрије све могуће стазе, линију и исказ у коду.

Хајде да то разумемо на примеру, како израчунати покривеност извода.

Сценариј за израчунавање покривености изјаве за задати изворни код. Овде узимамо два различита сценарија да бисмо проверили проценат покривености извода за сваки сценарио.

Изворни код:

Исписи (инт а, инт б) {------------ Принтсум је функцијаинт резултат = а + б;Ако (резултат> 0)Одштампај ("Позитивно", резултат)ЕлсеОдштампај ("Негативно", резултат)} ----------- Крај изворног кода

Сценарио 1:

Ако је А = 3, Б = 9

Изјаве означене жутом бојом су оне које се извршавају према сценарију

Број извршених извода = 5, Укупан број извода = 7

Покривеност изјаве: 5/7 = 71%

Такође ћемо видети сценарио 2,

Сценарио 2:

Ако је А = -3, Б = -9

Изјаве означене жутом бојом су оне које се извршавају према сценарију.

Број извршених изјава = 6

Укупан број изјава = 7

Покривеност изјаве: 6/7 = 85%

Али у целини, ако видите, све изјаве су покривене разматраним другим сценаријем. Тако можемо закључити да је укупна покривеност изјаве 100%.

Шта је обухваћено Извештајем?

  1. Неискоришћене изјаве
  2. Деад Цоде
  3. Неискоришћене филијале
  4. Недостају изјаве

Покривеност одлуком

Покривеност одлуком је техника тестирања белог оквира која извештава о истинитим или лажним исходима сваког логичког израза изворног кода. Циљ тестирања покривености одлука је да покрије и потврди сав приступачни изворни код провером и осигурањем да се свака грана сваке могуће тачке одлучивања изврши бар једном.

У овом извештају изрази се понекад могу закомпликовати. Стога је веома тешко постићи 100% покривеност. Због тога постоји много различитих метода извештавања о овој метрици. Све ове методе усредсређене су на покривање најважнијих комбинација. Веома је сличан покривању одлука, али нуди бољу осетљивост за контролу протока.

Пример покривања одлука

Размотрите следећи код-

Демо (инт а) {Ако је (а> 5)а = а * 3Штампа (а)}

Сценарио 1:

Вредност а је 2

Извешће се код означен жутом бојом. Овде се проверава „Не“ исход одлуке Ако је (а> 5).

Покривеност одлуком = 50%

Сценарио 2:

Вредност а је 6

Извешће се код означен жутом бојом. Овде је потврђен исход одлуке "Да" Ако је (а> 5).

Покривеност одлуком = 50%

Тест Цасе Вредност А. Оутпут Покривеност одлуком
1 2 2 50%
2 6 18 50%

Покривеност филијале

Бранцх Цовераге је метода тестирања беле кутије у којој се тестира сваки исход модула кода (изјава или петља). Сврха покривања филијала је осигурати да се сваки услов одлуке из сваке филијале изврши најмање једном. Помаже у мерењу фракција независних сегмената кода и откривању одељака који немају гране.

На пример, ако су исходи бинарни, треба да тестирате и истините и нетачне исходе.

Формула за израчунавање покривености филијале:

Пример покривања подружнице

Да бисмо научили покривеност филијала, размотримо исти пример коришћен раније

Размотрите следећи код

Демо (инт а) {Ако је (а> 5)а = а * 3Штампа (а)}

Покривеност подружница такође ће размотрити и безусловну подружницу

Тест Цасе Вредност А. Оутпут Покривеност одлуком Покривеност филијале
1 2 2 50% 33%
2 6 18 50% 67%

Предности покривања филијале:

Тестирање покривености филијале нуди следеће предности:

  • Омогућава вам да потврдите ваљаност свих грана у коду
  • Помаже вам да осигурате да ниједно разгранато стање не доведе до било каквих абнормалности у раду програма
  • Метода покривања пословница уклања проблеме који се дешавају због тестирања покривености извода
  • Омогућава вам да пронађете она подручја која нису тестирана другим методама испитивања
  • Омогућава вам да пронађете квантитативну меру покривености кода
  • Покривеност грана занемарује гране унутар логичких израза

Обухват стања

Услов Покривеност или покривеност израза је метода испитивања која се користи за тестирање и процену променљивих или подраза у условном изразу. Циљ покривања услова је провера појединачних исхода за сваки логички услов. Покривеност услова нуди бољу осетљивост на контролни ток од покривености одлуком. У овом покривању само се разматрају изрази са логичким операндима.

На пример, ако израз има логичке операције попут АНД, ОР, КСОР, што указује на укупне могућности.

Обухватање услова не даје гаранцију о потпуном покривању одлука.

Формула за израчунавање покривености услова:

Пример:

За горњи израз имамо 4 могуће комбинације

  • ТТ
  • ФФ
  • ТФ
  • ФТ

Размотрите следећи податак

Кс = 3

И = 4

(к <и)

ИСТИНИТО

Обухват стања је ¼ = 25%

А = 3

Б = 4

(а> б)

ФАЛСЕ

Покривеност коначних државних машина

Покривеност коначних државних машина је сигурно најсложенији тип методе покривања кодом. То је зато што делује на понашање дизајна. У овом методу покривања треба да тражите колико је времена одређено за посету, транзит. Такође се проверава колико је секвенци укључено у коначну машину за стање.

Коју врсту покривености кода одабрати

Ово је сигурно најтежи одговор. Да би изабрао метод покривања, испитивач мора да провери да ли

  • код који се тестира има појединачне или више неоткривених недостатака
  • трошак потенцијалне казне
  • трошак изгубљене репутације
  • трошак изгубљене продаје итд.

Што је већа вероватноћа да ће кварови проузроковати скупе производне кварове, то ће озбиљнији ниво покривености бити потребан.

Покривеност кода насупрот функционалној покривености

Покривеност кодом Функционална покривеност
Покривеност кода говори вам колико добро је изворни код применио ваш тестни центар. Функционална покривеност мери колико је функционалност дизајна покривена вашим испитним столом.
Никада не користите спецификације дизајна Користите спецификацију дизајна
Урадили програмери Сачинио Тестерс

Алати за покривање кода

Ево листе важних алата за покривање кода:

Назив алата Опис
Цобертура То је алат за покривање отвореног кода. Он мери покривеност тестом инструментацијом базе кода и анализира који редови кода се извршавају, а који се не извршавају када се тестни пакет покрене.
Цловер Цловер такође смањује време тестирања извођењем само тестова који покривају код апликације који је измењен од претходне верзије.
ДевПартнер ДевПартнер омогућава програмерима да анализирају Јава код због квалитета и сложености кода.
Емма ЕММА подржава покривеност класе, методе, линије и основног блока, агрегиране изворне датотеке, класе и нивое метода.
Калистицк Калистицк је независна апликација која анализира кодове из различитих перспектива.
ЦоВиев и ЦоАнт Софтвер за кодирање је алат за покривање кода за метрику, лажно стварање објеката, тестирање кода, покривеност пута и грана итд.
Буллсеие за Ц ++ БулсеиеЦовераге је алат за покривање кода за Ц ++ и Ц.
Сонар Сонар је алат за покривање отвореног кода који вам помаже да управљате квалитетом кода.

Предности употребе покривености кодом

  • Корисно за процену квантитативне мере покривености кодом
  • Омогућава вам стварање додатних тест случајева за повећање покривености
  • Омогућава вам да пронађете подручја програма која се не спроводе у скупу тест случајева

Мане употребе покривача кода

  • Чак и када било која специфична карактеристика није имплементирана у дизајн, покривеност кодом и даље извештава о 100% покривености.
  • Није могуће утврдити да ли смо тестирали све могуће вредности неке функције помоћу покривања кода
  • Покривеност кода такође не говори колико и колико сте добро покрили своју логику
  • У случају да наведена функција није имплементирана или није укључена у спецификацију, технике засноване на структури не могу да пронађу тај проблем.

Резиме

  • Покривеност кодом је мера која описује степен тестирања изворног кода програма
  • Помаже вам да измерите ефикасност примене теста
  • Пет метода покривања кодом су 1.) Покривеност изјаве 2.) Покривеност услова 3) Покривеност подружнице 4) Прекривање покривености 5) Покривеност ФСМ-а
  • Покривање изјаве укључује извршавање свих извршних наредби у изворном коду најмање једном
  • Обухватање одлука извештава о истинитим или лажним исходима сваког логичког израза
  • У покривености филијала тестира се сваки исход модула кода
  • Условни ће открити како се процењују променљиве или подизрази у условном изразу
  • Покривеност коначних државних машина је сигурно најсложенији тип методе покривања кодом
  • Да би изабрао метод покрића, испитивач мора да провери трошкове потенцијалне казне, изгубљене репутације, изгубљене продаје итд.
  • Покривеност кода говори вам колико добро је изворни код применио ваш тестни сто, док функционална покривеност мери колико је функционалност дизајна покривена
  • Цобертура, ЈТест, Цловер, Емма, Калистицк су неколико важних алата за покривање кода
  • Покривеност кода вам омогућава да направите додатне тест случајеве како бисте повећали покривеност
  • Покривеност кода вам не помаже да утврдите да ли смо тестирали све могуће вредности функције