View
20
Download
0
Category
Preview:
Citation preview
Verifikacija softvera— Briga o kvalitetu softvera —
Milena Vujosevic Janicic
www.matf.bg.ac.rs/~milena
Matematicki fakultet, Univerzitet u Beogradu
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Razvoj softvera i greskeTehnike verifikacije softvera
Automatske formalne metode verifikacije softveraFormalne metode
Umesto zakljucka...
Milena Vujosevic Janicic Verifikacija softvera
Recommended