69
Verifikacija softvera Briga o kvalitetu softvera Milena Vujoˇ sevi´ c Janiˇ ci´ c www.matf.bg.ac.rs/~milena Matematiˇ cki fakultet, Univerzitet u Beogradu

Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

  • Upload
    others

  • View
    19

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Verifikacija softvera— Briga o kvalitetu softvera —

Milena Vujosevic Janicic

www.matf.bg.ac.rs/~milena

Matematicki fakultet, Univerzitet u Beogradu

Page 2: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Pregled

1 Razvoj softvera i greske

2 Tehnike verifikacije softvera

3 Automatske formalne metode verifikacije softvera

4 Formalne metode

5 Umesto zakljucka...

Milena Vujosevic Janicic Verifikacija softvera

Page 3: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Pitanja

PitanjaNa koji sve nacin neispravan softver utice na svet oko nas?Sta obuhvata verifikacija softvera?Koji su osnovni pristupi i problemi koji se javljaju u okviruverifikacije softvera?Koje su specificnosti automatske staticke verifikacije softvera?Kakvi su svetski trendovi u ovoj oblasti?Kako ce biti organizovan kurs?

Milena Vujosevic Janicic Verifikacija softvera

Page 4: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Razvoj softveraBriga o kvalitetu softvera(Ne)ispravanost softvera

Pregled

1 Razvoj softvera i greskeRazvoj softveraBriga o kvalitetu softvera(Ne)ispravanost softvera

2 Tehnike verifikacije softvera

3 Automatske formalne metode verifikacije softvera

4 Formalne metode

5 Umesto zakljucka...

Milena Vujosevic Janicic Verifikacija softvera

Page 5: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Razvoj softveraBriga o kvalitetu softvera(Ne)ispravanost softvera

Softver je sastvani deo svih aspekata nasih zivota

Milena Vujosevic Janicic Verifikacija softvera

Page 6: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Razvoj softveraBriga o kvalitetu softvera(Ne)ispravanost softvera

Razvoj softvera

Razvoj softvera obuhvata ...... metode, principe i procedure potrebne da se procesom izradesoftvera dode do efikasnog i pouzdanog proizvoda

Razvoj softvera je ...... slozen proces izrade softvera koji obuhvata veliki broj razlicitihaktivnosti vezanih za:

analizu sistema, specifikaciju zahteva,projektovanje i implementacijusoftvera,brigu o kvalitetu softvera (verifikacija ivalidacija softvera, skraceno V & V),odrzavanje softvera

Milena Vujosevic Janicic Verifikacija softvera

Page 7: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Razvoj softveraBriga o kvalitetu softvera(Ne)ispravanost softvera

Studentski i industrijski projekti

V&V softvera u okviru razvoja studentskog softveraProces V&V kod studenata sprovodi se pri kraju procesa razvojasoftvera koriscenjem malog broja test primera. Obicno cini od 2%do 5% ukupnog napora razvoja.

V&V softvera u okviru razvoja industrijskog softveraProces V&V u industriji sprovodi se tokom celokupnog razvojasoftvera i cini 30% do 50% ukupnog napora.

Zasto postoji ovako velika razlika?U cemu su osnovne razlike izmedu studentskih i industrijskihprojekata?

Milena Vujosevic Janicic Verifikacija softvera

Page 8: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Razvoj softveraBriga o kvalitetu softvera(Ne)ispravanost softvera

Studentski i industrijski projekti

Osnovne razlikeDuzina upotrebe softveraNacin upotrebe softveraBroj korisnikaOcekivanjaCena pada...

Milena Vujosevic Janicic Verifikacija softvera

Page 9: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Razvoj softveraBriga o kvalitetu softvera(Ne)ispravanost softvera

Quality Assurance - QA - briga o kvalitetu softvera

Briga o kvalitetu softvera ...... je od sustinske vaznosti za sve aspekte softvera.

