Arash Bidarian är Test Lead och gästbloggare för denna artikel här på sajten. Det talas mycket om automatisera testning. Bra formulerade och förankrade krav är en förutsättning för kvalitetskontroll i testning. Men är det verkligen rätt riktning att automatisera all testning?
Menar olika saker med QA
Under senaste åren har jag ett flertal gånger stött på frågan ”Är QA död” på olika forum. Där tar man ofta upp vikten av automatiserade tester och argumenterar inte bara för hur automatisering påverkar sättet testning görs idag, utan också hur den helt och hållet ska ersätta den traditionella testningen. Eller som man på många forum också kallar för den manuella testningen.
Min första respons på ”QA död”-frågan är att QA inte kan dö då den inte betyder manuell testning utan kvalitetssäkring. De som ställer just den frågan har inte riktigt koll på terminologin inom test och kvalitet. Om du vill veta mer, använd sökmotorerna på termerna QA och QC.
All automatisering är ett resultat av rigorösa QA-aktiviteter. QC står för kvalitetskontroll. Ett automatiserat test är en QC- eller kvalitetskontroll och oftast en testaktivitet, där det inte spelar någon roll om den genomförs automatiserat eller manuellt. Förfarandet och resultaten är däremot annorlunda.
I min värld är automatisering fortfarande inte komplett QA/kvalitetsarbete om den är enbart baseras på validering av krav och jag skulle vilja kalla den för en check av kraven, eller en bekräftelse på att kraven är levererade under vissa förhållanden. Det är så mycket mer som brukar ingå i kvalitetssäkringen och aktiviteter kring en produkt, och som jag vill påstå att enbart automatisera testerna inte kan säkerställa kvaliteten.
Förändrar testledarens roll
Marknaden för testledare är också under stora förändringar då nästan alla vill satsa på automatiserade tester, och oftast inbakade medan själva utvecklingen pågår. Det är bra. För TDD och BDD i agila sammanhang eller DevOps kan man se en minskad efterfrågan av testledare och manuellt testarbete.
I teorin är idén ypperligt bra och jag har även sett bra DevOps-verksamheter som säger att de har lyckats med helautomatiserade tester under hela utvecklingskedjan. Jag vill ändå hävda att i praktiken ser jag ofta tendenser på missar och problem orsakade av automatiserade tester eftersom då testningen görs mer ”utvecklarmässigt” än ”testmässigt”. Kanske mindre kritisk vy.
Jag har även sett en utökning av uppdrag där verksamheter frågar efter testledare som ska kunna C#, .NET, Java eller samtliga för att genomföra testledningsarbetet. Där tycker jag att man är fel ute då det finns stor risk att få en renodlad utvecklare med fel fokus på kvalitet. Självklart är inte alltid så fallet, men jag ser inte relevansen. Det är ungefär som att en projektledare eller krav- och verksamhetsanalytiker ”by default” ska ha kodningskompetens även om det kan vara bra att ha.
Jag saknar lite av de produktiva diskussionerna mellan testledare/testare, kravanalytiker, och utvecklingsteam, där man ifrågasätter själva kraven. Man skriver kod till automatiserade tester för krav som är godkända av en eller flera personer, oberoende av om kraven verkligen är rätt eller inte.
Dåliga eller undermåliga krav är bland de vanligaste problemen, oskrivna krav eller underförstådda krav, diskussioner och förhandlingar om kravens utformning, användarvänlighet, och användbarhet av det som implementerats… Detta kan upptäckas under själva testningen men kan ha förbisetts i tidigare steg. Problem av den typen och andra typer löser sig inte självt genom att skriva automatiserade tester.
Missförstå mig inte här – jag är inte emot automatisering – snarare är jag, och har varit en av anhängarna av automatisering av tester men inte på bekostnad av att minimera testnings- och kvalitetssäkringsaktiviteten för att ersätta den med kodningsaktivitet. Testningsaktiviteten är alltid en intelligent och medveten aktivitet som behöver full koncentration och uppfinningsrikedom. Om resurser tas bort från den aktiviteten och istället läggs på kodning, då tycker jag att man drar ner på kvaliteten av testerna också.
Testar QA med AI
Och så det här med AI. Om man ändå satsar på AI, varför inte satsa på AI som programmerar intelligenta produkter och tjänster utan buggar redan från början istället? Ska då samma utvecklare skriva bristfälliga program för att en Test-AI skrivet av samma utvecklare leta efter fel på den?
Kan automatisering alltid ersätta ”good old fashioned” manuell testning? Det beror på. I vissa verksamheter är det nödvändigt att automatisera hela kedjan, medan i vissa andra delvis eller helt omöjligt.
Lagom balans mellan de automatiska och manuella testerna är det optimala. De ”onödiga” manuella testarbetena är på väg bort på flera ställen, men samtidigt går inte de ”goda” manuella testerna att tas bort för att helt och hållet ersättas med automatiserade tester.
Tyckte du om denna artikel? Dela gärna! > Läs fler artiklar
Vill du ställa en fråga eller tipsa om något du vill läsa om? > Välkommen att höra av dig