I teorien skal Test Automation-programmer eller -verktøy gjøre ting enklere for testere, fritid og gi oss et ekstra avslapningsteppe for vår evalueringsdekning.
Og så mange organisasjoner klarer ikke å implementere en skalerbar, sterk og god Test Automation-infrastruktur som returnerer ressursene som er investert og kan redde dem. Noen "Kast" skriftlige testautomatiseringsjobber og andre opprettholdt i en pågående kamp med sine mål om å tjene en stabil automatiseringspakke.
Gjennom årene har jeg observert mange selskaper som prøver å utføre automatiseringsinnsatsen, jeg har sett skriftlige prosjekter kastet, rammer skiftet og ledere som ble sparket fordi de ikke klarte å gi det som er lovet eller satt som et mål.
Det er mange årsaker til feil, selv om automatisering gir perfekt mening på lang sikt, må vi forstå at det er langt vanskeligere som det ser ut til.
Nedenfor er noen av grunnene til at du må vite om før du går videre og begynner å bygge et testautomatiseringsprosjekt:
Analyser og still spørsmål: En testautomatiseringsjobb er en jobb som alle andre applikasjonsprosjekter og bør behandles akkurat som en; Hvordan vil du behandle planleggingen av et programvareprosjekt? La denne ideen lede deg når du tenker på å implementere Test Automation-prosjektet ditt. Hvem ville du plukke til jobben? Hvem vil bruke det produserte produktet? Hvilket språk eller rammeverk passer best for jobben? Vil du forstå fra utfordringer og deres retningslinjer og ta en titt? Vil du komponere en arkitektur du ikke vet noe om på egen hånd, eller vil du ringe en rådgiver for å gi deg noen tanker?
Alle disse spørsmålene er rett og slett toppen av dette isfjellet av hva du burde stille deg selv før du skriver en kodelinje eller til og med en testsituasjon.
Utilstrekkelig Skillset: La meg stille deg et spørsmål. Vil du tillate verre eller en ikke-erfaren programmerer, noen som ikke forstår hvordan du skal komponere en god, ren søkbar kode - stil utformingen av appen din og skriv den fra bunnen av? Jeg tror at svaret er nei. Så hvorfor tror så mange selskaper at kvalitet kan implementeres av noen Evaluation Automation-infrastruktur uten erfaring og dyktighet? Hvis det dedikerte personalet ikke har erfaring og kunnskap, og du ikke planlegger å ansette noen som har det, må du tenke på å bruke kodeløse automatiseringsverktøy.
Urealistiske forventninger / tilnærming: Jeg vil dele den i to deler. Den første er en feilaktig forståelse av avkastningen (avkastning på investering) for testautomatisering, og den andre komponenten er urealistiske forventninger per gang. Det er en jobb som er så god som den er laget av deg, og du kan ikke forvente noe uten å investere tid, for å levere verdi. Jeg har snakket med en kvalitetsingeniør som fortalte meg at han fikk 6 timer ukentlig for å komponere en undercover-infrastruktur. Hva kan du forvente at han oppnår 6 timer?
For å få dette til å fungere må du spørre:
- Hva er målene du ønsker å oppnå sammen med testautomatiseringen din?
- Hva vil bli sett på som en fantastisk verdi for innsatsen / tiden?
- Hva er kriteriene for prestasjon?
- Hvor mye tid / penger er du forberedt på å bruke for å få det til?
Automatisering er ikke en "Launch and Glem" -oppgave. Du vil erkjenne at det er en kontinuerlig prosess som krever vedlikehold, en gruppeinnsats og avansement.
Jeg må erkjenne at dessverre etter det jeg har sett, oppfatter noen selskaper å gi en kvalitetsingeniør en hemmelig jobb som bare en måte å bevare en arbeidstaker på eller legge inn noe " krydder " i hans ukentlige rutine. Ikke misforstå meg, jeg sier ikke at vi ikke skal bevare arbeidstakerne eller gi dem tid til å lære og utvikle seg, jeg sier bare at det skal være i tråd med forventningene som er realistiske og gjennomsiktige i arbeidstakeren, i seg selv .
Mangelfull planlegging: Et fantastisk automatiseringsprosjekt må starte med en plan og plan på høyt nivå som vil utvikle seg til en omfattende teknisk stil. Selv strategien "One size fits all" kan være katastrofal for din suksess. Det som fungerte utmerket for et enkelt selskap, indikerer ikke nødvendigvis at det ville gjøre jobben for deg. Den kunngjøringen kan være sant om et instrumentvalg. Når du faktisk ikke trenger å bruke den aktuelle teknologien, går det opp til buzz word. Dette er utrolig viktig å merke seg. Det er et stort antall åpen kildekode og kommersielle verktøy der ute som kan gi valuta for pengene som er høye og uten å engang vurdere alternativene og fordelene / alternativet disse verktøyene kan tilby. Velg et verktøy som tilfredsstiller dine behov. Her er mine to øre - det er langt mye bedre å betale for en løsning i stedet for å kaste bort mange ganger (Det vil øke til å bli langt dyrere enn programmets kostnadskode).
Nå som vi fortsetter å diskutere måten å planlegge design på, blir vi nødt til å tenke på vår allsidige tekniske arkitektur og forretningskrav. Her er bare noen av aspektene du bør ta i betraktning:
- Tenk deg jobber, moduler, forretningsflyt ville folk undersøke?
- Hva er den planlagte policyen for hver utførelsesfase? (Sanity, Regression, CI / CD dedikert pakke?)
- Hva er de viktigste delte / vanlige / gjentatte flytene / funksjonalitetene?
- Hvordan planlegger vi hver test for en kort frittstående gjenstand? (SetUp og TearDown, avhengighet av utenforliggende data i stedet for genererte evalueringsdata, hva må kjøres før hver test, suite-klasse?)
- Hvordan forhindrer vi at en evaluering "bryter" en annen hvis de kjører i samtid?
- Hvordan kan vi produsere en god skalerbar, ren og passende atmosfære? (Mock-servere, databasesaker, oppryddingsskript, nettleserinnstillinger, nett- / serverkonfigurasjoner, oppsett og opprydding, virtuelle omgivelser eller dockercontainere).
- Hva bygger egentlig verktøy hvis vi bruker?
- Nøyaktig hvordan kunne våre avhengigheter styres?
- Hvor lagres prosjektet vårt?
- Hvor mange ingeniører jobber med prosjektet og måten variantadministrasjonen ville bli styrt på?
- Hvilke CI-verktøy er best for å utføre våre bygg?
- Vil du implementere CI / CD arbeidsflyt?
- Hvor vil du kjøre tester og ressurser som du kan bruke til å designe din egen utførelsesplattform? (Får du midlene til å kjøpe tillatelser for skyløsninger? Har du verktøyene eller støtten til å etablere din egen Selenium Server-infrastruktur?)
- Nøyaktig hva slags tester vil snart være automatiske? (API, Visual Concepts, Server prosesser, Web / UI Automation, Mobile - Android / IOS).
- Er det noen store datasamlinger, lange strømmer, kompliserte prosesser, integrasjoner som vil kreve ytterligere vurdering?
- Hva skal vi teste gjennom GUI og det som kan være sikrere å sjekke via API?
- Nøyaktig hvilke logger, rapporteringsmekanismer, behandlere og lyttere trenger vi å implementere for å gjøre vår grunnårsaksevaluering og feilsøking enklere? (Hva er en times automatiseringspakke hvis du bruker en dags forståelse av resultatet?)
- Hvilke beregninger / rapport / utdata skal kjørene levere?
- Nøyaktig hvilke integrasjoner ønsker vi egentlig? (Rapporteringsprogrammer, ALM Tools, Bug Trackers, Evalueringsstyringsprogrammer).
- Hvem kan komponere infrastrukturen og hvem skal implementere testene? (Kan det til og med være en gren mellom begge?)
- Hvem er ansvarlig for å tilby automatiseringsingeniørene forretningsstrømmer / testtilfeller / forretningslogikk som skal være automatisk?
- Er det definert et POC (Proof of concept) trinn for å bestemme fremtidige mål?
Det er bare noen av spørsmålene i et nøtteskall, og hva du bør ta ut av dette er at
Et passende verktøyalternativ, overlegen planlegging / design vil sannsynligvis gi forskjellen mellom fiasko og suksess.
Automatisering av alt : Et viktig poeng å merke seg er at ikke hva som kan eller må være automatisk. Noen ganger oppfattelse eller feil ledelsesbeslutninger, automatiserer vi alt som kommer til testers hode eller konverterer testtilfeller blindt til skript. For det første er ikke alle evalueringer passende å automatisere. For det andre er ikke prøvesakene akseptable for jobben. Dette ender i en uvedlikeholdelig gjeng med automatiske tester som er umulig å holde, og dessverre vil de fleste anledninger føre til å markere mye av vårt skriftlige arbeid. Det er ingen ekstra verdi i å automatisere hvis selskapet ikke har midler til å opprettholde automatiseringsteam titusenvis av testforekomster som av og til sjekker den samme forretningslogikken.
Vi må også lage en klar plan om hva som trenger å opprettholde alle automatiseringsbygg. Hva er inkludert i vår regresjon? Hva er beskrevet som vår sunnhet? Hva er sikkert og pålitelig nok til å komme inn i CI / CD-rørledningen?
Test-automatisering trenger solid planlegging, forståelse, engasjement og dedikasjon for å levere passende verdi.
Mangel på ferdigheter / riktig instruksjon, Feil valg av verktøy, utilstrekkelige ressurser, mangel på passende forberedelse, urealistisk forventning, som alle kan få et prosjekt til å mislykkes.
Jeg håper at denne rapporten vil ha en positiv innvirkning og hjelpe noen få av dere til å følge et produktivt tankesett.