Sta obuhvata briga o kvalitetu softvera?

Sta je kvalitetan softver?Kako se meri kvalitet softvera?

Milena Vujosevic Janicic Verifikacija softvera

Page 10: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Razvoj softveraBriga o kvalitetu softvera(Ne)ispravanost softvera

Kvalitet softvera

Sta je kvalitetan softver?Atributi kojima se meri kvalitet softvera su:

Staticki atributi kvaliteta — strukturiranost koda, cenaodrzavanja koda, mogucnost testiranja koda, prisutnostkorektne i kompletne dokumentacijeDinamicki atributi kvaliteta: pouzdanost (reliability),ispravnost (correctness), kompletnost (completeness),konzistentnost (consistency), lakoca koriscenja (usability),performanse (performance)

Milena Vujosevic Janicic Verifikacija softvera

Page 11: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Razvoj softveraBriga o kvalitetu softvera(Ne)ispravanost softvera

Kvalitet softvera

Znacenja nekih atributaKompletnost se odnosi na raspolozivost svih osobina koje sutrazene u zahtevima ili u korisnickim uputsvima. Nekompletansoftver je onaj koji nema implementirane sve zahtevane osobineKonzistentnost se odnosi na pridrzavanje opsteg skupa pravila ikonvencija koje se podrazumevaju (na primer, boje dugmica uintefejsu treba da prate ocekivanu konvenciju boja)Lakoca koriscenja se odnosi na nacin koriscenja aplikacije ioslanja se na psiholoske karakteristike korisnikaPerformanse se odnose na vreme koje aplikacija koristi daobavi neki trazeni zadatak...

Milena Vujosevic Janicic Verifikacija softvera

Page 12: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Razvoj softveraBriga o kvalitetu softvera(Ne)ispravanost softvera

Kvalitet softvera

Milena Vujosevic Janicic Verifikacija softvera

Page 13: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Razvoj softveraBriga o kvalitetu softvera(Ne)ispravanost softvera

Validacija vs verifikacija

QA obuhvata ...Validaciju — Da li specifikacija zadovoljava korisnicke potrebe?Verifikaciju — Da li softver zadovoljava specifikaciju? (Da li softversadrzi nedostatke? Da li je softver ispravan?)

Milena Vujosevic Janicic Verifikacija softvera

Page 14: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Razvoj softveraBriga o kvalitetu softvera(Ne)ispravanost softvera

Validacija vs verifikacija

Milena Vujosevic Janicic Verifikacija softvera

Page 15: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Razvoj softveraBriga o kvalitetu softvera(Ne)ispravanost softvera

Validacija vs verifikacija

Milena Vujosevic Janicic Verifikacija softvera

Page 16: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Razvoj softveraBriga o kvalitetu softvera(Ne)ispravanost softvera

Validacija vs verifikacija

Sta je vaznije?Validacija ili verifikacija?

Milena Vujosevic Janicic Verifikacija softvera

Page 17: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Razvoj softveraBriga o kvalitetu softvera(Ne)ispravanost softvera

http://www.leptonica.com/cachedpages/perlis-epigrams.html

Alan Dzej Perlis (engl. Alan Jay Perlis)...

... (Pitsburg, 1. april 1922 — Nju Hejven, 7.februar 1990) je bio americki naucnik koji sebavio racunarstvom, poznat po svom pionir-skom bavljenju razvojem programskih jezikai kao prvi dobitnik Tjuringove nagrade.

”It is easier to change the specificationto fit the program than vice versa.”

Milena Vujosevic Janicic Verifikacija softvera

Page 18: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Razvoj softveraBriga o kvalitetu softvera(Ne)ispravanost softvera

Zasto uopste postoje greske?

Da li su greske u softveru neminovnost?Zasto postoje greske u softveru?

Milena Vujosevic Janicic Verifikacija softvera

Page 19: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Razvoj softveraBriga o kvalitetu softvera(Ne)ispravanost softvera

