Het probleem van technische schuld in geautomatiseerde tests werd voor het eerst erkend met de groei van automatisering - toen het aantal tests honderden en duizenden ging tellen, werd het onderhoud vaak duurder dan de ontwikkeling zelf, en architectonische fouten namen toe.
Aan het begin van automatisering werden tests snel geschreven, vaak zonder patronen, zonder standaarden en zonder latere refactoring. Dit leidde ertoe dat de repositories van geautomatiseerde tests verouderd raakten, gebroken werden door veranderingen in de applicatie, en het onderhoud steeds meer inspanning vroeg.
Belangrijke kenmerken:
Is een hoog percentage dekking van de code door tests een indicator voor de afwezigheid van technische schuld?
Nee, formele dekking van de code garandeert geen kwaliteit en levensvatbaarheid van de testbasis: er kunnen verouderde of "onnodige" tests zijn.
Is het voldoende om templates van geautomatiseerde tests één keer te schrijven om technische schuld uit te sluiten?
Nee, infrastructuur en patronen vereisen altijd herziening en ontwikkeling naarmate het project groeit.
Kun je volledig zonder handmatige testing, als geautomatiseerde tests goed gestructureerd zijn?
Nee, er zullen altijd handmatige smoke/regressie/niche-tests nodig zijn, en geautomatiseerde tests zijn noodzakelijk voor regelmatige "monitoring" van stabiele functionaliteit.
Geautomatiseerde tests werden zonder review geschreven, de structuur veranderde gedurende het project, een deel van de tests werd irrelevant - 40% van de tests faalde door veranderingen in de applicatie.
Voordelen:
Nadelen:
In het team wordt om de twee weken een review van geautomatiseerde tests en refactoring uitgevoerd, de architectuur wordt onderhouden volgens de aangenomen standaarden, tests zijn nauw verbonden met actuele user-stories.
Voordelen:
Nadelen: