Tips for webapplikasjonstesting

Webtesting er annerledes enn stasjonær applikasjonstesting. I Web Application Testing bruker vi vanligvis en nettleser (klienten) for å be om et nettsted fra en webserver ved å kommunisere med serveren via HTTP eller HTTPS.

Det er viktig at vi som testere, når vi er involvert i Web Testing, skal være kjent med det grunnleggende om HTTP for å få en god forståelse av hvordan webapplikasjoner fungerer.

I Web Testing, bortsett fra funksjonell testing av individuelle og integrerte komponenter, blir noen av testtypene som Performance, Security, Cross-browser og Responsiveness som ikke nødvendigvis er nødvendig i testing av desktop applikasjoner, av stor betydning i Web Application Testing. Dette er fordi webapplikasjoner er åpne for mange publikum, så ytelse må redegjøres for.


I tillegg er webapplikasjoner mer utsatt for sikkerhetsangrep som DDos og SQL Injection, og hvis et nettsted er målrettet, kan nedetiden være veldig kostbar, så det bør også legges stor vekt på sikkerhetstesting.



Testing av nettjenester

Flere nettsteder bygges ved hjelp av webtjenester. Disse gir testere en mulighet til å teste nettapplikasjonen i isolerte komponenter i stedet for en fullverdig integrert webapplikasjon.


Fordelene med å teste nettjenester isolert er:


  • Ingen nettleser involvert - Vi kan kommunisere direkte med en webtjeneste så lenge vi vet endepunktet og hvilke parametere vi skal sende.


  • Mye raskere - Ettersom vi målretter mot isolert nettjeneste, er det ingen bilder, javascript eller css å laste inn, så svaret er mye raskere.


  • Enklere feilsøking - Hvis vi støter på et problem når vi tester en nettjeneste, er det mye lettere å finne årsaken til problemet, og feilsøking blir mindre smertefull.



  • Mer kontroll - vi har direkte kontroll over hvilken forespørsel vi sender til nettjenesten, slik at vi kan bruke alle slags data til feilscenarier for webtjenester.

Vi kan bruke SopaUI verktøy for å teste en nettjeneste.



Ytelsestesting

Performance Testing er spesielt viktig i Web Testing ettersom webapplikasjonen blir utsatt for potensielt mange publikum.

Når vi tester nettapplikasjoner, må vi ikke bare sørge for at nettstedet er stabilt, vi må også sørge for at applikasjonen ikke krasjer når den utsettes for stor belastning på serveren.


Dessverre glemmer de fleste prestasjonstesting av webapplikasjonen, eller utsetter testingen rett før utgivelsen som er for sent. Hvis det er noe fundamentalt galt i designet eller koden som kan påvirke ytelsen, ville vi ikke vite om det før det er for sent.

Den beste tilnærmingen er å kjøre en ytelseskontroll så ofte som funksjonelle regresjonstester, slik at vi har tillit til at ytelsen ikke har gått tilbake som en del av endringene i kodebasen.

Jmeter er et populært verktøy for åpningstest for belastningstesting som kan brukes til å se etter ytelsen til et nettsted. Den kan også integreres i en CI-server.



Nettprøving på tvers av nettlesere

Siden det er forskjellige antall nettlesere, må vi sørge for at nettapplikasjonen fungerer som forventet på dem alle (i det minste de viktigste, dvs. Google Chrome, Mozilla Firefox og Microsoft Internet Explorer), for ikke å glemme Opera og Safari.


Som med all testing, må vi vite hvilke nettlesere og deres versjoner applikasjonen støtter, og deretter planlegge testingen deretter.

Å teste alt i hver nettleser kan være veldig tidkrevende, og derfor kan vi bruke automatiserte verktøy for å verifisere funksjonalitet i forskjellige nettlesere.

Videre er det online tverrleser-testverktøy som gjør livet lettere for testere å utføre testene sine på forskjellige nettlesere.

