40
Pfleeger and Atlee, Software Engineering: Theory and Practice Page 8.1 © 2006 Pearson/Prentice Hall Sadržaj 8.1 Greške i otkazi softvera 8.2 Pitanja testiranja 8.3 Jedinično testiranje 8.4 Integraciono testiranje 8.5 Testiranje objektno orijentisanih sistema 8.6 Planiranje testa 8.7 Automatizovani alati za testiranje 8.8 Kada treba prestati sa testiranjem 8.9 Primer iz informacionih sistema 8.10 Primer iz prakse 8.11 Šta ovo poglavlje znači za vas

Testiranje programa

Embed Size (px)

DESCRIPTION

Testiranje programa, informatika, racunarstvo, programiranje, tehnologije, it, telekomunikacije

Citation preview

Pfleeger and Atlee, Software Engineering: Theory and Practice

Page 8.1© 2006 Pearson/Prentice Hall

Sadržaj

8.1 Greške i otkazi softvera8.2 Pitanja testiranja8.3 Jedinično testiranje8.4 Integraciono testiranje8.5 Testiranje objektno orijentisanih sistema 8.6 Planiranje testa8.7 Automatizovani alati za testiranje8.8 Kada treba prestati sa testiranjem8.9 Primer iz informacionih sistema8.10 Primer iz prakse8.11 Šta ovo poglavlje znači za vas

Pfleeger and Atlee, Software Engineering: Theory and Practice

Page 8.2© 2006 Pearson/Prentice Hall

Poglavlje 8 Ciljevi

• Vrste grešaka i njihove klasifikacije• Svrha testiranja• Jedinično testiranje• Strategije integracionog testiranja• Planiranje testiranja• Kada treba prestati testiranje

Pfleeger and Atlee, Software Engineering: Theory and Practice

Page 8.3© 2006 Pearson/Prentice Hall

8.1 GREŠKE I SOFTVERSKI OTKAZI Zašto softver otkazuje (fail )?

• Specifikacija pogrešna: nije tačno navedeno šta je kupac tražio i šta mu je potrebno

• Nedostaje neki zahtev• Zahtev koji ne može da se implementira sa

propisanim hardverom i softverom• Greška u dizajnu sistema• Greška u programskom kodu• Algoritam nepravilno ili nepotpuno

implementiran

Pfleeger and Atlee, Software Engineering: Theory and Practice

Page 8.4© 2006 Pearson/Prentice Hall

8.1 GREŠKE I SOFTVERSKI OTKAZI Cilj testiranja

• Cilj testiranja: otkriti greške• Test je uspešan samo ako se greška otkrije

ili ako dođe do otkaza u toku testiranja– Prepoznavanje grešaka je postupak

utvrđivanja zbog koje greške, ili grešaka, je došlo do otkaza

– Ispravljanje grešaka ili otklanjanje grešaka je postupak unošenja izmena u sistem u cilju otklanjanja grešaka

Pfleeger and Atlee, Software Engineering: Theory and Practice

Page 8.5© 2006 Pearson/Prentice Hall

8.1 GREŠKE I SOFTVERSKI OTKAZI Cilj testiranja

• Prilikom izrade softvera, u cilju kontrole kvaliteta napisanog koda,

koristimo veštine iz domena softverskog inženjerstva.

Pfleeger and Atlee, Software Engineering: Theory and Practice

Page 8.6© 2006 Pearson/Prentice Hall

8.1 GREŠKE I SOFTVERSKI OTKAZI Vrste grešaka

• Algoritainska greška• Greške izračunavanja i greške preciznosti

– nastupaju kada se formula pogrešno implementira ili kada ne izračunava rezultat sa zahtevanom preciznošću

• Greška dokumentacije– dokumentacija ne odgovara onome što program zaista radi

• Stresne greške ili greške preopterećenja– performanse sistema postaju neprihvatljive kako se njegove

aktivnosti približavaju specifikovanim granicama

• Greške vremenskog rasporeda ili greške koordinacije

• Greške propusnosti ili greške performanse– sistem ne omogućava performansu i brzinu specifikovanu u

zahtevima

• Greške standarda i procedura

Pfleeger and Atlee, Software Engineering: Theory and Practice

Page 8.7© 2006 Pearson/Prentice Hall

8.1 GREŠKE I SOFTVERSKI OTKAZI Uobičajene algoritamske greške