Zasto uopste postoje greske?

Softver razvijaju ljudiGreske su sastavni deo nasih zivotaLjudi prave greske u razmisljanju, akcijama i proizvodimaGreske se pojavljuju svuda gde ljudi sprovode akcije i praveodluke

Milena Vujosevic Janicic Verifikacija softvera

Page 20: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Razvoj softveraBriga o kvalitetu softvera(Ne)ispravanost softvera

Greske su svuda oko nas

Milena Vujosevic Janicic Verifikacija softvera

Page 21: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Razvoj softveraBriga o kvalitetu softvera(Ne)ispravanost softvera

Greskaproizvodi→ Nedostatak

uzrokuje→ Padpravi→ Incident

posledice→ ...

Milena Vujosevic Janicic Verifikacija softvera

Page 22: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Razvoj softveraBriga o kvalitetu softvera(Ne)ispravanost softvera

Na koji sve nacin neispravan softver utice na svet oko nas?

NeprijatnostiMobilni telefoni, Internet pregledaci, muzicki uredaji...

Neprijatnosti

Apple Maps gives us directions to nowhere (2012)

Milena Vujosevic Janicic Verifikacija softvera

Page 23: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Razvoj softveraBriga o kvalitetu softvera(Ne)ispravanost softvera

Koliko kosta neprijatnost?

Postoji veliki izbor, vreme tolerancije gresaka je proslo:

50% korisnika obrise mobilnu aplikaciju zbog samo jedne greske50% aplikacija se skine i koristi samo jednom

Milena Vujosevic Janicic Verifikacija softvera

Page 24: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Razvoj softveraBriga o kvalitetu softvera(Ne)ispravanost softvera

Na koji sve nacin neispravan softver utice na svet oko nas?

Materijalni gubici

Poslovni softver, banke, gubici podataka (virusi)...

Love virus, 2000Desetine miliona zarazenih racunara, znacajan gubitak podataka,steta od oko 10 milijardi dolara

Knight Capital Group, 2012

Izgubili su $460 miliona dolara za samo 45 minuta usled greske usoftveru kojom je pokrenuta pogresna verzija softvera.

Milena Vujosevic Janicic Verifikacija softvera

Page 25: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Razvoj softveraBriga o kvalitetu softvera(Ne)ispravanost softvera

(Ne)ispravnost softvera

Cena neispravnosti softvera — 2002. godineNeispravan softver kosta americku ekonomiju 59.5 milijardidolara godisnje.*

Ranije otkrivanje gresaka moglo bi da ustedi 22 milijardedolara godisnje.*

*The Economic Impacts of Inadequate Infrastructure for Software Testing, USNational Institute of Standards and Technology (NIST), 2002.

Milena Vujosevic Janicic Verifikacija softvera

Page 26: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Razvoj softveraBriga o kvalitetu softvera(Ne)ispravanost softvera

(Ne)ispravnost softvera

Cena neispravnosti softvera — sada?Jos veca...

Broj linija koda se duplira svake dve godineBroj defekata po liniji koda je isti u zadnjih 10 godina.

Milena Vujosevic Janicic Verifikacija softvera

Page 27: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Razvoj softveraBriga o kvalitetu softvera(Ne)ispravanost softvera

Na koji sve nacin neispravan softver utice na svet oko nas?

Fatalne poslediceAvioni, automobili, vozovi, aparati u zdravstvu, svemirske letilice,nuklearne elektrane

Ariane 5, 1996Ariane 5, 1996 raspala se 37s posle lansiranja usled greske ukonverziji (64bit u 16bit), steta 370 000 000 $

Milena Vujosevic Janicic Verifikacija softvera

Page 28: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Razvoj softveraBriga o kvalitetu softvera(Ne)ispravanost softvera

Koliko kostaju ovakve greske?

Dhahran raketa, 1991Raketa je pogodila cilj i ubila 28 vojnika: zbog greske u softverunije ispaljena protivodbrana