Når det gjelder personlig erfaring, er antall nettleserrelaterte problemer svært få og hovedsakelig relatert til svært gamle versjoner av nettlesere, eller CSS gir ikke riktig layoutproblemer.


Derfor er det ikke nødvendig å kjøre alle testtilfeller i alle nettlesere, da det kan være veldig tidkrevende (selv når det er automatisert) for veldig liten gevinst, og sjansen for at noe ikke fungerer veldig lavt.

Den beste tilnærmingen er å kjøre alle testsakene i en stor nettleser, og deretter velge en håndfull viktigste scenarier og kjøre dem på resten av nettleserne.



Test automatisering

Flertallet av selskaper som utvikler webapplikasjoner, arbeider i en smidig utviklingsmodell med hyppige utgivelser, derav et behov for hyppige tester. I webtesting kan testautomatisering være til stor fordel fordi den fjerner byrden ved repetitivt arbeid.

I tillegg til å verifisere funksjonalitet, kan vi også bruke automatiserte skript til å generere testdata som vi trenger under webtesting.

En annen måte automatisering kan hjelpe i manuell testing er verktøy som Selen WebDriver kan ta skjermbilder av nettlesersiden. Hvis vi trenger å visuelt se etter et stort antall sider, f.eks. Vi vil vite hvordan den lokaliserte teksten gjengis på forskjellige nettsider. Vi kan bruke verktøyet til å gå gjennom sidene og ta skjermbilder og deretter raskt bekrefte visuelt.

For mer informasjon, se Test automatiseringstips og beste praksis



Analyserer HTTP-trafikk

Ofte er det behov for å analysere HTTP-trafikken fra nettleseren til nedstrøms-serverne. Ved å analysere nettrafikken kan vi grave ned til detaljene i hver forespørsel og svar.

I Web Testing er det spesielt nyttig å analysere HTTP-trafikk når du tester tredjepartsporingskoder, for eksempel Google Analytics-koder eller omniture-koder på nettsider.

Ikke bare kan vi verifisere at kodene inneholder riktige verdier, vi kan faktisk teste at forespørslene sendes til de aktuelle tredjepartssystemene, og at vi får et gyldig svar, vanligvis 200 OK-svarkode.

For å kunne visualisere og registrere HTTP-trafikk, må vi bruke et passende verktøy som fungerer som en proxy og kan lytte til forespørsler og svar mellom klienten, vanligvis en nettleser, og serverne.

Her er noen av de mest populære verktøyene vi kan bruke til å analysere HTTP-trafikk:

Wireshark hvis du vil se alt skjer i nettverket.

Spelemann hvis du bare vil overvåke HTTP / s-trafikk.

Live HTTP-overskrifter hvis du er i Firefox og vil ha et raskt plugin bare for å se overskriftene.

FireBug kan også få deg den informasjonen og gir et fint grensesnitt når du jobber med en enkelt side under utviklingen. Jeg har brukt den til å overvåke AJAX-transaksjoner.



Responsive nettsteder og mobiltesting

Flere mennesker får tilgang til nettsteder fra mobiltelefonene sine. Dette betyr at nettesting ikke lenger er begrenset til nettlesere på stasjonære datamaskiner. Vi må nå teste webapplikasjoner på mobile plattformer samt stasjonære datamaskiner.

Det er to typer webapplikasjoner for mobile enheter, de som er målrettet utviklet for mobile plattformer, og de som er 'responsive', dvs. det er bare en versjon av webapplikasjonen bygget for stasjonære og mobile enheter, men applikasjonen gjengir og er vises forskjellig avhengig av størrelsen på enheten.

Begge typene krever testing på mobile enheter og / eller simulatorer.

Andre viktige elementer for nettesting

Under nettesting, så vel som funksjonstesting, må vi også sjekke for og ikke begrenset til:

  • Javascript
  • CSS
  • Informasjonskapsler
  • tilgjengelighet
  • Døde lenker
  • UX og layout
  • HTML-gyldighet
  • Sikkerhet
  • Nettleseroppdatering
  • Vinduendring