«« ( Date ) »» // «« ( Thread ) »» // ri4sp - 2004

"Specifikacija" programa

by Marko Ninkovic
nedelja, 05. decembar 2004 - 17:36.

Testiram statisticke funkcije kalkulatora.

Za funkciju Ave imamo legalnu klasu n>0 i nelegalnu n=0.
Kad je n=0, kalkulator prijavi gresku "Cannot divide by zero".

Za funkciju s ( = Sqrt( 1/(n-1) * Suma(pow(x[i]-x_sr, 2))) imamo legalnu klasu n>=2, nelegalne klase n=0, n=1 i granicni slucaj n=2.

E, sad nastaju problemi.
Za n=0 ili n=1 kalkulator ne prijavljuje nikakvu gresku, vec vraca 0 kao rezultat.
Slicno vazi i za funkcije Sum, Inv+Sum i Inv+s.

Pitanje je da li da smatramo da u "specifikaciji" programa (koju nemamo) treba da stoji:
"Ako je n = 0 prijaviti gresku za funkcije Ave i Inv+Ave, a za ostale se napraviti lud i vratiti 0", pa da pisemo test koji uspesno prolazi,
ili da stoji "Ako je n=0 prijaviti gresku za sve stat. funkcije", pa da imamo neuspesne testove (i da vratimo program Microsoft-u na doradu).


Generalno, da li svi nasi testovi moraju da prodju uspesno (kao u domacem iz PP) ?