Fakultet organizacionih nauka, Univerzitet u Beogradu

Katedra za elektronsko poslovanje

Testiranje softvera – odabrana poglavlja

STUDIJSKI PROGRAMNAZIV PREDMETANASTAVNIK/NASTAVNICISTATUS PREDMETABROJ ESPB
Informacioni sistemi i tehnologijeTestiranje softvera - odabrana poglavljaĐurić O. Dragan , Tomić B. Bojan , Milić Ž. Miloš Izborni10

Cilj predmeta

Cilj ovog predmeta je osposobljavanje studenata za obavljanje samostalnog naučno-istraživačkog rada u oblasti testiranja softvera, kao i primenu rezultata istraživanja na razvoj i unapređenje metodologije i softverskih alata za testiranje softvera. Poseban cilj je da se studenti osposobe za pisanje naučnih radova i učešće na konferencijama radi prezentacije postignutih rezultata.

Ishod predmeta

Studenti su upoznati sa aktuelnim istraživačkim pravcima u oblasti testiranja softvera.
Studenti su sposobni da samostalno planiraju, sprovode, i prezentuju rezultate naučnih istraživanja u oblasti testiranja softvera.
Studenti su sposobni da uspešno koriste dostignuća u oblasti testiranja softvera, primenjujući saznanja dobijena istraživanjem.

Sadržaj predmeta

Metodologija naučno-istraživačkog rada u oblasti testiranja softvera. Upoznavanje sa aktuelnim istraživačkim problemima i relevantnim istraživačkim pravcima u oblasti testiranja softvera kroz sistematičan pregled časopisa, zbornika radova i monografija iz oblasti softverskog inženjerstva koji se bave temama značajnim za testiranje softvera. Analiza interesantnih radova relevantnih sa gledišta konkretnih interesovanja studenata.
Pregled terminologije testiranja softvera. Кljučna pitanja testiranja (dinamika, konačnost, selektivnost, očekivanost). Istvaživanje veza testiranja sa drugim aktivnostima razvoja softvera. Pregled pravaca naučnih istraživanja i primene rezultata u razvoju softvera sa sledećih aspekata: Nivoi testiranja. Predmet testiranja. Ciljevi testiranja (kvalifikacija testiranja, instalacija testiranja, alfa i beta testiranje, korektnost testiranja, pouzdanost i evaluacija testiranja, regresiono testiranje, performanse testiranja,…). Tehnike testiranja: Tehnike zasnovane na iskustvu testera. Tehnike zasnovane na specifikaciji programa. Tehnike zasnovane na programskom kodu. Tehnike zasnovane na greškama programa. Tehnike zasnovane na korišćenju programa. Tehnike povezane sa prirodom aplikacije. Кombinovanje tehnika. Merenja vezana za testiranje: Evaluacija programa koji se testiraju. Evaluacija testova. Proces testiranja: Upravljanje procesom testiranja. Test dokumentacija. Test uzori. Aktivnosti testiranja.
Dostignuća u automatizaciji i softvereskoj podršci procesu testiranja softvera. Primena tehnika i metoda veštačke inteligencije i mašinskog učenja u testiranju softvera. Softverski alati zasnovani na algoritmima veštačke inteligencije i mašinskog učenja koji se mogu primeniti na testiranje softvera. Primena alata i metoda za testiranje softvera u procesu razvoja softverskih implementacija u kojima se primenjuju algoritmi veštačke inteligencije.
Uporedni pregled i analiza istraživačkih dostignuća vezanih za testiranje i prakse koja se primenjuje u industriji. Istraživanje mogućnosti za unapređenje industrijske prakse primenom rezultata naučnih istraživanja.
Praktičan istraživački rad u odabranom programskom jeziku i alatima za testiranje softvera.
Definisanje teme, planiranje i sprovođenje istraživanja. Pisanje naučnog rada i prezentacija rezultata.

Metode izvođenja nastave

Predavanja (uz pomoć računara, interneta i softverskih biblioteka otvorenog koda) ili mentorski rad, zavisno od broja prijavljenih studenata. Studije slučaja. Samostalan istraživački rad studenta.

 

Literatura

  1. Spinellis, Diomidis. (2017) “State-of-the-art software testing.”IEEE Software 34, no. 5, pp. 4-6 2017.
  2. Goericke, Stephan (Ed.). The future of software quality assurance. Springer Nature, 2020. ISBN: 978-3-030-29511-0
  3. Engström, Emelie, and Kai Petersen. “Mapping software testing practice with software testing research—SERP-test taxonomy.” In 2015 IEEE Eighth International Conference on Software Testing, Verification and Validation Workshops (ICSTW), pp. 1-4. 2015.
  4. Garousi, Vahid, and Mika V. Mäntylä. “When and what to automate in software testing? A multi-vocal literature review.” Information and Software Technology vol. 76, pp. 92-117. 2016
  5. Böhme, Marcel, and Soumya Paul. “A probabilistic analysis of the efficiency of automated software testing.” IEEE Transactions on Software Engineering vol. 42, no. 4, pp. 345-360. 2015
  6. Stol, Klaas-Jan, and Brian Fitzgerald. “The ABC of software engineering research.” ACM Transactions on Software Engineering and Methodology (TOSEM) vol. 27, no. 3, pp. 1-51, 2018.
  7. Aniche, Mauricio, Christoph Treude, and Andy Zaidman. “How developers engineer test cases: An observational study.” IEEE Transactions on Software Engineering. 2021.
  8. Beyer, Dirk. “Advances in Automatic Software Testing: Test-Comp 2022.” In International Conference on Fundamental Approaches to Software Engineering, pp. 321-335. Springer, Cham, 2022.
  9. Kochhar, Pavneet Singh, Xin Xia, and David Lo. “Practitioners’ views on good software testing practices.” 2019 IEEE/ACM 41st International Conference on Software Engineering: Software Engineering in Practice (ICSE-SEIP), pp. 61-70 , 2019.
  10. Kenett, Ron S., Fabrizio Ruggeri, and Frederick W. Faltin, eds. Analytic methods in systems and software testing. John Wiley & Sons, 2018.
  11. Zhang, Jie M., Mark Harman, Lei Ma, and Yang Liu. “Machine learning testing: Survey, landscapes and horizons.” IEEE Transactions on Software Engineering, Vol. 48-1, pp. 1 – 36, 2022.
  12. do Prado Lima, Jackson Antonio, and Silvia Regina Vergilio. “A multi-armed bandit approach for test case prioritization in continuous integration environments.” IEEE Transactions on Software Engineering, Vol. 48-2, pp. 453-465, 2022.
  13. Garousi, Vahid, and Michael Felderer. “Developing, verifying, and maintaining high-quality automated test scripts.”IEEE Software, vol. 33, no.3 , pp.68-75, 2016.
  14. Liu, Shaoying, and Shin Nakajima. “Automatic test case and test oracle generation based on functional scenarios in formal specifications for conformance testing.” IEEE Transactions on Software Engineering, Vol. 48-22, pp. 691-712, 2022.
  15. Arcuri, Andrea. “RESTful API automated test case generation with EvoMaster.” ACM Transactions on Software Engineering and Methodology (TOSEM), vol. 28, no. 1, pp. 1-37, 2019.