In theorie zouden testautomatiseringsprogramma's of -tools het de testers gemakkelijker maken, tijd vrijmaken en ons een extra ontspanningsdeken bieden voor onze evaluatiedekking.
En zoveel organisaties slagen er niet in om een schaalbare, sterke en goede testautomatiseringsinfrastructuur te implementeren die de geïnvesteerde middelen oplevert en deze zou kunnen besparen. Sommige "Gooi" geschreven Testautomatiseringstaken weg en anderen hielden stand in een voortdurende strijd met hun doelen om een stabiele automatiseringssuite te verdienen.
In de loop der jaren heb ik gezien dat veel bedrijven probeerden hun automatiseringsinspanningen uit te voeren, ik heb gemerkt dat geschreven projecten werden weggegooid, kaders werden omgeschakeld en managers werden ontslagen omdat ze niet voldeden aan wat was beloofd of als doel was gesteld.
Er zijn veel redenen voor mislukking, hoewel automatisering op de lange termijn volkomen logisch is, moeten we begrijpen dat het veel moeilijker is dan het lijkt.
Hieronder staan enkele van de redenen die u moet weten voordat u een sprong vooruit maakt en begint met het bouwen van uw testautomatiseringsproject:
Analyseer en stel vragen: een testautomatiseringstaak is een taak zoals elk ander sollicitatieproject en moet als een taak worden behandeld; Hoe zou u het plannen van een softwareproject verwerken? Laat u leiden door dit idee wanneer u nadenkt over het implementeren van uw testautomatiseringsproject. Wie zou je kiezen voor de baan? Wie zal het geproduceerde product gebruiken? Welke taal of welk kader is het meest geschikt voor de functie? Zou u de uitdagingen en hun richtlijnen begrijpen en een kijkje willen nemen? Zou u zelf een architectuur samenstellen waar u niets vanaf weet, of zou u een adviseur bellen om u met een paar gedachten te adviseren?
Al deze vragen zijn slechts het topje van deze ijsberg van wat je jezelf zou moeten stellen voordat je een regel code schrijft of zelfs maar een testsituatie maakt.
Onvoldoende vaardigheid: ik wil u een vraag stellen. Zou je een slechtere of een niet-ervaren programmeur, iemand die niet begrijpt hoe hij een geweldige, schone doorzoekbare code moet samenstellen, het ontwerp van je app laten stylen en helemaal opnieuw schrijven? Ik denk dat het antwoord nee is. Dus waarom denken zoveel bedrijven dat kwaliteit kan worden geïmplementeerd door iemand Evaluation Automation-infrastructuur zonder de ervaring en vaardigheden? Als het toegewijde personeel geen ervaring en kennis heeft en u niet van plan bent iemand in dienst te nemen die dat wel doet, moet u nadenken over het gebruik van codeloze automatiseringstools.
Onrealistische verwachtingen / aanpak: ik zal die in twee delen splitsen. De eerste is een verkeerd begrip van de ROI (return of investment) van testautomatisering en de tweede component is een onrealistisch raamwerk voor verwachtingen per keer. Er is een baan die net zo goed is als deze door jou is gemaakt, en je kunt niet verwachten dat iets zonder tijd te investeren waarde oplevert. Ik heb met een QA Engineer gesproken die me vertelde dat hij wekelijks 6 uur kreeg om een undercoverinfrastructuur samen te stellen. Wat moet je verwachten dat hij 6 uur bereikt?
Om dit te laten werken, moet u informeren:
- Wat zijn precies de doelen die u samen met uw testautomatisering wilt bereiken?
- Wat zou als een fantastische waarde voor de moeite / tijd worden beschouwd?
- Wat zijn de criteria voor prestatie?
- Hoeveel tijd / geld bent u bereid te besteden om dit mogelijk te maken?
Automatisering is geen "Starten en vergeten" -opdracht. U wilt erkennen dat het een continu proces is dat onderhoud, een groepsinspanning en vooruitgang vereist.
Ik moet erkennen dat sommige bedrijven, door wat ik heb gezien, het bieden van een undercover-baan aan een QA-ingenieur alleen als een manier beschouwen om een werknemer te behouden of wat " pit " in zijn wekelijkse routine te stoppen. Begrijp me niet verkeerd, ik zeg niet dat we onze werknemers niet moeten sparen of hen de tijd moeten geven om te leren en vooruitgang te boeken, ik zeg alleen dat het moet worden afgestemd op de verwachtingen die realistisch zijn en transparant zijn voor de werknemer, die zelf .
Onvoldoende planning: een fantastisch automatiseringsproject moet beginnen met een plan en plan op hoog niveau, dat zich zal ontwikkelen tot een uitgebreide technische stijl. Zelfs de "One size fits all" -strategie kan rampzalig zijn voor uw succes. Wat uitstekend werkte voor een enkel bedrijf, betekent niet noodzakelijk dat het het werk voor u zou doen. Die aankondiging kan waar zijn over een instrumentkeuze. Wanneer je de technologie in kwestie niet echt hoeft te gebruiken, gaat het naar het modewoord. Dit is enorm belangrijk om op te merken. Er is een groot aantal open source en commerciële tools die een hoge prijs-kwaliteitverhouding kunnen bieden en zonder zelfs maar de alternatieven en de voordelen / alternatieven die deze tools kunnen bieden in overweging te nemen. Kies een tool die aan uw behoeften voldoet. Hier zijn mijn twee cent - het is veel veel beter om voor een oplossing te betalen in plaats van veel tijd te verspillen (dat zal veel duurder worden dan het kostenplaatje van het programma).
Nu we blijven praten over de manier waarop we ons ontwerp moeten plannen, zullen we moeten nadenken over onze algemene technische architectuur en zakelijke vereisten. Hier zijn slechts enkele van de aspecten waarmee u rekening moet houden:
- Stel je banen, modules, zakelijke stromen voor die mensen zouden onderzoeken?
- Wat is het geplande beleid voor elke uitvoeringsfase? (Sanity, Regressie, speciaal CI / CD-pakket?)
- Wat zijn de belangrijkste gedeelde / gemeenschappelijke / herhalende stromen / functionaliteit?
- Hoe plannen we elke test voor een kort op zichzelf staand artefact? (SetUp en TearDown, afhankelijkheid van externe gegevens in plaats van gegenereerde evaluatiegegevens, wat moet er vóór elke test, suiteklasse worden uitgevoerd?)
- Hoe kunnen we voorkomen dat de ene evaluatie de andere "breekt" als deze in gelijktijdigheid wordt uitgevoerd?
- Hoe kunnen we een goede schaalbare, schone en passende sfeer creëren? (Mock-servers, Database-cases, Cleanup-script, browservoorkeuren, Grid / Server-configuraties, Setup en Cleanup, Virtuele omgeving of docker-containers).
- Wat bouwen tools precies als we ze gebruiken?
- Hoe kunnen onze afhankelijkheden precies worden beheerd?
- Waar wordt ons project opgeslagen?
- Hoeveel ingenieurs werken er aan het project en de manier waarop het variantbeheer zou worden beheerd?
- Welke CI-tools zijn het beste om onze builds uit te voeren?
- Gaat u de CI / CD-workflow implementeren?
- Waar gaat u uw tests en resources uitvoeren die u kunt gebruiken om uw eigen uitvoeringsplatform te ontwerpen? (Krijgt u het geld om vergunningen voor cloudoplossingen aan te schaffen? Beschikt u over de tools of ondersteuning om uw eigen Selenium Server-infrastructuur op te zetten?)
- Wat voor tests worden er binnenkort automatisch uitgevoerd? (API, visuele concepten, serverprocessen, web- / gebruikersinterface-automatisering, mobiel - Android / IOS).
- Zijn er enkele grote gegevensverzamelingen, lange stromen, gecompliceerde processen, integraties die aanvullende beoordeling vereisen?
- Wat moeten we testen via de GUI en wat kan veiliger zijn om te controleren via de API?
- Welke logboeken, rapportagemechanismen, handlers en luisteraars moeten we precies implementeren om onze evaluatie van de hoofdoorzaak en debugging eenvoudiger te maken? (Wat is een automatiseringssuite van een uur als u een dag besteedt aan het begrijpen van de uitkomst?)
- Welke statistieken / rapporten / uitvoer moeten de runs leveren?
- Welke integraties willen we precies? (Rapportageprogramma's, ALM Tools, Bug Trackers, Evaluatiebeheerprogramma's).
- Wie stelt de infrastructuur samen en wie voert de tests uit? (Kan er zelfs een aftakking tussen beide zijn?)
- Wie is verantwoordelijk om de automatiseringsingenieurs de bedrijfsstromen / testgevallen / bedrijfslogica aan te bieden die automatisch zouden moeten zijn?
- Zijn er POC-fasen (Proof of concept) gedefinieerd om toekomstige doelstellingen te bepalen?
Dat zijn slechts enkele van de vragen in een notendop en wat u hieruit moet halen, is dat
Een geschikte tooloptie, superieure planning / ontwerp zal waarschijnlijk het verschil maken tussen mislukking en succes.
Alles automatiseren : Een belangrijk punt om op te merken is dat niet wat automatisch kan of moet zijn. Soms perceptie of verkeerde managementbeslissingen, automatiseren we alles wat bij de tester opkomt of zetten we testcases blindelings om in scripts. Ten eerste zijn niet alle evaluaties geschikt om te automatiseren. Ten tweede zijn de testcases zelf niet acceptabel voor de job. Dit eindigt in een onhoudbare reeks automatische tests die onmogelijk vol te houden zijn en helaas zal het in de meeste gevallen leiden tot het markeren van veel van ons geschreven werk. Automatiseren heeft geen toegevoegde waarde als uw bedrijf niet over de middelen beschikt om automatiseringsteams tienduizenden testinstanties te laten onderhouden die af en toe dezelfde bedrijfslogica controleren.
We zullen ook een duidelijk plan moeten maken over wat er nodig is om elke automatiseringsopbouw in stand te houden. Wat is inbegrepen in onze regressie? Wat wordt beschreven als onze geestelijke gezondheid? Wat is veilig en betrouwbaar genoeg om onze CI / CD-pijplijn binnen te gaan?
Testautomatisering heeft een solide planning, begrip, toewijding en toewijding nodig om de juiste waarde te leveren.
Gebrek aan vaardigheden / juiste instructie, verkeerde keuze van tools, onvoldoende middelen, gebrek aan de juiste voorbereiding, onrealistische anticipatie, die allemaal een project kunnen doen mislukken.
Ik hoop dat dit rapport een positieve impact zal hebben en enkelen van jullie zal helpen een productieve mentaliteit te volgen.