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

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

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

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

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

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

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

3078-testiranje-softvera