Therac 25, 1986Vise ljudi je umrlo kao posledica predoziranja radijacijom usledneispravnosti softvera uredaja za terapijsku radijaciju.

Milena Vujosevic Janicic Verifikacija softvera

Page 29: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Razvoj softveraBriga o kvalitetu softvera(Ne)ispravanost softvera

Greskaproizvodi→ Nedostatak

uzrokuje→ Padpravi→ Incident

posledice→ ...

Therac 25Incident — Pacijent je umroPad — Prekoracena je bezbedna doza zracenjaNedostatak — U softveru je nedostajala provera opsegafrekvencije zracenja koja se primenjujeGreska — (1) Programer je zaboravio da stavi proveru opsegafrekvencije zracenja, (2) tehnicar je uneo vrednost van opsega

Milena Vujosevic Janicic Verifikacija softvera

Page 30: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Razvoj softveraBriga o kvalitetu softvera(Ne)ispravanost softvera

Odnos kvalitet-ispravnost

Da li postoji nacin da se napravi potpuno ispravan softver?Da li je kvalitetan softver ispravan?Da li je ispravan softver kvalitetan?Koje tehnike za verifikaciju softvera postoje?

Milena Vujosevic Janicic Verifikacija softvera

Page 31: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Dinamicka verifikacija softveraStaticka verifikacija softvera

Pregled

1 Razvoj softvera i greske

2 Tehnike verifikacije softveraDinamicka verifikacija softveraStaticka verifikacija softvera

3 Automatske formalne metode verifikacije softvera

4 Formalne metode

5 Umesto zakljucka...

Milena Vujosevic Janicic Verifikacija softvera

Page 32: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Dinamicka verifikacija softveraStaticka verifikacija softvera

Tehnike verifikacije softvera

Pristupi verifikaciji softveraDinamicka verifikacija softveraStaticka verifikacija softvera

Milena Vujosevic Janicic Verifikacija softvera

Page 33: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Dinamicka verifikacija softveraStaticka verifikacija softvera

Dinamicka verifikacija softvera

Dinamicka verifikacija softvera obuhvata ...... tehnika ispitivanja ispravnosti koda u toku njegovog izvrsavanja.

Najcesci vid verifikacije softvera je ...... testiranje. Testiranje se cesto koristi kao sinonim za verifikacijusoftvera. Testiranje se cesto koristi i kao sinonim za validaciju iverifikaciju softvera.

Milena Vujosevic Janicic Verifikacija softvera

Page 34: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Dinamicka verifikacija softveraStaticka verifikacija softvera

Dinamicka verifikacija softvera

Testiranje je lako...... samo pustis program i proveris da li radi ili ne radi...

Milena Vujosevic Janicic Verifikacija softvera

Page 35: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Dinamicka verifikacija softveraStaticka verifikacija softvera

Dinamicki pristupi verfikaciji softvera

TestiranjeTestiranje je tehnika izvrsavanja programa sa namerom da sepronade sto vise mogucih defekata ili da se stekne dovoljnopoverenja u sistem koji se testira.

Kada se testira i sta se testira?Testiranje je aktivnost koja je prisutna u svakoj fazi razvojasoftvera. Plan testiranja zavisi od primenjene metodologije razvojasoftvera i prilagodava se svakom konkretnom projektu.

Milena Vujosevic Janicic Verifikacija softvera

Page 36: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Dinamicka verifikacija softveraStaticka verifikacija softvera

Kako i koliko testirati?

Sta garantuje bolji kvalitet koda?Veci broj test primera?Duze vreme trajanja testiranja?... ?

Strategije testiranjaMetod odredivanja reprezentativnog skupa podataka nad kojima cese vrsiti testiranje:

Visok potencijal otkrivanja gresakaRelativno mala velicinaVisok stepen poverenja u pouzdanost softvera

