kvalita SW se da merit
pocet stiznosti od uzivatelu
pocet chyb nalezenych v produkci
cena za udrzbu
naklady na dalsi vyvoj
validace
= aplikace dela to co si zakaznik preje
dosazeno pomoci komunikace se zakaznikem
verifikace
overeni ze aplikace dela co rika specifikace
testovani - cíl
nalezt chyby, rozbit aplikaci
debuggovani
cil: nalezt priciny chyb
- jednoduche pri vyvoji
- tezke na produkci
- nemuzeme si jen tak pripojit debugger
- aplikace uz obsahuje realna data
specifičnost webové aplikace při testování
Unit Testy
Unit Testy - co testují
= jedna metoda vetsinou vyzaduje vice testu
Pokrytí testy a důsledky
> 90% aplikacni logiky
pomahaji pri refaktoringu, pridavani funkcionalit, …
specialni pripad je kdyz se testy pisou jeste pred zacatkem programovani - kriticke systemy, nuti nas premyslet o navrhu aplikace
pri zajisteni nezavislosti testu mame dva pristupy
stubs
mocks
stubs
mocks
frameworky dynamicky za behu vytvari obrazy rozhrani (ktere potrebujeme) s dynamicky definovanym chovanim
musime mit dobrou architekturu (SoC)
je jednodussi vytvaret objektu nez volat primo HTTP pozadavky -> nemusime mit aktivni HTTP server
levne
netestuji funkcionalitu celeho systemu
funkci testy
Funkční testy - možnost
testovaci scenare
automatizovane funkci testy
testovaci scenare
krok po kroku co ma uzivatel delat
kam ma kliknout, jaky data kam zadat, jaky vystup ma ocekavat
vyvojari by nemeli psat funkci testy protoze vi jak se aplikace ma chovat a za jakych okolnosti pada
mely by je psat lidi co nejsou seznameni s tim jak aplikace vnitrne funguje
automazitované funkční testy
Selenium
Robot framework
integracni testy
testovani ze pripojeni a posilani zprav mezi dvouma systemama funguje tak jak ma
vykonostni testy
smoke testy
testy “nepouzitelnosti”
typy logu
Moderni logovani
...
```
Example:
HTTP/1.1 200 OK
Content-Type: text/plain
Content-Length: 14
...
Hello, world!
```