Циљ и исход предмета
Студент је оспособљен да разуме значај тестирања софтвера и да кроз писање различитих врста тестова допринесе квалитету софтверског пројекта. Студент ће бити оспособљен да пише јединичне и интеграционе тестове, као и тестове с краја на крај и тестове перформанси.
Теоријска настава
Појам тестирања софтвера. Психолошки и економски аспекти тестирања. Преглед техника тестирања црне и беле (стаклене) кутије. Класе еквиваленције, анализа граничних вредности и граф узрока и последица. Примена наведених техника тестирања на конкретним примерима. Предности и недостаци обе технике тестирања. Метрика покривености кода тестовима. Инспекција и ревизија кода као врсте тестирања. Појам јединичних тестова. Изолованост кода код јединичног тестирања. Различите врсте замена – мокови, стабови. Развој софтвера вођен тестовима. Квалитет једининичних тестова. Интеграциони тестови. Припрема окружења за интеграционо тестирање. Планирање и конфигурисање извршавања тестова у склопу изградње софтвера, непрекидне интеграције и испоруке софтвера. Тестирање перформанси. Тестови с краја на крај.
Практична настава
Писање јединичних тестова за задате имплементације операција у изабраном програмском језику коришћем одговарајућег xUnit окружења. Илустрација техника тестирања црне и беле кутије на практичним примерима тестирања имплементираних операција у изабраном програмском језику. Писање тестова са различитим врстама замена (мокова, стабова). Писање API и интеграционих тестова у изабраном окружењу. Писање скрипти за припрему окружења за интеграционо тестирање. Писање тестова с краја на крај у изабраним савраменим алатима за тестирање и оцену квалитета софтвера.