Milena Vujosevic Janicic Verifikacija softvera

Page 37: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Dinamicka verifikacija softveraStaticka verifikacija softvera

Gde pronaci dobre test primere?

Specifikacija programaTestiranje crne kutije — funkcionalno testiranje, generisanje testprimera bez razmatranja interne strukture koda

Kod programaTestiranje bele kutije — strukturno testiranje, generisanje testprimera na osnovu interne strukture koda, npr jedinicni testovi.Kriterijum pokrivenosti koda: broj izvrsenih putanja, broj izvrsenihinstrukcija, broj izvrsenih grana...

Specifikacija i kod programaTestiranje sive kutije — mesovita strategija

Milena Vujosevic Janicic Verifikacija softvera

Page 38: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Dinamicka verifikacija softveraStaticka verifikacija softvera

Rucno i automatsko testiranje

Kako ubrzati testiranje?

Kako automatizovati testiranje? Sta se moze i trebaautomatizovati?

Rucno testiranjeNekada je potrebno rucno pokrenuti i proveriti neki test primer

Automatizacija testiranjaTehnike automatizacije procesa testiranja — sastavni deo alata zarazvoj softvera, alati za kontinuiranu integraciju softvera, alati zatestiranje specificnih vrsta softvera...

Milena Vujosevic Janicic Verifikacija softvera

Page 39: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Dinamicka verifikacija softveraStaticka verifikacija softvera

Automatizacija generisanja test primera

Kako ubrzati testiranje?Da li se test primeri mogu automatski generisati?

Automatizacija generisanja test primeraTehnike automatskog generisanja test primera — olaksavanjegenerisanja test primera, npr fuzz testing.

Milena Vujosevic Janicic Verifikacija softvera

Page 40: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Dinamicka verifikacija softveraStaticka verifikacija softvera

Dinamicka analiza koda

U okviru testiranja, koriste se i alati za ...... debagovanje i razne vrste profajliranja.

Milena Vujosevic Janicic Verifikacija softvera

Page 41: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Dinamicka verifikacija softveraStaticka verifikacija softvera

Ali stalno treba imati u vidu...

Edsger Wybe Dijkstra (Tjuringova nagrada 1972)

”Program testing can show the presence of bugs,never their absence”

Testiranje ne moze da dokaze ispravnost softvera...Pravilnim i sistematicnim testiranjem podizemo nivo pouzdanosti ismanjujemo verovatnocu da greske promaknu.Testiranje se ne radi nasumicno, vec je vazno poznavatimetodologiju, procese i principe testiranja.

Milena Vujosevic Janicic Verifikacija softvera

Page 42: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Dinamicka verifikacija softveraStaticka verifikacija softvera

Verifikacija softvera

Da li postoji nacin da se napravi potpuno ispravan softver?Avion? Automobil? Uredaji u zdravstvu? Svemirske letilice?Nuklearne elektrane?

Milena Vujosevic Janicic Verifikacija softvera

Page 43: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Dinamicka verifikacija softveraStaticka verifikacija softvera

Staticka verifikacija softvera

Staticka verifikacija softveraAnaliza ispravnosti programa bez njegovog izvrsavanja — analizaizvornog koda

Vrste staticke verifikacijeRucne provere i pregledi kodaFormalne metode verifikacije softvera — uslovi ispravnostisoftvera iskazuju se u terminima matematickih tvrdenja nastriktno definisanom formalnom jeziku izabrane matematicketeorije.

Milena Vujosevic Janicic Verifikacija softvera

Page 44: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Dinamicka verifikacija softveraStaticka verifikacija softvera

Formalne metode verifikacije softvera

Idealno resenje...Alat koji automatski analizira kod i daje precizne informacije onjegovoj ispravnosti...

Milena Vujosevic Janicic Verifikacija softvera

Page 45: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Dinamicka verifikacija softveraStaticka verifikacija softvera

Formalne metode verifikacije softvera

