Professional Documents
Culture Documents
Ir4ts P05 PDF
Ir4ts P05 PDF
Tok podataka
• Pokrivanje iskaza i odluka mogu prevideti
neke greške u kodu
• Pokrivanje putanja može dovesti do
nepraktičnog broja testova
• Samo neke od putanja mogu otkriti
dodatne greške
• Potrebno je razlikovati i izdvojiti važne
putanje
Tok podataka
• Intuicija – naredbe vrše međusobnu
interakciju kroz tok podataka
• Vrednost podatka se izračunava u jednoj,
a koristi u drugoj naredbi
• Pogrešna vrednost izračunavanja u jednoj
naredbi se može otkriti tek kad neka druga
naredba koristi tu vrednost
Tok podataka
• Testiranje metodom toka podataka koristi
graf toka kontrole (CFG) kako bi se
pronašle anomalije koje mogu uticati na
podatke
• Analiza ovih anomalija dovodi to novih
strategija odabira test putanja, koje
popunjavaju praznine između kompletnog
pokrivanja putanja (previše kompleksno) i
pokrivanja odluka i iskaza (ponekad ne
otkriva sve greške)
Tok podataka
Vrednost x u naredbi 6
je izračunata ili u 1 ili u 4
Loše izračunavanje se
može otkriti tek u 6
Tok podataka
• Testiranje toka podataka je metoda bele
kutije
• Prilikom odabira putanja za testiranje vodi
se računa o lokacijama dodele vrednosti
promenljivama i lokacijama njihove
upotrebe
• Korisne za izbor putanja programa koji
poseduju ugnježdene if-ove i petlje
Tok podataka
• Kategorije koje opisuju stanje podatka
1.D – definisan, kreiran, inicijalizovan
2.U – upotrebljen
– U proračunu
– Kao predikat uslova
Tok podataka
• Podatak smatramo da je definisan u
sledećim slučajevima:
– Pojava u deklaraciji
– Dodela nove vrednosti
– U pitanju je fajl koji je otvoren
– Dinamički alociran
–…
Tok podataka
• Podatak je upotrebljen kada je deo
proračuna ili deo predikata
• Promenljiva se koristi u proračunu (c) kada
se nalazi na desnoj strani izraza dodele
• Promenljiva se koristi u predikatu (p) kada
se direktno pojavi u tom predikatu
Tok podataka
Tok podataka
• Primer – povezati definicije i upotrebe za sledeći
program:
Tok podataka
Tok podataka
Tok podataka
Tok podataka
• (1, 6) i (4, 6) su
def – use parovi
• Definicije na 1, 4
• Upotreba na 6
Tok podataka
• DU par – par definicije i upotrebe neke
promenljive, takav da bar jedna DU
putanja postoji između definicije i upotrebe
• DU putanja – putanja u CFG počev od
definicije, do upotrebe jedne promenljive,
bez dodatnih definicija (promena vrednosti
te promenljive)
Tok podataka
• Dve putanje, 1,2,3,5,6
i 1,2,4,5,6
Tok podataka
• 1,2,3,5,6 je putanja bez dodatnih definicija,
između naredbi 1 i 6
• Ne postoji dodatna promena vrednosti x
• 1,2,4,5,6 nije putanja bez dodatnih
definicija
• Vrednost x je promenjena u 4
• (1,6) je DU par zato što postoji bar jedna
putanja - 1,2,3,5,6 bez dodatnih definicija
promenljive x
Tok podataka
• Postoji nekoliko kriterijuma pokrivenosti
• Najbitniji kriterijumi:
• Svi DU parovi: svaki DU par je izvršen bar
jednim testom (još se zove sve upotrebe)
• Sve DU putanje: svaka prosta (bez petlje)
putanja je izvršena bar jednim testom
• Sve definicije: za svaku definiciju, postoji bar
jedan test koji izvršava DU par koji sadrži tu
definiciju
Tok podataka
• Svi DU parovi (upotrebe)
• Potrebno je testovima
pokriti:
• Def 1, upotreba 6
• Def 1, upotreba 7
• Def 4, upotreba 6
• Def 4, upotreba 7
Tok podataka
• Sve DU putanje
• Potrebno je testovima
pokriti:
• Def 1, upotreba 6
ILI
Def 1, upotreba 7
• Def 4, upotreba 6
ILI
Def 4, upotreba 7
Tok podataka
• Dva tipa upotrebe promenljivih
• Upotreba se naziva predikatskom (p-use) ako se
pojavljuje u predikatskom izrazu neke naredbe
kontrole toka (if, while…)
• U suprotnom, naziva se računskom
(computational use ili c-use)
• Svaka je podskup DU parova (svih upotreba)
• Sve p-upotrebe + sve c-upotrebe = svi DU
parovi (sve upotrebe)
Tok podataka
Tok podataka
Tok podataka
Tok podataka
• Sve definicije – 100% pokrivenost ako izvršimo bar po
jedan DU par koji je sadrži
Tok podataka
• Svi DU parovi – 100% pokrivenost, svaki DU par je
pokriven bar jednom
Tok podataka
• Sve DU putanje
• 100% pokrivenost – svaka prosta putanja od svake
definicije do svih upotreba te definicije izvršena
• Jednostavna putanja u CFG – svaki njen deo se
posećuje minimalan broj puta (npr. otvorene putanje, 1
iteracija kroz petlju)
• Na prethodnom primeru, osim putanja koje pokrivaju
testovi za sve DU parove, posto je još dve putanje
0-1-4-5-9-10 i 1-4-5-9-10
• Nije ih moguće pokriti testovima
Tok podataka
• Postoje još neke strategije osim tri najopštije koje su već
opisane (pokrivanje definicija, DU parova, DU putanja)
• Zasnovane na tipu upotreba promenljivih (p-use i c-use):
1. Pokrivanje svih p-upotreba
2. Pokrivanje svih c-upotreba
3. Sve c-upotrebe, neke p-upotrebe
4. Sve p-upotrebe, neke c-upotrebe