Wat is een testautomatiseringskader?
Een testautomatiseringsraamwerk is een set tools die worden gebruikt om geautomatiseerde softwaretests uit te voeren. Testautomatiseringskaders bieden aanzienlijke voordelen ten opzichte van handmatige testen en worden vaak gebruikt in 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.
Testautomatiseringskaders zijn vereist om te voldoen aan de behoeften van snelle softwareontwikkeling. In de levenscyclus van de klassieke waterval -softwareontwikkeling was softwaretesten een discrete fase die werd uitgevoerd na implementatie of codering. Als zodanig waren door mensen uitgevoerd tests typisch.
Veel ontwikkelingsteams hebben het watervalmodel vervangen door verschillende Agile Software Development -methoden, die doorgaans snelle, iteratieve ontwikkeling vereisen. Snelle ontwikkeling heeft een behoefte aan snel testen veroorzaakt. Een testautomatiseringsraamwerk maakt een software -thee mogelijkM om frequente, geautomatiseerde testen op een codebasis uit te voeren. In plaats van bijvoorbeeld een afzonderlijke testfase na ontwikkeling te vereisen, kan een team dat een testautomatiseringsraamwerk gebruikt, ervoor kiezen om 's nachts een volledige reeks tests uit te voeren, evenals kleinere brokken geautomatiseerde tests gedurende de dag omdat wijzigingen worden aangebracht in de broncode.
Het meest gebruikte type framework is het codegedreven framework, dat wordt gebruikt om witte-boxtests uit te voeren. Codegestuurde frameworks vereisen dat ontwikkelaars kleine fragmenten van code schrijven, in de vorm van eenheidstests, om softwarefunctionaliteit of prestaties te testen. Ontwikkelaars die code-gedreven frameworks gebruiken, moeten ervoor zorgen dat ze hun software op een manier die testbaar is schrijven-dat wil zeggen dat de code zodanig moet worden gemoduleerd dat een eenheidstest een fragment van code kan aanroepen en het resultaat kan verifiëren. Deze frameworks bevatten meestal een implementatie van xunit, waarbij "x" varieertgebaseerd op de programmeertaal die wordt getest.
GUI-aangedreven testframeworks worden gebruikt om black-box-testen uit te voeren, met behulp van een softwaretool als gebruiker zou, via muis- en toetsenbordinvoer. Ze kunnen bestaan uit scripts geschreven door ontwikkelaars om een reeks functionaliteit uit te oefenen, of ze kunnen bestaan uit gegenereerde scripts van tool, zoals record-en-play-back scripts. Een potentieel nadeel van deze kaders is dat het script zal breken wanneer de GUI verandert. Sommige GUI-automatische frameworks kunnen een script genereren dat door een ontwikkelaar kan worden bewerkt in het geval van GUI-wijzigingen, en anderen vereisen mogelijk dat de gebruiker een nieuwe record-en-play-back-sessie maakt.
Gegevensgestuurde testframeworks voeren softwaretests uit met behulp van gegevens, en deze tests werken doorgaans met gegevenstabellen die zowel ingangen als uitgangen specificeren. De gegevens kunnen op verschillende locaties worden bewaard, zoals databases, spreadsheets of tekstbestanden. Scripts kunnen worden geschreven om softwaremethoden uit te voeren die de input gebruiken alsparameters en om de retourwaarde van de softwaremethode te valideren tegen de uitvoer. Al het andere dat kan worden gevarieerd, zoals de omgeving waaronder de test wordt uitgevoerd, kan ook worden opgeslagen met de gegevens en gescheiden van het testscript. Een voordeel van deze kaders is de scheiding van gegevens en logica, wat vaak leidt tot lager onderhoud op lange termijn.