Fundamentalno ogranicenje

Halting problem je neodluciv* — Ne postoji opsti automatizovannacin za proveravanje da li je neka naredba programa dostizna, pasami tim ni da li je ispravna, odnosno da li je sam program ispravan.

*Alan Turing, On Computable Numbers With an Application to theEntscheidungsproblem, Proceedings of the London Mathematical Society, 1936.

Milena Vujosevic Janicic Verifikacija softvera

Page 46: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Dinamicka verifikacija softveraStaticka verifikacija softvera

Formalne metode verifikacije softvera

Idealno resenje...... ne postoji!

Posledica teorijskog ogranicenjaNije moguce napraviti program koji bi potpuno automatski, ukonacnom vremenu, koristeci konacne resurse, mogao da utvrdiispravnost proizvoljnog programa potpuno precizno.

PreciznostLazna upozorenja i propustene greskeKompromis: Preciznost � Efikasnost

Milena Vujosevic Janicic Verifikacija softvera

Page 47: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Dinamicka verifikacija softveraStaticka verifikacija softvera

Formalne metode verifikacije softvera

Idealno resenje...... ne postoji!

Posledica teorijskog ogranicenjaMoguce je napraviti program koji bi potpuno automatski, ukonacnom vremenu, koristeci konacne resurse, mogao da utvrdiispravnost proizvoljnog programa potpuno precizno.

PreciznostLazna upozorenja i propustene greskeKompromis: Preciznost � Efikasnost

Milena Vujosevic Janicic Verifikacija softvera

Page 48: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Dinamicka verifikacija softveraStaticka verifikacija softvera

Formalne metode verifikacije softvera

Idealno resenje...... ne postoji!

Posledica teorijskog ogranicenjaMoguce je napraviti program koji bi potpuno automatski, ukonacnom vremenu, koristeci konacne resurse, mogao da utvrdiispravnost proizvoljnog programa potpuno precizno.

PreciznostLazna upozorenja i propustene greskeKompromis: Preciznost � Efikasnost

Milena Vujosevic Janicic Verifikacija softvera

Page 49: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Simbolicko izvrsavanjeApstraktna interpretacijaProveravanje modela

Pregled

1 Razvoj softvera i greske

2 Tehnike verifikacije softvera

3 Automatske formalne metode verifikacije softveraSimbolicko izvrsavanjeApstraktna interpretacijaProveravanje modela

4 Formalne metode

5 Umesto zakljucka...

Milena Vujosevic Janicic Verifikacija softvera

Page 50: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Simbolicko izvrsavanjeApstraktna interpretacijaProveravanje modela

Automatske formalne metode staticke verfikacije softvera

Automatske metodeSimbolicko izvrsavanjeProveravanje modelaApstraktna interpretacija

Oslanjaju se na ...Semantiku programskih jezikaAutomatsko dokazivanje teoremaCesto se koriste SMT resavaci

Milena Vujosevic Janicic Verifikacija softvera

Page 51: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Simbolicko izvrsavanjeApstraktna interpretacijaProveravanje modela

Simbolicko izvrsavanje

Simbolicko izvrsavanjePracenje simbolickih umesto konkretnih vrednosti promenljivih

Primer

Milena Vujosevic Janicic Verifikacija softvera

Page 52: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Simbolicko izvrsavanjeApstraktna interpretacijaProveravanje modela

Simbolicko izvrsavanje

PrimeneGenerisanje test primera, otkrivanje mrtvog koda, pronalazenjegresaka, generisanje invarijanti koda...

Primer - pronalazenje gresaka

Milena Vujosevic Janicic Verifikacija softvera

Page 53: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Simbolicko izvrsavanjeApstraktna interpretacijaProveravanje modela

Simbolicko izvrsavanje

IzazoviOgroman broj puteva — kako ih sve obici?Modelovanje naredbi i okruzenjaResavanje uslova

