Testiranje internetskih aplikacija – (II./II.)

Testiranjem se ne može utvrditi funkcioniranje proizvoda u svim uvjetima, ali može se utvrditi u kojim uvjetima proizvod ne radi ispravno. Opseg testiranja aplikacije često uključuje ispitivanje i izvršenje koda u različitim sredinama i uvjetima te proučavanje svih aspekata koda. U trenutačnom naprednom okruženju, organizacije za testiranje mogu biti odvojene od razvojnog tima. Postoje različite uloge za članove testnog tima. Podaci dobiveni testiranjem aplikacije mogu se upotrijebiti za ispravljanje samog procesa u kojem se aplikacija razvija.

 

testiranjeweb_1.png

Slika 1. Metode potrebne za uspješno testiranje internetske aplikacije

 

Testiranje funkcionalnosti

Testiranje funkcionalnosti odnosi se na testove koji potvrđuju određenu radnju ili ispravnost napisanog koda. To se obično nalazi u dokumentaciji kod korisničkog zahtjeva. Testovi funkcionalnosti daju odgovor na pitanje „Može li korisnik učiniti to?“. Testiranje funkcionalnosti fokusira se na unošenje određenih ulaznih parametara u sustav i verifikaciju izlaznih podataka iz sustava i stanje sustava.

 

Neki od zahtjeva testiranja funkcionalnosti:

  • provjera ulaza svih obveznih polja
  • provjera postojanja oznake da je neko polje obvezno (*)
  • aplikacija treba obavijestiti korisnika o nepopunjenosti samo ako se radi o obveznom polju
  • ako korisnik unosi datum, testirati oblik datuma i ispravnost
  • ako polje od korisnika zahtijeva unos brojeva, testirati obavijest o greški prilikom unosa slova ili znakova
  • provjeriti smije li korisnik upisivati negativne brojeve u polje
  • testirati maksimalno dopuštenu veličinu ulaza koju korisnik može upisati
  • testirati postojanje obavijesti ako korisnik upiše predugačak tekst
  • testirati postoji li poruka za svaku akciju unosa/izmjene/brisanja
  • testirati očekivani format valute
  • provjeriti dozvoljavaju li polja unos specijalnih znakova
  • provjeriti sortiranje podataka
  • testirati ispravnost tipki u sustavu
  • testirati postojanje univerzalne obavijesti o greški u sustavu
  • testirati ispravnost prijenosa datoteka na poslužitelj
  • testirati preuzimanje datoteka s poslužitelja
  • provjeriti slanje e-pošte
  • provjeriti je li JavaScript podržan
  • provjeriti što će se dogoditi ako korisnik obriše kolačiće
  • ...

 

 

Ispitivanje pouzdanosti

Pouzdanost internetske aplikacije smanjuje se zbog prekida rada poslužitelja ili zbog nastanka greške u aplikaciji. Prekid rada je nedostupnost poslužitelja koja nastaje uslijed niske skalabilnosti aplikacije. Prekid rada može nastati i kada se očekivani ulazi razlikuju od onih koje je korisnik upisao. Osim prekida rada koji može nastati zbog korisnika, prekid rada može se dogoditi i ako sustav dođe u nedefinirano stanje, tj. stanje koje nije opisano programskim kodom.

 

Prekid rada može se podijeliti u tri grupe:

  • greške poslužitelja, mreže ili preglednika koje onemogućavaju isporuku traženih informacija
  • greške u izvornom sadržaju koje sprječavaju prikupljanje informacije od korisnika zbog nepostojećih ili nedostupnih datoteka
  • greške koje uzrokuje korisnik koje nastaju zbog neprikladne upotrebe aplikacije.

 

 

Ispitivanje upotrebljivosti

Testiranje upotrebljivosti je tehnika koja služi za procjenu proizvoda u suradnji s korisnicima. Test daje rezultat interakcije sustava s korisnicima.

 

Neki od zahtjeva ispitivanja upotrebljivosti:

  • sadržaj aplikacije ne smije sadržavati gramatičke greške
  • veličina i oblik slova trebaju biti u skladu sa specifikacijom
  • tekst aplikacije treba imati smisleno poravnanje
  • obavijesti o greškama unutar sustava trebaju biti jednostavne, razumljive i čitke
  • opis ulaza svakog polja treba biti istaknut
  • sva polja za unos trebaju biti jednaka
  • razmak između polja, teksta i oznaka treba biti konstantan i uočljiv
  • sve tipke trebaju imati jasno označenu funkciju
  • povratak na naslovnicu treba biti jasno vidljiv
  • polja koja nije dopušteno popunjavati treba jasno obilježiti (zasiviti)
  • provjeriti ispravnost prikaza slika, videa i poveznica
  • provjeriti izgled aplikacije na drugim rezolucijama
  • provjeriti postojanje trake za pomicanje, ako je potrebna
  • sva polja za unos trebaju biti dostupna preko tipkovnice
  • provjeriti vidljivost teksta unutar padajućih izbornika
  • ...

 

 

