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.

11

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

2

Slika 2: Primjer testiranja

 

3

Slika 3: Primjer testiranja

 

4

Slika 4: Primjer testiranja

 

5

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

 

 

6

Slika 6: Ukupni rezultati testiranja