IdejeOsnovne ideje datiraju iz 1976. godine: Symbolic Execution andProgram Testing. James C. King.Medutim, potrebno je bilo da prode vreme kako bi se ideje efikasnorealizovale

KarakteristikePrecizna ali vremenski i memorijski veoma zahtevna tehnika

Milena Vujosevic Janicic Verifikacija softvera

Page 54: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Simbolicko izvrsavanjeApstraktna interpretacijaProveravanje modela

Simbolicko izvrsavanje

AlatiKLEE — alat otvorenog koda, baziran na LLVM infrastrukturi,pronasao veliki broj problema u softveru otvorenog kodaSAGE — alat koji se interno koristi u okviru Microsoft-a zapronalazenje gresakaPEX — .NET platforma, MicrosoftjCUTE — Java, Open Systems LaboratoryJava PathFinder — proveravanje modela sa podrskom zasimbolicko izvrsavanje, NASA Ames Research CenterCode Hunt — generisanje test primera, Microsoft...

Milena Vujosevic Janicic Verifikacija softvera

Page 55: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Simbolicko izvrsavanjeApstraktna interpretacijaProveravanje modela

Apstraktna interpretacija

Apstraktna interpretacijaTeorijski okvir za formalizaciju apstrakcije.Osnovna ideja: konkretna semantika programa je previsekompleksna da bi se o njoj moglo rezonovati. Zbog toga jepotrebno apstrahovati konkretnu semantiku programa u nekakavsveoubhavatni nadskup o kome je moguce efikasno rezonovati.

Milena Vujosevic Janicic Verifikacija softvera

Page 56: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Simbolicko izvrsavanjeApstraktna interpretacijaProveravanje modela

Apstraktna interpretacija

IdejeOsnovne ideje datiraju iz 1977. godine: Patrick Cousot, RadhiaCousot: ”Abstract Interpretation: A Unified Lattice Model forStatic Analysis of Programs by Construction or Approximation ofFixpoints”

KarakteristikeSkalira dobro na velikim programimaNe propusta greske, ali moze imati lazna upozorenjaPrimena u avio-industriji, automobliskoj industriji, svemirskeletilice — neki standardi zahtevaju upotrebu staticke analize iapstaktne interpretacije.

Milena Vujosevic Janicic Verifikacija softvera

Page 57: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Simbolicko izvrsavanjeApstraktna interpretacijaProveravanje modela

Apstraktna interpretacija

AlatiAstree — AbsIntPolyspace Bug Finder — MathWorksCoverity — SynopsysCPAchecker — Free software, Apache 2.0 LicenseFrama-C value analysis — Open source software

Milena Vujosevic Janicic Verifikacija softvera

Page 58: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Simbolicko izvrsavanjeApstraktna interpretacijaProveravanje modela

Proveravanje modela

Proveravanje modelaSistematski prolazak kroz sva moguca stanja sistemaMetodi matematicke logikeAutomatsko trazenje gresaka, sa mogucnoscu generisanjakontraprimera

Osnovni algoritam

Milena Vujosevic Janicic Verifikacija softvera

Page 59: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Simbolicko izvrsavanjeApstraktna interpretacijaProveravanje modela

Proveravanje modela

IdejeOsnovne ideje datiraju iz 1980-tih godina, E. M. Clarke, E. A.Emerson, J. Sifakis (Tjuringova nagrada 2007).

KarakteristikeNajpre verifikacija hardvera, komunikacionih protokola ikonkurentnih sistemaVerifikacija softveraPrecizna tehnika, ali ne skalira dobro na velikim sistemima.

Milena Vujosevic Janicic Verifikacija softvera

Page 60: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Simbolicko izvrsavanjeApstraktna interpretacijaProveravanje modela

Proveravanje modela