• se javlja kada algoritam komponente, ili njegova logika, ne proizvode ispravan rezultat za dati ulaz– grananje pre vremena;– prekasno grananje;– ispitivanje pogrešnog uslova;– nedodeljivanje početne vrednosti promenljivim ih

podešavanje invarijanti petlje;– propust pri ispitivanju konkretnog uslova (na

primer, kada može nastupiti deljenje nulom);– poredenje promenljivib neodgovarajućeg tipa

• sintaksne greške

Pfleeger and Atlee, Software Engineering: Theory and Practice

Page 8.8© 2006 Pearson/Prentice Hall

8.1 GREŠKE I SOFTVERSKI OTKAZI Ortogonalna klasifikacija grešaka

Tip greške Značenje

Funkcija Greška utiče na mogućnost, spregu sa korisnikom, sprege sa proizvodom, sprege sa hardverskom arhitekturom ili globalnom strukturom podataka.

Interfejs Greška u međudejstvu sa drugim komponentama ili upravljačkim programima putem pozivanja, makroa, kontrolnih blokova ili listi parametara

Provera Greška u logici programa koja ne uspeva pravilno da proveri vah'anost podata ka i njihove vrednosti pre ujihove upotrebe

Dodeljivanje Greška u strukturi podataka ili u inicijallzaciji bloka koda

Vreme/serijalizacija Greška koja utiče na vremenski raspored korištenja deljenih resursa u i resur sa realnog vremena

Gradnja/pakovanje/sjedinjavanje

Greška koja potiče od problema u skladištima, od promena upravljanja ili od kontrole verzija

Dokumentacija Greška koja utiče na štamparu materijal ili napomene vezane za održavanje

Algoritam Greška koja se odnosi na efikasnost ili ispravnost algoritama ili strukture po dataka ali ne i dizajna

Pfleeger and Atlee, Software Engineering: Theory and Practice

Page 8.9© 2006 Pearson/Prentice Hall

8.1 GREŠKE I SOFTVERSKI OTKAZI Greške za jedno odeljenje u okviru Hewlett-Packarda

Pfleeger and Atlee, Software Engineering: Theory and Practice

Page 8.10© 2006 Pearson/Prentice Hall

8.2 PITANJA TESTIRANJAOrganizacija testiranja

• Testiranje modula, testiranje komponente ili jedinično testiranje

• Integraciono testiranje• Funkcionalno testiranje• Testiranja performanse• Završni test prihvatanja• Instalacioni test

Pfleeger and Atlee, Software Engineering: Theory and Practice

Page 8.11© 2006 Pearson/Prentice Hall

8.2 PITANJA TESTIRANJA Koraci testiranja

Pfleeger and Atlee, Software Engineering: Theory and Practice

Page 8.12© 2006 Pearson/Prentice Hall

8.2 PITANJA TESTIRANJA Organizacija testiranja

• Bezlično programiranje: gde se programi posmatraju kao komponente većeg sistema, a ne kao vlasništvo onih koji su ih napisali– depersonalizovani razvojni tim se bavi

ispravljanjem greške, a ne prebacivanjem krivice na konkretnog izvršioca

Pfleeger and Atlee, Software Engineering: Theory and Practice

Page 8.13© 2006 Pearson/Prentice Hall

8.2 PITANJA TESTIRANJA Ko vrši testiranje?

• Nezavisan tim za testiranje– izbegavamo konflikt– poboljšanje objektivnosti– testiranje se može obavljati istovremeno sa

kodiranjem

Pfleeger and Atlee, Software Engineering: Theory and Practice

Page 8.14© 2006 Pearson/Prentice Hall

8.2 PITANJA TESTIRANJA Pogledi na predmet testiranja

• Zatvorenu kutiju ili crnu kutiju sa nepoznatim sadržajem: funkcionalnost test objekata

• Otvorena kutija ili bela kutija: koristiti unutrašnju strukturu predmeta testiranja u cilju sprovođenja različitih testova

Pfleeger and Atlee, Software Engineering: Theory and Practice

Page 8.15© 2006 Pearson/Prentice Hall

8.2 PITANJA TESTIRANJA Bela kutija

• Prednost– bez ograničenja vezano za unutrašnju strukturu

• Nedostaci– nije moguće pokrenuti kompletan test

Pfleeger and Atlee, Software Engineering: Theory and Practice

Page 8.16© 2006 Pearson/Prentice Hall