Testiranje sučelja

Testiranje sučelja provjerava postojanje uspješne komunikacije između dviju ili više strana sustava koji mogu i ne moraju biti povezani zajedničkim programskim jezikom. Kod internetskih aplikacija sučelje može biti API (aplikacijsko programsko sučelje), internetski servis ili neka druga aplikacija.

 

Testiranje obuhvaća:

  • razmjenu podataka između internetskih servisa i aplikacije
  • razmjenu podataka između aplikacije i baze podataka.

 

Neki od zahtjeva testiranja sučelja:

  • provjeriti ispravan rad poslužitelja i njegovu vidljivost na mreži
  • provjeriti postojanje obavijesti o greški prilikom izvođenja upita od strane aplikacije
  • provjeriti što se događa s aplikacijom kada ne postoji veza s poslužiteljem
  • provjeriti što će se dogoditi ako korisnik prekine transakciju u procesu
  • ...

 

 

Testiranje baze podataka

Testiranje spremišta je testiranje koje pokazuje kako se aplikacija ponaša pod opterećenjem, tj. spremaju li se podaci u zato predviđena mjesta i postoji li dovoljna količina prostora na disku.

 

Neki od zahtjeva testiranja baze podataka su:

  • provjeriti postojanje baze podataka
  • provjeriti odgovaraju li parametri baze podataka specifikaciji
  • provjeriti postojanje tablica i opisne parametre
  • provjeriti stupce u tablici i koje je vrijednosti moguće upisati
  • provjeriti zadane vrijednosti za stupce
  • provjeriti postojanje primarnih i stranih ključeva
  • provjeriti procedure
  • provjeriti parametre koje procedure primaju
  • provjeriti što se događa ako neki parametri nedostaju
  • provjeriti vraća li procedura vrijednost
  • provjeriti da li se podaci zapisuju/izmjenjuju ili brišu
  • provjeriti veličinu baze podataka
  • provjeriti vrijeme odgovora na zahtjev
  • ...

 

 

Testiranje kompatibilnosti

Testiranje kompatibilnosti služi za provjeru je li internetska aplikacija kompatibilna s internetskim preglednikom, operacijskim sustavom i uređajem na kojem se koristi.

 

Neki od zahtjeva testiranja kompatibilnosti:

  • testirati aplikaciju u što većem broju internetskih preglednika
  • provjeriti verzije HTML-a, CSS-a i JavaScripta i njihovu podržanost od strane raznih preglednika
  • provjeriti slikovne sadržaje i njihovo prikazivanje na različitim rezolucijama
  • provjeriti oblik slova i njegovo prikazivanje na raznim platformama
  • testirati skaliranje cjelokupne aplikacije na ekranima različitih rezolucija
  • ...

 

 

Testiranje performansi

Internetska aplikacija trebala bi se jednako ponašati u slučaju normalnog opterećenja kao i u slučaju velikog opterećenja. Testiranje performansi potvrđuje zadovoljava li  sustav zahtjeve specifikacije.

 

Testiranje performansi uključuje:

  • Testiranje opterećenja kojemu je cilj testirati posluživanje što većeg broja korisnika. Internetska aplikacija treba osigurati normalan rad u slučaju maksimalnog opterećenja bez gubitka podataka koje korisnik prosljeđuje poslužitelju ili suprotno.
  • Testiranje stresa podrazumijeva preopterećenje sustava izvan tražene specifikacije. Cilj je preopteretiti poslužitelj i internetsku aplikaciju te vidjeti ponašanje cjelokupnog sustava. Ako se dogodi ispad sustava, potrebno je provjeriti oporavlja li se sustav uspješno i koliko je vremena potrebno za oporavak.

 

Neki od zahtjeva testiranja performansi:

  • provjeriti ponašanje cjelokupnog sustava pod raznim opterećenjem i usporediti vrijeme izvršavanja akcija
  • provjeriti zadovoljava li trenutačna računalna oprema specifikaciju
  • ustanoviti kritične dijelove sustava koji mogu uzrokovati najveće opterećenje
  • provjeriti kako nadogradnja aplikacije utječe na ponašanje sustava
  • ...

 

 

Testiranje sigurnosti

