Hva er automatisert programvaretesting?
Programvare testes for å bekrefte at alle gyldige innganger er tolket og utført korrekt, mens feil innganger kastes ut. Tester bekrefter også at resultatene genereres effektivt, og at et stort volum data kan håndteres uten hikke. Testing kan utføres manuelt eller elektronisk. Automatisk testing av programvare innebærer bruk av spesialisert programvare for å teste koden som er under utvikling. Slike tester er fordelene med programvareutviklingsprosessen når den brukes på en god måte.
Manuelle tester avhenger av omhyggeligheten til de som utfører testen. Manuell testing av programvare er tidkrevende, og trenger et betydelig forhold mellom testere og utviklere for de fleste applikasjoner. Dette hever kostnadene for utvikling. I tillegg har manuell testing begrensningen at store datamengder, eller store antall samtidige brukere eller innganger, ikke kan testes enkelt.
Automatisert programvaretesting kontrollerer programmatisk testeksekvering og evaluering av output. Testprogramvaren gir innganger, som samsvarer med forskjellige forhold, til programvaren som blir evaluert. For hvert sett av betingelser sammenligner testprogramvaren de faktiske resultatene med de ønskede resultatene, og opprettholder statistikk over den totale oppførselen til målprogramvaren. Etter et ”løp” gir testprogramvaren vanligvis sammendragsresultater slik at folk raskt kan bestemme hva de skal avhjelpe.
I automatisert programvaretesting mekaniseres de kjedelige oppgavene som er involvert i testing som å logge på eller legge inn data som postadresser. Store kombinasjoner av forhold kan testes i hver kjøring. Siden automatisert testing involverer bruk av datamaskiner og programvare, muliggjør det også simulering av store mengder inputdata eller ekstremt raske innganger. Hver kjøring av et antall testforhold kan fullføres i løpet av timer. Derfor er automatisert testing veldig nyttig for regresjonstesting, noe som sikrer at en ny funksjon eller feilretting ikke utilsiktet knuste tidligere arbeidskode.
Noen nyere utviklingsmetoder som Extreme Programming understreker at tester er tilgjengelige før koding. Utviklingsmetodologiene understreker at regresjonstesting utføres flere ganger hver dag for å sikre riktigheten av programvaren når den utvikler seg. Hvis programvareteamet må følge denne metodikken for betydelig programvare, blir det obligatorisk at automatisert programvaretesting brukes.
Programvaren for automatiseringstesting må mates inn ønsket inngang og utgang. En måte å gjøre dette på er å lagre manuelle testforhold i programvaren. En annen måte er å skrive kode for å generere forskjellige forhold, innenfor de akseptable grensene for programvaren som skal testes. Dermed er grunnlaget for automatisert programvaretesting definitivt menneskelig innsats. Den automatiserte testprogramvaren kan ikke gå utover dette på egen hånd.
Automatisering av programvaretesting har en betydelig kostnad i forhold til programvaren som skal anskaffes, så vel som i bruken. Så om det skal automatiseres, og hvilken del av testingen som skal automatiseres, er sentrale beslutninger. Automatisert testing er ikke passende for funksjoner og miljøer som forventes å endre seg betydelig. I de fleste applikasjoner er en blanding av manuell og automatisert testing egnet.