8.2 PITANJA TESTIRANJA Podsetnik 8.2 STRUKTURE KUTIJA

• Crna kutija: opis spoljšnjeg ponašanja• Kutija stanja: crna kutija uz dodatak

informacije o stanju• Bela kutija: Kutija stanja sa opisom

procedure

Pfleeger and Atlee, Software Engineering: Theory and Practice

Page 8.17© 2006 Pearson/Prentice Hall

8.2 PITANJA TESTIRANJA Faktori koji utuču na izbor filozofije testiranja

• broj mogućih logičkih putanja;• prirodu ulaznih podataka;• količinu potrebnog izračunavanja;• složenost algoritama.

Pfleeger and Atlee, Software Engineering: Theory and Practice

Page 8.18© 2006 Pearson/Prentice Hall

8.3 JEDINIČNO TESTIRANJE Ispitivanje koda

• Prolasci kroz kod• Inspekcija koda

Pfleeger and Atlee, Software Engineering: Theory and Practice

Page 8.19© 2006 Pearson/Prentice Hall

8.3 JEDINIČNO TESTIRANJE PODSETNIK 8.3 OPTIMALNA VELIČINA TIMA ZA INSPEKCIJE

• Stopa priprema, a ne veličina tima, određuje efektivnost inspekcije

• Efektivnost i efikasnost tima zavisi od njihovog poznavanja svojih proizvoda

Pfleeger and Atlee, Software Engineering: Theory and Practice

Page 8.20© 2006 Pearson/Prentice Hall

8.3 JEDINIČNO TESTIRANJE Dokazivanje ispravnosti koda

• Tehnike formalnog dokazivanja• Simboličko izvršavanje• Automatizovano dokazivanje teorema

Pfleeger and Atlee, Software Engineering: Theory and Practice

Page 8.21© 2006 Pearson/Prentice Hall

8.3 JEDINIČNO TESTIRANJE Testiranje nasuprot dokazivanja

• Dokazivanje: hipotetičko okruženje• Testiranje: stvarni radni ambijent

Pfleeger and Atlee, Software Engineering: Theory and Practice

Page 8.22© 2006 Pearson/Prentice Hall

8.3 JEDINIČNO TESTIRANJE Koraci u izboru slučajeva testiranja

• Određivanje ciljeva testa • Izbor test slučajeva • Definisanje testa

Pfleeger and Atlee, Software Engineering: Theory and Practice

Page 8.23© 2006 Pearson/Prentice Hall

8.3 JEDINIČNO TESTIRANJE Potpunost testiranja

• Testiranje iskaza• Testiranje grananja• Testiranje putanja• Testiranje putanje od definicije do upotrebe• Testiranje svih upotreba• Testiranje svih upotreba predikata/nekih

upotreba izračunavanja• Testiranje svih upotreba

izračunavanja/nekih upotreba predikata

Pfleeger and Atlee, Software Engineering: Theory and Practice

Page 8.24© 2006 Pearson/Prentice Hall

8.3 JEDINIČNO TESTIRANJE Odnosi snaga strategija testiranja

Pfleeger and Atlee, Software Engineering: Theory and Practice

Page 8.25© 2006 Pearson/Prentice Hall

8.4 INTEGRACIONO TESTIRANJE

• Odozdo-nagore• Odozgo-nadole• Veliki prasak• Senvič integracija• Modifikovana odozgo-nadole• Modifikovana senvič integracija

Pfleeger and Atlee, Software Engineering: Theory and Practice

Page 8.26© 2006 Pearson/Prentice Hall

8.4 INTEGRACIONO TESTIRANJE Terminologija

• Rukovalac komponentom: rutina koja poziva određenu komponentu i saopštava joj slučaj

• Lažna rutina (stab): program specijalne namene koji simulira aktivnost komponente koja nedostaje

Pfleeger and Atlee, Software Engineering: Theory and Practice

Page 8.27© 2006 Pearson/Prentice Hall

8.4 INTEGRACIONO TESTIRANJE Pogled na sistem

• Primer hijerarhije komponenti

Pfleeger and Atlee, Software Engineering: Theory and Practice

Page 8.28© 2006 Pearson/Prentice Hall

8.4 INTEGRACIONO TESTIRANJE Integracija odozdo nagore- primer

• Sekvence testova i njihovih zavisnosti

Pfleeger and Atlee, Software Engineering: Theory and Practice

Page 8.29© 2006 Pearson/Prentice Hall