AlatiVelike kompanije imaju svoje interne alate za proveravanjemodelaSLAM — MicrosoftCBMC — Carnegie Mellon UniversitySatAbs — University of OxfordLLBMC, LAV — Proveravanje modela na LLVM IRDSVerifier, ESBMC — Federal University of AmazonasBLAST — BerkeleyJava Pathfinder — NASA Ames Research CenterCPAchecker — Free software, Apache 2.0 License

Milena Vujosevic Janicic Verifikacija softvera

Page 61: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Pregled

1 Razvoj softvera i greske

2 Tehnike verifikacije softvera

3 Automatske formalne metode verifikacije softvera

4 Formalne metode

5 Umesto zakljucka...

Milena Vujosevic Janicic Verifikacija softvera

Page 62: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Formalne metode verifikacije softvera

Posledica teorijskog ogranicenjaNije moguce napraviti program koji bi potpuno automatski, ukonacnom vremenu, koristeci konacne resurse, mogao da utvrdiispravnost proizvoljnog programa potpuno precizno.

Milena Vujosevic Janicic Verifikacija softvera

Page 63: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Formalne metode verifikacije softvera

Posledica teorijskog ogranicenjaMoguce je napraviti program koji bi interaktivno, u konacnomvremenu, koristeci konacne resurse, mogao da utvrdi ispravnostnekih programa potpuno precizno.

Milena Vujosevic Janicic Verifikacija softvera

Page 64: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

http://www.leptonica.com/cachedpages/perlis-epigrams.html

Alan Dzej Perlis (engl. Alan Jay Perlis, 1922–1990)...

... poznat po svom pionirskom bavljenjurazvojem programskih jezika, prvi dobitnikTjuringove nagrade.

”It is easier to write an incorrect pro-gram than understand a correct one.”

Milena Vujosevic Janicic Verifikacija softvera

Page 65: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Fromalne metode verifikacije softvera

Tehnike razvoja ispravnog softveraRazvoj iz specifikacije, formalno dokazivanje ispravnosti softverakoji se razvija, najvisi nivo sigurnosti

Najskuplji razvoj softveraZahteva visoko strucne ljudeZahteva upotrebu posebnih alata, npr Coq ili IsabelleNajsporiji ali najpouzdaniji razvojKoristi se u industriji za razvoj kriticnih delova koda, sastavni deorazlicitih standarda

Milena Vujosevic Janicic Verifikacija softvera

Page 66: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Pregled

1 Razvoj softvera i greske

2 Tehnike verifikacije softvera

3 Automatske formalne metode verifikacije softvera

4 Formalne metode

5 Umesto zakljucka...

Milena Vujosevic Janicic Verifikacija softvera

Page 67: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Umesto zakljucka...

Uvod u oblastUticaj neispravnog softvera: neprijatnosti, materijalni troskovi,materijalno nemerljive posledice...Verifikacija softvera: skup metoda, alata i procesa zautvrdivanje ispravnosti softveraOsnovni pristup: testiranje, ali testiranje ne moze da garantujeispravnost softvera

Milena Vujosevic Janicic Verifikacija softvera

Page 68: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Umesto zakljucka...

Uvod u oblastAutomatske staticka verifikacija: neophodni su kompromisiizmedu preciznosti i efikasnostiFormalne metode: za razvoj kriticnih delova aplikacijaTrendovi: razvoj algoritama i integracija alata automatskestaticke verifikacije softvera, primena ovih tehnika u sintezikoda i bioinformatici, poboljsavanje i ubrzavanje metodamamasinskog ucenja

Milena Vujosevic Janicic Verifikacija softvera

Page 69: Veri kacija softvera · Razvoj softvera i gre ske ehnikTe veri kacije softvera Automatske formalne metode veri kacije softvera rmalneFo metode Umesto zaklju cka... Razvoj softvera

Razvoj softvera i greskeTehnike verifikacije softvera

Automatske formalne metode verifikacije softveraFormalne metode

Umesto zakljucka...

Milena Vujosevic Janicic Verifikacija softvera