KNOW INTUIT, Лекция, Основи на тестване и отстраняване на грешки в приложения на смартфон
За компетентна организация на тестването има смисъл да се използват подходящи технологии, има много такива технологии, но в този набор могат да се разграничат две основни групи: статично и динамично тестване.
Статичното тестване, процес, който обикновено се свързва със софтуерния анализ, се използва за проверка на практически всеки артефакт на разработка: код на компонент, изисквания, системни спецификации, функционални спецификации, документи за проектиране и архитектурата на софтуерните системи и техните компоненти. Статичното тестване е единственият начин за тестване без стартиране на кода на приложението.
Динамично тестване - Процесът на тестване, извършен на работеща система или подсистема, не може да бъде извършен без стартиране на кода на приложението. Етапи на динамично изпитване:
- стартиране на система или подсистема;
- извикване на необходимите функционални елементи или модули;
- сравнение чрез графичния потребителски интерфейс на действителното поведение на системата с очакваното.
Всяка технология предполага набор от методи; при тестването обикновено се разграничават двата най-често срещани метода: методът на "черната кутия" и методът на "бялата кутия".
Методът "черна кутия" (англ. Black-box testing), включва достъп до софтуера само през онези интерфейси, които са достъпни (или ще бъдат достъпни) за потребителя. По правило тестването на черната кутия се извършва с помощта на спецификации или други документи, които описват изискванията към системата.
Методът на "бялата кутия" (англ. White-box testing), включва достъп до изходния код на програмите. Разработчикът на теста може да напише код, който се свързва със софтуера под тестовите библиотеки. Товатипично за модулно тестване (англ. unit testing), при което се тестват само определени части от системата.
В някои случаи се използва методът на тестване на сивата кутия, който е кръстоска между методите на бялата и черната кутия. Разработчикът на теста има достъп до изходния код, но когато се изпълняват тестове директно, обикновено не се изисква достъп до кода.
Процесът на тестване трябва да приключи някога, но когато избирате края на тестването, е необходимо да се ръководите от някои критерии. В теорията на тестването има такова нещо като критерии за покритие, които ви позволяват да определите степента на покритие на разработения продукт с тестове.
При тестване на функционални изисквания могат да се разграничат два типа покритие: покритие, базирано на спецификация, и покритие, базирано на код. Нека разгледаме по-отблизо тези два вида.
Тестово покритие, базирано на спецификация или изискване. Този критерий оценява степента на покритие, като се вземат предвид изискванията на клиента или спецификациите на системата. Основата може да бъде например таблица с изисквания, модел на случай на употреба и диаграма на преход на състояние. Тестовият пакет трябва да покрива всички функционални изисквания, понякога трябва да се тества само определен набор от изисквания, в който случай тестовият пакет трябва да покрива точно тези функционални изисквания. Този критерий показва в проценти броя на изискванията, обхванати от тестовете. Най-често се използва при тестване на черна кутия.
Покритие, базирано на код. Този критерий се отнася за потока на управление и потока от данни на програмата. Могат да се разграничат следните критерии за покритие на кода:
- Покритието на редовете е мярка за покритие на кода, показваща процента на програмните редове, засегнати от тестовете спрямо общия брой редове. Това е много неточен показател, тъй като дори 100% покритие пропуска много грешки.
- Покритието на разклоненията е мярка за покритие на кода, която показва процента на разклоненията на контролния поток, засегнати от тестове в общия брой на такива разклонения. Този показател е по-надежден от предишния, но 100% покритие не гарантира липсата на грешки.
- Покритието на пътя е мярка за процента на възможните пътища (и/или комбинации от разклонения), които са покрити от тестовете. Въпреки това, въпреки 100% покритие (което е почти невъзможно да се постигне в търговски системи), все още може да има скрити грешки.
Метриките и критериите се определят по време на процеса на разработване на тестова стратегия заедно с останалата част от процеса.
Класификация по обекти (елементи) на изпитване. Често разделянето на видове тестове според този критерий се нарича разделяне на тестването на нива.