8.4 INTEGRACIONO TESTIRANJE Integracija odozgo nadole- primer

• Najviša komponenta A je jedina koja se testira izolovano

Pfleeger and Atlee, Software Engineering: Theory and Practice

Page 8.31© 2006 Pearson/Prentice Hall

8.4 INTEGRACIONO TESTIRANJE Integracija velikog praska - primer

• Zahteva i stabove kao i drajvere za testiranje nezavisnih komponenata

Pfleeger and Atlee, Software Engineering: Theory and Practice

Page 8.32© 2006 Pearson/Prentice Hall

8.4 INTEGRACIONO TESTIRANJE Sendvič integracija- primer

• Sistem se posmatra u tri sloja: ciljni sloj u sredini

Pfleeger and Atlee, Software Engineering: Theory and Practice

Page 8.37© 2006 Pearson/Prentice Hall

8.6 PLANIRANJE TESTA

• Svaki korak u procesu testiranja mora da se planira

• Proces testiranja ima1. vlastiti životni ciklus u sklopu razvoja i 2. može da teče paralelno sa drugim

aktivnostima

Pfleeger and Atlee, Software Engineering: Theory and Practice

Page 8.38© 2006 Pearson/Prentice Hall

8.6 PLANIRANJE TESTA

• Pogotovo je potrebno da se planiraju sledeći koraci u procesu testiranja:1. utvrđivanje ciljeva testiranja;2. dizajn slučajeva;3. pisanje slučajeva;4. testiranje slučajeva;5. izvršavanje testova;6. ocenjivanje rezultata testiranja.

Pfleeger and Atlee, Software Engineering: Theory and Practice

Page 8.39© 2006 Pearson/Prentice Hall

8.6 PLANIRANJE TESTA Svrha plana

• Plan testiranja objašnjava: – ko će obaviti testiranje, – zašto se vrše testovi, – kako se testovi vode i – kakav im je raspored

Pfleeger and Atlee, Software Engineering: Theory and Practice

Page 8.40© 2006 Pearson/Prentice Hall

8.6 PLANIRANJE TESTA Sadržaj plana

• Šta su ciljevi testa • Kako će test biti pokrenut • Koji kriterijumi će se koristiti da bi se

odredilo kada je testiranje završeno

Pfleeger and Atlee, Software Engineering: Theory and Practice

Page 8.43© 2006 Pearson/Prentice Hall

8.8 KADA TREBA PRESTATI SA TESTIRANJEM- Još grešaka?

• Verovatnoća pronalaženja greške tokom razvoja

Pfleeger and Atlee, Software Engineering: Theory and Practice

Page 8.50© 2006 Pearson/Prentice Hall

8.11 ŠTA OVO POGLAVLJE ZNAČI ZA VAS

• Važno je shvatiti razliku između – greške

• (problema sa zahtevima, dizajnom, kodom, dokumentacijom ih slučajevima za testiranje) i

– otkaza • (problema u funkcionisanju sistema).

• Cilj testiranja je da se pronađu greške, a ne da se dokaže ispravan rad

Pfleeger and Atlee, Software Engineering: Theory and Practice

Page 8.51© 2006 Pearson/Prentice Hall

8.12 ŠTA OVO POGLAVLJE ZNAČI ZA RAZVOJNI TIM

• Testiranje je i samostalna i grupna aktivnost

• Važno da se radi sa timom na: 1. bezličan način i upotrebi 2. što više raspoloživih metoda u cilju

pronalaženja grešaka u što je moguće 3. ranijim fazama razvoja

Pfleeger and Atlee, Software Engineering: Theory and Practice

Page 8.52© 2006 Pearson/Prentice Hall

8.12 ŠTA OVO POGLAVLJE ZNAČI ZA RAZVOJNI TIM

• Integraciono testiranje je takođe timska aktivnost i zahteva 1. izbor strategije integracije, 2. planiranje testiranja, 3. generisanje slučajeva za testiranje i 4. izvršavanje testova u saradnji sa ostalim

članovima.

Pfleeger and Atlee, Software Engineering: Theory and Practice

Page 8.53© 2006 Pearson/Prentice Hall

8.12 ŠTA OVO POGLAVLJE ZNAČI ZA RAZVOJNI TIM

• Automatizovani alati su korisni u ovim aktivnostima jer pomažu da

1. pažljivo proučite rezultate testiranja i 2. uočite probleme i njihove uzroke