Водич за јединствено тестирање: Шта је, типови, алати и ампер; ТЕСТ ПРИМЕР

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

Anonim

Шта је јединствено тестирање?

ТЕСТИРАЊЕ ЈЕДИНИЦА је врста тестирања софтвера где се испитују појединачне јединице или компоненте софтвера. Сврха је потврдити да свака јединица софтверског кода ради онако како се очекивало. Јединствено тестирање програмери врше током развоја (фазе кодирања) апликације. Јединствени тестови изолују одељак кода и потврђују његову исправност. Јединица може бити појединачна функција, метода, поступак, модул или објекат.

У СДЛЦ, СТЛЦ, В моделу, јединствено тестирање је први ниво тестирања обављен пре тестирања интеграције. Јединствено тестирање је техника тестирања ВхитеБок-а коју обично изводи програмер. Иако, у практичном свету због временског стискања или несклоности програмера за тестирање, КА инжењери такође врше јединствено тестирање.

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

  • Зашто јединствено тестирање?
  • Како се врши јединствено тестирање
  • Технике јединственог испитивања
  • Алати за јединствено тестирање
  • Тест Дривен Девелопмент (ТДД) и Унит Тестирање
  • Мит о јединственом тестирању
  • Предност јединственог тестирања
  • Недостаци јединичног тестирања
  • Јединствено тестирање најбољих пракси

Зашто јединствено тестирање?

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

Ево кључних разлога за тестирање јединица у софтверском инжењерству:

Јединствени нивои испитивања
  1. Јединствени тестови помажу у отклањању грешака на почетку развојног циклуса и уштеди трошкова.
  2. Помаже програмерима да разумеју основу за тестирање кода и омогућава им брзо уношење промена
  3. Добра јединична испитивања служе као пројектна документација
  4. Јединствени тестови помажу у поновној употреби кода. Пребаците и свој код и тестове на нови пројекат. Подесите код док се тестови не покрену поново.

Како се врши јединствено тестирање

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

Јединствено тестирање је две врсте

  • Упутство
  • Аутоматизовано

Јединствено тестирање је обично аутоматизовано, али се и даље може изводити ручно. Софтверски инжењеринг не фаворизује једно него друго, али се даје предност аутоматизацији. Ручни приступ јединственом тестирању може користити корак по корак инструкциони документ.

Под аутоматизованим приступом

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

Технике јединственог испитивања

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

Технике покривања кодова које се користе у јединственом тестирању наведене су у наставку:

  • Извештај Покривеност
  • Покривеност одлуком
  • Покривеност филијале
  • Обухват стања
  • Покривеност коначних државних машина

За више информација погледајте хттпс://ввв.гуру99.цом/цоде-цовераге.хтмл

Пример јединичног теста: Изружени објекти

Јединствено тестирање ослања се на лажне објекте који се креирају за тестирање делова кода који још увек нису део комплетне апликације. Лажни објекти попуњавају недостајуће делове програма.

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

Алати за јединствено тестирање

Доступно је неколико аутоматизованих софтверских софтвера за јединствено тестирање. У наставку ћемо навести неколико примера:

  1. Јунит: Јунит је бесплатна алатка за тестирање која се користи за програмски језик Јава. Даје тврдње за идентификацију методе испитивања. Овај алат прво тестира податке, а затим их убацује у део кода.
  2. НУнит: НУнит је широко коришћен оквир за тестирање јединица који се користи за све .нет језике. То је алат отвореног кода који омогућава ручно писање скрипти. Подржава тестове засноване на подацима који могу радити паралелно.
  3. ЈМоцкит: ЈМоцкит је алат за јединствено тестирање отвореног кода. То је алат за покривање кода са метриком линија и путања. Омогућава исмевање АПИ-ја синтаксом снимања и верификације. Овај алат нуди покривеност линије, покривеност пута и покривеност подацима.
  4. ЕММА: ЕММА је сет алата отвореног кода за анализу и извештавање о коду написаном на језику Јава. Емма подржава типове покривености попут методе, линије, основног блока. Заснован је на Јави, тако да нема зависности од спољне библиотеке и може приступити изворном коду.
  5. ПХПУнит: ПХПУнит је јединствени алат за тестирање ПХП програмера. Потребни су мали делови кода који се називају јединице и тестирајте сваку од њих засебно. Алат такође омогућава програмерима да користе унапред дефинисане методе тврдњи како би тврдили да се систем понаша на одређени начин.

То је само неколико доступних алата за јединствено тестирање. Има их још много, посебно за језике Ц и Јаву, али сигурно ћете пронаћи алат за јединствено тестирање за своје потребе програмирања, без обзира на језик који користите.

Тест Дривен Девелопмент (ТДД) и Унит Тестирање

Јединствено тестирање у ТДД укључује широку употребу оквира за тестирање. Јединствени тестни оквир користи се за креирање аутоматизованих јединичних тестова. Оквири јединичног тестирања нису јединствени за ТДД, али су му од суштинске важности. У наставку ћемо погледати неке од онога што ТДД доноси у свет јединичног тестирања:

  • Испитивања су написана пре кода
  • Веома у тестирању оквира
  • Све класе у апликацијама су тестиране
  • Омогућена је брза и лака интеграција

Мит о јединственом тестирању

Мит: Потребно је време, а ја сам увек заказао. Мој код је чврст! Не требају ми јединични тестови.

Митови су по својој природи лажне претпоставке. Ове претпоставке воде у зачарани круг како следи -

Истина је да јединствено тестирање повећава брзину развоја.

Програмери мисле да ће тестирање интеграције ухватити све грешке и да неће извршити јединствени тест. Једном када се јединице интегришу, врло једноставним грешкама које се могу врло лако пронаћи и отклонити у тестираним јединицама треба јако дуго да се пронађу и поправе.

Предност јединственог тестирања

  • Програмери који желе да науче коју функционалност пружа јединица и како је користити могу да погледају јединичне тестове како би стекли основно разумевање АПИ-ја јединице.
  • Јединствено тестирање омогућава програмеру да касније изврши рефакторирање кода и осигура да модул и даље ради исправно (тј. Регресијско тестирање). Поступак је писање тест случајева за све функције и методе, тако да кад год промена проузрокује грешку може брзо да се идентификује и поправи.
  • Због модуларне природе јединственог тестирања, можемо тестирати делове пројекта не чекајући да други буду завршени.

Недостаци јединичног тестирања

  • Не може се очекивати да ће јединствено тестирање ухватити сваку грешку у програму. Није могуће проценити све путање извршења чак ни у нај тривијалнијим програмима
  • Јединствено тестирање по својој природи фокусира се на јединицу кода. Стога не може да ухвати грешке интеграције или широке грешке на системском нивоу.

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

Јединствено тестирање најбољих пракси

  • Случајеви јединствених тестова треба да буду независни. У случају било каквих побољшања или промене захтева, то не сме да утиче на случајеве јединствених тестова.
  • Тестирајте само по један код.
  • Придржавајте се јасних и доследних правила именовања за своје јединичне тестове
  • У случају промене кода у било ком модулу, побрините се да постоји одговарајући јединствени тест случај за модул и да модул прође тестове пре промене примене
  • Грешке идентификоване током јединственог тестирања морају се исправити пре него што се пређе на следећу фазу у СДЛЦ
  • Усвојите приступ „тест као ваш код“. Што више кода напишете без тестирања, више путања морате да проверите да ли има грешака.

Резиме

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