Testiranje sigurnosti proces je kojim se provjerava štiti li informacijski sustav podatke i održava li funkcionalnost.

 

Testiranje sigurnosti opisujemo pojmovima:

  • povjerljivost – kome su sve podaci dostupni
  • integritet – točnost podataka
  • autentičnost – utvrđivanje identiteta korisnika
  • autorizacija – može li korisnik izvršiti određenu akciju
  • dostupnost – jesu li su podaci dostupni kada ih korisnik zahtijeva.

 

Neki od zahtjeva testiranja sigurnosti:

  • provjeriti kojim se protokolom aplikacija koristi za ispostavu podataka
  • provjeriti isporučuju li se osjetljivi podaci u šifriranom obliku
  • provjeriti jesu li su određene akcije dostupne isključivo putem autentikacija
  • provjeriti nemogućnost pristupa u slučaju neispravnih podataka za autentikaciju
  • provjeriti postojanje obavijesti o neispravnoj autentikaciji
  • provjeriti da se zaštićenim akcijama ne može pristupiti direktno iz alatne trake preglednika
  • provjeriti mogu li korisnici vidjeti isključivo vlastite podatke
  • provjeriti što se događa izmjenom kolačića unutar internetskog preglednika
  • ...

 

 

PRIMJER TESTIRANJA

testiranjeweb_2.png

Slika 2: Primjer testiranja

 

testiranjeweb_3.png

Slika 3: Primjer testiranja

 

testiranjeweb_4.png

Slika 4: Primjer testiranja

 

testiranjeweb_5.png

Slika 5: https://stemstipendije.mzo.hr/

 

Funkcionalno testiranje

 

provjera obveznih polja (2/2)

+

vidljivi indikator obveznih polja

-

indikator obavijesti o nepopunjenom polju

+

obavijest o nepostojećem korisniku

+

obavijest o neispravnom unosu

+

dozvoljen unos isključivo HR znakova i obavijest

+

provjera minimalnog i maksimalnog broja znakova

+

skrivanje lozinke

+

indikator komunikacije sa poslužiteljem

+

indikator aktivacije tipke

+

rezultat

9/10

Ispitivanje pouzdanosti

 

obavijest o prekidu veze sa poslužiteljem

+

onemogućena upotreba ako nema mreže

+

obavijest o nepostojećim datotekama

+

poslužitelj dostupan 24/7

+

nemogućnost nastanka greške na poslužitelju zbog korisničkog unosa

+

rezultat

5/5

Ispitivanje upotrebljivosti

 

nepostojanje gramatičkih grešaka

+

veličina i oblik slova u skladu sa specifikacijom

+

jednostavne obavijesti

+

usklađenost forme

+

istaknuta polja za unos

+

jasno opisana tipka za akciju

+

slika jasno vidljiva

+

polja za unos dostupna preko tipkovnice i klikom

+

rezultat

8/8

Testiranje sučelja

 

obavijest o komunikaciji sa poslužiteljem

+

obavijest o nastanku greške u komunikaciji

+

mogućnost prekida transakcije

-

prikaz statusa transakcije

-

rezultat

2/4

Testiranje baze podataka

 

baza podataka definirana u skladu s specifikacijom

+

mogućnost upisa podataka

+

procedure primaju točno definirane parametre

+

nemogućnost predaje krivog tipa podataka

+

univerzalna obavijest o neispravnoj akciji nad bazom

+

primarni i strani ključevi povezani

+

optimizirana veličina baze

-

nemogućnost identičnih zapisa

+

šifrirana lozinka

+

provjera parametara i kolone u koju se opisuju

-

rezultat

8/10

Testiranje kompatibilnosti

 

stranica dostupna na svim preglednicima

-

stranica dostupna na svim platformama

-

stranica dostupna na svim rezolucijama

-

stranica dostupna na mobilnim uređajima

-

stranica koristi nestandardni oblik slova koji isporučuje pregledniku

+

rezultat

1/5

Testiranje performansi

 

stranica zadovoljava specificirani broj aktivnih korisnika

+

isporuka sadržaja unutar 5 sekundi

+

učitavanje sadržaja unutar 5 sekundi

+

rezultat

3/3

Testiranje sigurnosti

 

stranica dostupna putem sigurnih protokola

+

stranica dostupna samo određenim korisnicima preko IP adrese

+

nemogućnost pristupa zaštićenim stranicama

+

postojanje obavijesti o neispravnoj autentifikaciji

+

šifrirani podaci od korisnika prema poslužitelju

+

rezultat

5/5

 

 

testiranjeweb_6.png

Slika 6: Ukupni rezultati testiranja