Какво представлява Unit testing?

+14 гласа
817 прегледа
попитан 2016 август 8 в Тестване на софтуер от И.Паунов (220 точки)

2 отговори

+1 глас
отговорени 2016 август 9 от Daniel Ivanov (11,140 точки)

Unit testing-ът е метод за тестване, който проверява дали индивидуалните единици от сорс код работят правилно. Единица или един юнит е най-малката част от едно приложение, която може да се изтества.

В процедурното програмиране юнита може да бъде една индивидуална програма, функция, процедура и т.н. , докато в обектно-ориентираното програмиране най-малката единица е метод, който може да принадлежи към един базов/супер клас, абстрактен клас или подклас.

Юнит тестовете са малки кодови фрагменти, създадени от програмистите или от време на време от white box тестърите по време на development-а. Дава основата на компонентното тестване.

По принцип, всеки един тест кейс е независим от другите. Заместители като method stubs (парче код, който има различна функционалност), mock objects (обекти, симулиращи поведението на реални обекти,но контролирани), fakes и test harnesses (автоматизиран тестов фреймуърк – колекция от софтуерна и тестова информация, конфигурирана да тества един програмен юнит като го пуска в различни ситуации и условия и гледа как реагира - какви output-и и behaviour-и има.

Unit тестовете обикновено се пишат и се пускат от програмистите, за да се уверят, че кодът работи както е редно.

С какво ни помага unit test-ването?

Намира проблемите на време

Когато един бъг се намери на време (по време на тестването преди продуктът да е излязъл на пазара, той спестява както усилия (ако е критичен или сравнително важен бъг ще трябва да бъде оправен възможно най-скоро и ако QA екипът не е на разположение ще стане кофти), така и пари на компанията (късно открит бъг или открит от изнервен потребител би имал лош за компанията ефект – загуба на клиентела).

Улеснява промените

Unit testing-ът позволява на програмиста да прави промени по кода (refactor) или да променя библиотеките в по-късен етап, и да бъде сигурен, че все още всичко работи както трябва (например в регресивното тестване).

Улеснява интеграцията

Както знаем, unit testing-ът е преди integration testing-а и ако е изтествано всичко като хората няма да създава проблеми както в интеграционното тестване, така и в по-късните етапи от тестване.

Документация

Това тестване дава един вид жива документация на системата. Девелъпърите, който се опитват да разберат каква функционалност притежава един юнит и как да го използват могат да погледнат към unit тестовете и да получат тази информация.

Дизайн

Комбинацията от писане на тестове – юнит тестовете и refactoring-а могат да изградят вид на един дизайн.

Това е като цяло информацията, която би била полезна на всеки заинтересован от QA, testing и development. :)

–2 гласа
отговорени 2016 август 8 от Technology (260 точки) 1 флаг
Razrabotka crez testove preporachvam ti da proverish v uikipediq.
...