Тестирање софтвера

Циљ и исход предмета

Циљ курса је да студенти разумеју и савладају методе и технике из области квалитета, тестирања и одржавања софтвера. Савладаће: моделе квалитета софтвера и његове специфичности у односу на остале производе, одређивање атрибута квалитета софтвера и мере квалитета као и стандарде који се примењују у овој области. Студент је стекао теоријска, методолошка и практична знања о развоју софтверских производа која се примењују коришћењем савремених техника, модела и процеса за: Осигурање квалитета софтвера - пружање, мерење и процена; Мерење и предвиђање квалитета софтвера (CMMI и TMM модели унапређења); Тестирање софтвера - планирање и примена, врсте (класе) техника, функционално тестирање (технике црне кутије), структурно тестирање (технике беле кутије), хибридне технике (технике сиве кутије), врсте и нивои испитивања итд.

Теоријска настава

Квалитет софтвера - основе. Фактори квалитета софтвера - процеси, модели, захтеви и метрике. Тестирање софтвера (ТС) - основе, циљеви, приступи, процеси, планирање и примена. Тестирање софтвера - Стратегије, Врсте техника испитивања (Класе). Нивои тестирања према фазама развоја софтвера (у развоју и испоруци). Верификација и валидација као технике тестирања. Скуп техника тестирања софтвера. Технике откривања грешака: технике откривања засноване на спецификацијама; Тестирање на основу дефиниције интерфејса; Тестирање програма на бази карактеристика; Тестирање софтвера методама црне кутије (функционално тестирање): Дизајн тестних случајева; Анализа граничних вредности; Избор примера испитивања и решења за тестирање (Oracle проблем); Тестирање софтвера техникама беле кутије: Покривеност команди; Прекривање грана; Испитивање петљи и условних грана; Цикломатска сложеност. Структурно тестирање и технике сиве кутије: испитивање протока података, динамичка анализа протока података, комбинација тестирања црне кутије и беле кутије. Графикон узрока и последица. Табела одлуке за графикон узрока и последица. Испитивање перформанси. Тестови конфигурације. Испитивање документације. Технике засноване на природи примене: Објектно оријентисано тестирање; Компонентно тестирање; Интернет базирано тестирање; GUI тестирање. Тестирање система у реалном времену и безбедносно критично тестирање система (IEEE 1228-94). Нивои и врсте тестирања софтвера. Организација процеса тестирања софтвера. Испитивање јединице. Испитивање интеграције модула. Тестирање система. Хандовер тестирање (Alpha и Beta тестирање). Нивои зрелости процеса тестирања (TMM); План теста - главни и појединачни. Порекло грешака и њихова дистрибуција. Трошкови отклањања недостатака софтвера. Модел трошкова за отклањање недостатака софтвера. Типична алокација локације и трошкови уклањања погрешака. Свеобухватан план осигурања квалитета.

Практична настава

Приказ примера са критичним мисијом - тестирање система једносмерног тунела који је реализован у програмском језику Java. Проучавање случајева са критичним мисијом - обезбеђивање квалитета, метрике квалитета и тестирања банкарских апликација ATM машине: План обезбеђења квалитета и процесе тестирања софтвера ATM машина; Фазе тестрања, извршавање и извештавање (анализа, представљање, управљање грешком и тд.) Тестирања софтвера ATM машина; Примена техника анализе - инспекција, пролазак кроз програмски код и сл . Тестирање на бази спецификација. Тестирање на бази структуре програмског кода. Тестирање корисничког интерфејса - UI. Дизајнирање тестова софтвера ATM машине по методи „црне кутије“ и „беле кутије“ софтвера ATM машина. Дизајнирање тест сличајева стратегија „сиве кутије“ софтвера ATM машине.