Wat is geautomatiseerde softwaretests?
Software wordt getest om te bevestigen dat alle geldige ingangen correct worden geïnterpreteerd en uitgevoerd, terwijl onjuiste ingangen worden weggegooid. Tests bevestigen ook dat resultaten efficiënt worden gegenereerd en dat een grote hoeveelheid gegevens zonder hik kan worden verwerkt. Testen kan handmatig of elektronisch worden uitgevoerd. Geautomatiseerde softwaretests omvatten het gebruik van gespecialiseerde software om de code te testen die in ontwikkeling is. Zulk testen komt ten goede aan het softwareontwikkelingsproces, wanneer oordeelkundig toegepast.
Handmatige tests zijn afhankelijk van de nauwgezetheid van de mensen die de tests uitvoeren. Handmatig testen van software is tijdrovend en vereist voor de meeste toepassingen een aanzienlijk aantal testers en ontwikkelaars. Dit verhoogt de kosten van ontwikkeling. Handmatig testen heeft bovendien de beperking dat grote hoeveelheden gegevens, of grote aantallen gelijktijdige gebruikers of ingangen, niet gemakkelijk kunnen worden getest.
Geautomatiseerde softwaretests controleren programmatisch de uitvoering van de test en de evaluatie van de output. De testsoftware levert invoer, die overeenkomt met verschillende omstandigheden, voor de software die wordt geëvalueerd. Voor elke set voorwaarden vergelijkt de testsoftware de werkelijke resultaten met de gewenste resultaten en houdt statistieken bij over het totale gedrag van de doelsoftware. Na een "run" biedt de testsoftware meestal samenvattingsresultaten zodat mensen snel kunnen bepalen wat ze moeten verhelpen.
Bij geautomatiseerde softwaretests worden de vervelende taken die betrokken zijn bij het testen, zoals inloggen of het invoeren van gegevens zoals postadressen, gemechaniseerd. Grote combinaties van omstandigheden kunnen in elke run worden getest. Omdat geautomatiseerd testen het gebruik van computers en software met zich meebrengt, maakt het ook de simulatie van grote hoeveelheden invoergegevens of extreem snelle invoer mogelijk. Elke run van een aantal testcondities kan binnen enkele uren worden voltooid. Daarom is geautomatiseerd testen erg handig voor regressietests, wat ervoor zorgt dat een nieuwe functie of bugfix niet eerder per ongeluk werkende code heeft gebroken.
Sommige recente ontwikkelingsmethoden, zoals Extreme Programming, benadrukken dat tests beschikbaar zijn vóór codering. De ontwikkelingsmethoden benadrukken dat regressietests meerdere keren per dag worden uitgevoerd om de correctheid van de software tijdens de ontwikkeling te waarborgen. Als het softwareteam zich aan deze methode moet houden voor belangrijke software, wordt het verplicht dat geautomatiseerde softwaretests worden gebruikt.
De automatiseringstestsoftware moet de gewenste ingangen en uitgangen krijgen. Een manier om dit te doen is door handmatige testomstandigheden in de software op te slaan. Een andere manier is om code te schrijven om verschillende condities te genereren, binnen de acceptabele limieten van de te testen software. De basis van geautomatiseerde softwaretests is dus beslist menselijke inspanning. De geautomatiseerde testsoftware kan op zichzelf niet verder gaan.
Geautomatiseerde softwaretests hebben aanzienlijke kosten met betrekking tot de aan te schaffen software en het gebruik ervan. Dus, of te automatiseren, en welk deel van het testen om te automatiseren, zijn belangrijke beslissingen. Geautomatiseerd testen is niet geschikt voor functies en omgevingen die naar verwachting aanzienlijk zullen veranderen. In de meeste toepassingen is een combinatie van handmatig en geautomatiseerd testen geschikt.