- Introduktion til begrebet skift til venstre
- Hvad er Shift Left Testing?
- Hvordan påvirker Shift Left softwareudvikling?
- Hvad skal testere gøre anderledes i Shift Left?
- Fordele ved Shift Left Testing
- Konklusion
- Anbefalet læsning
Begrebet Test af software blev indført gradvist, da fejl fra produktionen begyndte at ramme projektets budget, og derfor blev "funktionel testning" indført med et meget tyndt team af testere. På det tidspunkt var vi kun to testere mod et team på 20 udviklere.
IT-industrien begyndte at følge vandfaldsmodellen for softwareudvikling, hvor softwareudviklingslivscyklussen, som vi alle ved, foregår i rækkefølge efter hinanden i rækkefølgen .
Så hvis du starter fra venstre mod højre, er testfasen yderst til højre i softwareudviklingslivscyklussen.
Introduktion til begrebet skift til venstre
I løbet af en periode indså folk vigtigheden af at Test af software og virkningen af at beholde "testfasen" yderst til højre eller i slutningen af softwareudviklingslivscyklussen. Denne erkendelse skete, fordi omkostningerne ved de fejl, der blev identificeret yderst til højre og i slutningen, var meget høje, og der var en enorm indsats & der skulle bruges for meget tid på at rette dem.
Der var tilfælde, hvor der blev brugt så meget tid og kræfter på software, men hvor den vigtige software ikke kunne frigives på markedet, fordi en afgørende fejl blev identificeret til sidst, hvilket resulterede i et stort tab.
Derfor blev udgivelsen forsinket på grund af identifikationen af fejlen i den sidste fase, eller softwaren blev til tider skrottet på grund af den krævede indsats for at rette fejlene, hvilket ikke var det værd.
"Fejl er mindre dyre, når de opdages tidligt.
Denne erkendelse og den store læring, der blev gjort, introducerede en stor revolution i softwareindustrien og gav fødsel til et nyt koncept kaldet 'Skift til venstre' , hvilket betyder at flytte "testfasen" fra højre til venstre eller at inddrage test i alle faser og inddrage testerne hele vejen igennem.
Shift Left-testning betyder også, at man ikke bare tester til sidst, men at man tester løbende.
Hvad er Shift Left Testing?
For det første støtter princippet om "Shift left" den Testholdet skal samarbejde med alle interessenter tidligt Derfor kan de klart forstå kravene og designe testcases, der hjælper softwaren med at "fejle hurtigt" og sætter teamet i stand til at rette alle fejl tidligst muligt.
Shift Left-tilgangen er intet andet end at inddrage testerne meget tidligere i softwareudviklingslivscyklussen, hvilket igen vil give dem mulighed for at forstå kravene, softwaredesignet, arkitekturen, kodningen og funktionaliteten, stille svære spørgsmål til kunder, forretningsanalytikere og udviklere, søge afklaringer og give feedback, hvor det er muligt, for at støtte teamet.
Denne involvering og forståelse vil få testerne til at få fuldstændig viden om produktet, tænke forskellige scenarier igennem og designe realtidsscenarier baseret på softwareadfærd, hvilket vil hjælpe teamet med at identificere fejlene, selv før kodningen er færdig.
Hvordan påvirker Shift Left softwareudvikling?
Shift Lift Approach påvirker softwareudvikling på flere måder.
Nedenfor er der nogle få vigtige punkter om Shift Left:
- Shift Left-tilgangen fokuserer på inddragelse af testerne i alle og især de kritiske faser af programmet Dette giver testerne mulighed for at flytte deres fokus fra fejlfinding til forebyggelse af fejl og for at fremme programmets forretningsmål.
- Shift Left-tilgangen giver, stor betydning for testning hvormed testernes roller og ansvarsområder øges enormt.
- Med det øgede ansvar for testteamet fokuserer teamet ikke på at "Test af softwaren for at identificere fejl , men arbejder proaktivt sammen med teamet lige fra de indledende faser for at planlægge og opbygge en robust og effektiv teststrategi ved at yde et godt testlederskab og vejledning til teamet ved at fokusere på produktets langsigtede vision i stedet for blot at tage ansvaret for testarbejdet.
- Shift Left-tilgangen giver den mulighed for, at testerne først kan udforme testene , hvor testene er helt fokuseret på kundeoplevelsen og deres forventninger, hvilket igen vil gøre det muligt for udviklerne at udvikle softwaren baseret på disse test og dermed opfylde kundernes behov.
- Shift Left-tilgangen slutter ikke kun med testerne alene. At flytte til det udlejede og udføre testaktiviteterne løbende vil også give udviklerne mulighed for at tage mere ejerskab af deres kode og øge deres ansvar for testning.
- Shift Left-tilgangen tilskynder også til Testere skal indføre adfærdsdrevet udvikling BDD og testdrevet udvikling TDD , hvilket hjælper med at forhindre, at fejlen indtræder i softwaren.
- Shift Left Testing i Agile: Shift Left-tilgangen støtter dannelsen af Agile Scrum-teams, som obligatorisk omfatter testere sammen med de andre roller og inkluderer testere i regelmæssige stand up samtaler, andre interaktioner, review møder, som har gjort testerne har mere information relateret til programmet og dermed har gjort det muligt for dem at give sig hen og involvere sig i den detaljerede analyse af softwaren og give hurtig feedback, som vil hjælpe med at forhindre fejl i softwaren.
Overordnet set kræver Shift Left-testning, at testerne skal "Bliv involveret i god tid , så tidligt som muligt og deltage i diskussionen og samarbejde om idéer og krav i alle faser, hvor resultatet af fasen har betydning for værdien af det endelige produkt, og hjælper også projektet med at identificere risici og mindske dem på forhånd.
Hvad skal testere gøre anderledes i Shift Left?
Nedenfor er nogle få nøglefaktorer, der skal bemærkes som det, testerne gør anderledes i Skift til venstre-strategi:
#1) Testteamet skal at engagere sig tidligt i systemet lige fra projektets start med henblik på at udvikle integrationen med resten af teamet og forretningen for at give nyttige input i alle faser af softwareudviklingen.
#2) Testteamet bør arbejde sammen med Business & Driftsteamet og få klarhed over programmet og giver et klart overblik over efterspørgslen og hjælper med at planlægge effektivt med hensyn til behov for opstart af ressourcer, uddannelsesbehov og krav til testværktøjer til programmet i god tid i forvejen.
#3) Testteams skal interagere med alle forretningsinteressenterne tidligt i softwareudviklingen for at få en klar synlighed af produktet & udforme en samlet teststrategi og planlægge en optimeret testindsats, analysere afhængighed af testmiljøer, tredjeparter, stubs osv. og udarbejde en robust automatiseringsstrategi og -ramme samt opbygge en effektiv plan for testdatahåndtering.
#4) Testteamet skal arbejde sammen med resten af teamet om at levere god testledelse og vejledning af teamet og dermed holde den langsigtede produktvision for øje i stedet for blot at tage ansvaret for testaktiviteterne.
#5) Kravene er nøglen og grundlaget for ethvert programs succes, og veldefinerede krav definerer projektets succes. I kravplanlægningsfasen skal testerne behov for at gennemgå og analysere kravene for eventuelle tvetydigheder, bedre klarhed, fuldstændighed, testbarhed, definition af acceptkriterier osv.
Det er også nødvendigt at identificere de manglende krav (hvis der er nogen) og forstå afhængigheder og implementeringsstrategier. Klare krav hjælper softwaren til at "fejle hurtigt" og rette alle fejl tidligst muligt.
#6) Skab tilstrækkelig klarhed og præcision i kravene ved at fremhæve de virkelige eksempler der illustrerer de funktioner, der er i brug.
#7) Testerne skal deltage i designrevisionsmøder regelmæssigt og forstå produktdesignet og arkitekturen og identificere designfejl, foreslå alternative designmuligheder, identificere smuthuller og skabe testscenarier for at bryde designene.
#8) Testerne skal udføre statisk testning (anmeldelser) i god tid og give feedback på vigtige projektdokumenter, så man undgår, at fejl bliver indlejret i softwaren og får større effekt senere.
#9) Testteamet bør samarbejde med design- og udviklingsteamet ved at levere testscenarier på forhånd for at udvikle koden og tage højde for alle mulige realtidsscenarier og forretningsstrømme.
#10) Testteamet skal designe stærke og robuste testscenarier således at kun få fejl identificeres under testningen, og at større fejl undgås i testfasen.
#11) Testerne skal Test så tidligt som muligt , uanset om det er på et enkeltstående eller lokalt system, så fejlen ikke kommer til at ske senere.
Hele kernen i "Shift Left"-konceptet for testere er at finde fejlene så tidligt som muligt med alle mulige midler.
Fordele ved Shift Left Testing
Shift Left-tilgangen er baseret på det agile manifest og har også flere fordele.
De er:
- Individer og interaktioner over processer og værktøjer.
- Arbejdssoftware over omfattende dokumentation.
- Samarbejde med kunderne over kontraktforhandlinger.
- Reagerer på forandringer over at følge en plan.
Vi kan se, at selv om værdien er til stede i elementerne til højre, lægger vi mere vægt på elementerne i venstre side.
Shift Left handler om at bringe idéen om testning tidligere i processen, hvilket resulterer i bedre og mere effektiv testning og forbedrer kvaliteten af softwaren.
Kort fortalt er Shift Left Testing-processen følgende:
- Find fejlene tidligt og reducerer dermed projektets omkostninger.
- Test løbende igen og igen for at reducere antallet af fejl i sidste ende.
- At automatisere alt og forbedre tiden til markedsføring.
- At fokusere på kundernes krav og forbedre kundeoplevelsen.
Konklusion
"Skift til venstre konceptet medførte en enorm forandring for hele "test"-rollen. Indtil da var testningens eneste fokus kun på "fejlopsporing", og nu er målet med "skiftet til venstre" fra testperspektivet en rejse til "Tidlig defektdetektion til statisk test .
Shift Left er således et stort spring i softwareindustrien inden for softwareudviklingsmetodologi for at opnå en hurtigere markedsintroduktion, forbedre softwarekvaliteten og reducere "Time to Market".
Om forfatteren: Denne artikel er skrevet af et medlem af STH-teamet Gayathri Subrahmanyam. Hun har arbejdet med softwaretestning siden 90'erne, lige da testerrollen blev introduceret i branchen. I løbet af sin testkarriere har hun udført en masse TMMI-vurderinger, testindustrialisering og TCOE-opsætninger ud over at håndtere testleverancer og implementere DevOps-praksis for en stor virksomhed. Men ifølge hende stopper læringen aldrig...
Lad os høre dine tanker/forslag i kommentarfeltet nedenfor.
PREV Vejledning