Agile testautomatiseringsframework
โก Slimme samenvatting
Agile testautomatisering past geautomatiseerde controles toe binnen korte sprints, waarbij de eisen wekelijks veranderen en een testsuite die is gebouwd voor een stabiele watervalrelease al snel een onderhoudslast wordt in plaats van een vangnet.
Agile automatiseringstests
Agile automatiseringstests Testautomatisering is de praktijk van het gebruik van testautomatisering binnen een Agile-leveringsproces. Het doel is om softwareontwikkeling effectiever en efficiรซnter te maken, terwijl de kwaliteit wordt gewaarborgd en de tijd en middelen die een release verbruikt, worden beheerst. Omdat tests parallel aan de ontwikkeling van de functionaliteit worden geschreven, is de praktijk sterk afhankelijk van de coรถrdinatie tussen ontwikkelaars en testers.
Sinds de Agile-methodologie de moeizame realiteit van het watervalmodel wilde elimineren, is de invloed ervan voelbaar in automatisering testen ook. De twee disciplines moeten bewust gecombineerd worden:
Automatisering in Waterfall versus automatisering in Agile
In een traditionele softwaretestlevenscyclus wordt geautomatiseerd testen pas mogelijk zodra de applicatie... stabiel en de eisen zijn vastgesteldHet gaat ervan uit dat... een aanzienlijke hoeveelheid tijd, zeer bekwame automatiseringsspecialisten en aanzienlijke opstartkosten. Het hoofddoel is om de kosten op de lange termijn te verlagen en te bevestigen dat er geen nieuwe defecten zijn geรฏntroduceerd in de bestaande testgevallen.
Geautomatiseerd testen is van nature geen verkennend onderzoek.Omdat het vooral bedoeld is om tijd te besparen en kosten te verlagen. Het is niet ontworpen om nieuwe en innovatieve defecten aan het licht te brengen. Geautomatiseerd testen bevestigt meestal gedrag dat al bestaat.
De twee scenario's stellen daarom zeer verschillende eisen aan een testsuite:
| Factor | Automatisering in watervalmodel | Automatisering in Agile |
|---|---|---|
| Toepassingsstatus: | Stabiel en goedgekeurd voordat het scripten begint. | Elke sprint aanpassen, vaak tijdens het scripten. |
| Beschikbare tijd | Een speciale automatiseringsfase | Alles wat binnen een sprint van รฉรฉn tot vier weken past. |
| Wie schrijft de scripts? | Een apart team van automatiseringsspecialisten | Het leveringsteam, de testers en de ontwikkelaars samen |
| Voornaamste doel | Kostenbesparing op de lange termijn voor een grote regressietestsuite | Snelle feedback over de zojuist gebouwde incrementele versie |
| Onderhoudsrisico | Laag, omdat de eisen langzaam veranderen. | Hoog, omdat de eisen voortdurend veranderen. |
Hoe automatiseer je met de Agile-methodologie?
Volgens de eigen definitie maakt de Agile-methodologie een einde aan omslachtige documentatie, zodat nieuwe ideeรซn snel kunnen worden geรฏmplementeerd en mensen vrij met elkaar kunnen samenwerken. Het geeft de voorkeur aan verkennend werk boven papierwerk:
Er bestaat een fundamentele tegenstrijdigheid tussen de basisprincipes van de Agile-methodologie en geautomatiseerd testen. Agile-teams lossen dit op door te beperken wat ze automatiseren in plaats van minder te automatiseren: controles worden in dezelfde sprint als de feature geschreven, gedelegeerd naar het unit- en API-niveau waar ze het goedkoopst te onderhouden zijn, en worden bij elke build uitgevoerd.
Fundamentele punten voor agile testautomatisering
Voordat je sprintcapaciteit inzet voor automatisering, moet je de factoren afwegen die bepalen of een script รผberhaupt kan worden voltooid:
- Ontwerp- en programmeertijd: Elk script moet worden ontworpen, gecodeerd en gecontroleerd alsof het productiecode betreft.
- Validatie aan de hand van testgegevens: Het voltooide script moet worden gevalideerd met de bestaande testgegevens voordat iemand erop kan vertrouwen.
- Doel van de test: Functionele en regressietests brengen verschillende onderhoudskosten en een verschillende levensduur met zich mee.
- Sprint lengte: Een sprint duurt รฉรฉn tot vier weken, meestal twee, waardoor er zelden ruimte is voor een grote scriptinspanning.
Een tweede factor is de verandering in de eisen. Agile is per definitie een techniek om te reageren op door de klant gedreven veranderingen, en leent zich daarom goed voor frequente aanpassingen gedurende de ontwikkeling.
Geautomatiseerd testen is daarentegen het meest nuttig bij stabiele eisen. Het leent zich niet goed voor de constante veranderingen binnen een Agile-methodologie, waardoor de keuze van wat er geautomatiseerd wordt belangrijker is dan de hoeveelheid die geautomatiseerd wordt.
Agile automatiseringstools
De selectie van een relevante automatiseringstool Een andere belangrijke factor bij de implementatie van geautomatiseerd testen binnen een Agile-methodologie is de toegang tot de resources. Gelicentieerde automatiseringstools hanteren bijvoorbeeld strenge beveiligingscriteria voor verschillende typen en niveaus van gebruikers, waardoor beperkt wordt wie toegang heeft tot de resources van dat testautomatiseringsframework.
De agile-methodologie daarentegen legt de nadruk op open samenwerking en onbelemmerde interactie tussen teamleden. Beperkende toegangsregels werken die cohesie tegen en kunnen leiden tot resultaten die noch nuttig, noch bevorderlijk zijn voor het succes van het project.
De prioriteit is het leveren van kwalitatief hoogwaardige automatiseringsscripts binnen de tijd die een Agile-proces toelaat. Kies testcases zorgvuldig, zodat de resulterende scripts later hergebruikt kunnen worden en toch binnen de gestelde tijd afgerond kunnen worden.
Zelfs in een Agile-omgeving moeten sommige tests nog steeds worden uitgevoerd, met name regressietests. In het volgende gedeelte wordt ingegaan op de situaties waarin geautomatiseerd testen van pas komt en hoe dit zich verhoudt tot Agile-testen.
Automatisering testen Concepts Toegepast op Agile
De onderstaande tabel geeft de zeven klassieke voorwaarden die het automatiseren van een test rechtvaardigen en de Agile-oplossing voor elk ervan. Slechts drie daarvan zijn naadloos te integreren in een Agile-sprint, en alle drie hebben de vorm van een regressietest:
| # | Het concept van geautomatiseerd testen | Antwoord op de Agile-methodologie |
|---|---|---|
| 1 | De test moet regelmatig herhaald worden. | Dit is waar het concept van regressietesten in beeld komt. |
| 2 | De workflow van de test en de validatie ervan ontwikkelen en veranderen geleidelijk in de loop van de tijd. | Niet geschikt voor Agile-testen, aangezien Agile-testen frequente wijzigingen in de eisen met zich meebrengt. |
| 3 | De test valideert een bedrijfsproces of workflow, en niet de vormgeving, kleur of tabelindeling. | Dit scenario kan worden beschouwd als een vorm van handmatig testen. |
| 4 | De test levert resultaten op voor een regelgevende instantie die eist dat deze resultaten elektronisch worden vastgelegd en gearchiveerd als formeel bewijs van naleving. | Niet geschikt voor de Agile-methodologie, aangezien een uitputtende documentatie geen onderdeel uitmaakt van de Agile-methodologie. |
| 5 | De test is zeer repetitief of bestaat uit vele stappen die elke keer exact hetzelfde moeten worden uitgevoerd, waardoor vermoeidheid bij de tester moet worden vermeden. | Niet geschikt voor de Agile-methodologie. |
| 6 | Het resultaat van de test (geslaagd of niet geslaagd) is relatief eenvoudig te bepalen en vast te leggen met de gekozen automatiseringstool. | Geschikt voor regressietests tijdens Agile-testen die repetitieve en arbeidsintensieve vaardigheden vereisen. |
| 7 | De test moet een aanzienlijke hoeveelheid data in de applicatie invoeren. | Kan worden gebruikt als regressietest. |

.jpg)


