Wat is een testautomatiseringsraamwerk?
Een testautomatiseringsraamwerk is een set tools die worden gebruikt om geautomatiseerde softwaretests uit te voeren. Kaders voor testautomatisering bieden aanzienlijke voordelen ten opzichte van handmatig testen en worden vaak gebruikt bij snelle softwareontwikkeling. Met deze frameworks kunnen softwareontwikkelaars tests maken, tests uitvoeren en testresultaten analyseren. Een testautomatiseringsraamwerk kan worden aangedreven door code, gegevens, een grafische gebruikersinterface (GUI) of een combinatie hiervan.
Kaders voor testautomatisering zijn vereist om te voldoen aan de behoeften van snelle softwareontwikkeling. In de klassieke ontwikkelingscyclus van watervalsoftware was softwaretesten een discrete fase die werd uitgevoerd na implementatie of codering. Als zodanig waren door de mens uitgevoerde tests typisch.
Veel ontwikkelingsteams hebben het watervalmodel vervangen door verschillende agile softwareontwikkelingsmethoden, die doorgaans snelle, iteratieve ontwikkeling vereisen. Snelle ontwikkeling heeft de behoefte aan snel testen gecreëerd. Met een testautomatiseringsraamwerk kan een softwareteam frequente, geautomatiseerde tests uitvoeren op basis van code. Bijvoorbeeld, in plaats van een afzonderlijke testfase na de ontwikkeling te vereisen, zou een team dat een testautomatiseringsraamwerk gebruikt, ervoor kunnen kiezen om een volledige reeks tests 's nachts uit te voeren, evenals kleinere brokken geautomatiseerde tests gedurende de dag als wijzigingen worden aangebracht in de bron code.
Het meest gebruikte type framework is het codegedreven framework, dat wordt gebruikt om white-box testen uit te voeren. Codegedreven frameworks vereisen van ontwikkelaars dat ze kleine stukjes code schrijven, in de vorm van unit-tests, om de softwarefunctionaliteit of -prestaties te testen. Ontwikkelaars die codegedreven frameworks gebruiken, moeten ervoor zorgen dat hun software op een testbare manier wordt geschreven, dat wil zeggen dat de code zodanig moet worden gemodulariseerd dat een eenheids-test een codefragment kan oproepen en het resultaat kan verifiëren. Deze frameworks bevatten meestal een implementatie van xUnit, waarbij "x" varieert op basis van de programmeertaal die wordt getest.
GUI-gestuurde testframes worden gebruikt om black-box testen uit te voeren, met behulp van een softwaretool zoals een gebruiker dat zou doen, via muis- en toetsenbordinvoer. Ze kunnen bestaan uit scripts die zijn geschreven door ontwikkelaars om een reeks functies uit te oefenen, of ze kunnen bestaan uit door tool gegenereerde scripts, zoals scripts voor opnemen en afspelen. Een potentieel nadeel van deze frameworks is dat het script wordt afgebroken wanneer de GUI verandert. Sommige GUI-automatiseringsframeworks genereren mogelijk een script dat door een ontwikkelaar kan worden bewerkt in geval van GUI-wijzigingen, en bij andere kan het nodig zijn dat de gebruiker een nieuwe opname- en afspeelsessie maakt.
Datagestuurde testframes voeren softwaretests uit met behulp van gegevens, en deze tests werken meestal met gegevenstabellen die zowel invoer als uitvoer specificeren. De gegevens kunnen op verschillende locaties worden bewaard, zoals databases, spreadsheets of tekstbestanden. Scripts kunnen worden geschreven om softwaremethoden uit te voeren waarbij de ingangen als parameters worden gebruikt en om de retourwaarde van de softwaremethode te valideren tegen de uitgang. Al het andere dat kan worden gevarieerd, zoals de omgeving waaronder de test wordt uitgevoerd, kan ook worden opgeslagen met de gegevens en worden gescheiden van het testscript. Een voordeel van deze frameworks is de scheiding van gegevens en logica, wat vaak leidt tot minder langdurig onderhoud.