Redaktörens anmärkning: Välkommen till serien Leadership In Test från mjukvarutestningsgurun och konsulten Paul Gerrard. Serien är utformad för att hjälpa testare med några års erfarenhet – särskilt de som arbetar i agila team – att lyckas i sina roller som testledare och testchefer.
Den här artikeln börjar från början: vad handlar mjukvarutestning egentligen om? Du får lära dig de grundläggande testkoncept för mjukvara som kommer att forma ditt tänkande när du närmar dig kvalitetsutvecklingens konst och vetenskap.
Anmäl dig till nyhetsbrevet från The QA Lead för att få ett meddelande när nya delar av serien publiceras – och få en djupare inblick i Pauls Leadership In Test-kurs. Om du gör det, använd vår exklusiva kupongkod QALEADOFFER för att få 60 dollar i rabatt på kursen!
När du är testchef i ett projekt är det mycket sannolikt att människor antar att du är expert på allt som rör testning. Andra teammedlemmar kommer förmodligen att ha egna välgrundade eller excentriska åsikter om testning; vissa kan ha (eller åtminstone säga att de har) mer erfarenhet än du.
Förväntningarna på testning är ofta orealistiska, och även erfarna personer intar slentrianmässiga ståndpunkter om vad testning kan uppnå. Vissa kommer att tvivla på din kompetens, ditt värde för teamet eller till och med dina motiv. Det kan vara tufft.
Under din karriär inom testledning kommer du att behöva anpassa dig till nya och föränderliga omständigheter. Du kommer att möta intressenter från verksamheten och projektets seniora beslutsfattare. Du kommer att ansluta till team av olika storlek med olika personer som har mycket varierande bakgrund. De kan ha omfattande erfarenhet eller egentligen inte särskilt mycket alls.
Din roll kan variera från att vara testare till att leda ett stort team eller att ha övergripande ansvar för testningen i ett projekt, få i uppgift att ge råd till ett agilt team eller ta reda på hur testning passar in i en kontinuerlig leveransmodell.
Innan vi börjar använda termer som testning, intressent och intressenters mål bör vi vara ganska tydliga med vad vi pratar om.
Definition av ”test”
Ordet test används både som substantiv och verb. Det handlar om testning som aktivitet och resultatet av den aktiviteten. Det handlar om de personer eller organisationer som beställer aktiviteten och de som använder resultaten. I hög grad handlar det om de personer som kallar sig testare och de komplexa system som vi arbetar med.
Om vi ska prata om kontextneutral testning behöver vi en definition av ett test som är kontextneutral, så jag slog upp definitionen av test på webbplatsen dictionary.com. Av de många sidorna med hänvisningar till ordet test och dess tillämpningar inom många områden är definitionen från American Heritage Dictionary den mest lämpliga:
Test: (substantiv) ett förfarande för kritisk utvärdering; ett sätt att avgöra om något finns, vilken kvalitet det har eller om det är sant; ett försök
Det finns inte bara en definition; snarare finns det tre varianter. Nåväl, det är inte så illa tycker jag, eftersom alla tre tillsammans ger oss den grund vi behöver. Låt oss titta närmare på var och en.
Ett förfarande för kritisk utvärdering
Kritisk utvärdering innebär en skicklig bedömning av sanningen eller värdet hos något. Ett test är ett förfarande, vanligtvis med en serie steg som omfattar någon form av förberedelse, genomförande, insamling av resultat, analys och tolkning. Detta är inte en uttömmande beskrivning av ett testförfarande. Det kan finnas fler steg, och man kan dela upp dessa huvudsteg ytterligare.
Förfarandet kräver inte nödvändigtvis förberedd dokumentation, men vissa tester dokumenteras på detta sätt (och automatiserade tester är alltid skriptbaserade på något sätt). Det viktiga är att det i kärnan av ett test finns en insiktsfull tankeprocess.
Denna tankeprocess drivs av behovet av att utvärdera systemet som testas med avseende på dess lämplighet, konsekvens, beteende, noggrannhet, tillförlitlighet eller någon annan betydelsefull aspekt eller egenskap.
Ett sätt att avgöra om något finns, vilken kvalitet det har eller om det är sant
Ett test kan utan större svårighet avgöra om något finns (eller saknas), men kvalitet är en annan sak: termen är laddad med känslomässiga associationer, men samma ordbok hjälper oss. Kvalitet kan vara ”en väsentlig eller särskiljande egenskap, beskaffenhet eller karakteristik”. Nu kan vi se att ett test kan avslöja dessa egenskaper.
Observera att jag inte använder termen kvalitet för att beskriva relationen mellan en användare eller intressent och en produkt. Kvalitet är som skönhet – den finns i betraktarens öga. Låt dig inte dras in i diskussioner om hur man mäter kvalitet (med testning). Jag brukar helt undvika k-ordet.
Observera att jag inte använder termen kvalitet för att beskriva relationen mellan en användare eller intressent och en produkt. Kvalitet är som skönhet – den finns i betraktarens öga. Låt dig inte dras in i diskussioner om hur man mäter kvalitet (med testning). Jag brukar helt undvika k-ordet.
Kan ett test avgöra sanningen hos något? Ja, detta är också helt rimligt. Vanligtvis behöver vi testa ett påstående som ”det här systemet uppfyller något krav” eller ”det här systemet beter sig på ett visst sätt” eller ”det här systemet är acceptabelt” och så vidare. Det finns ett visst mått av subjektiv bedömning inblandat, men vi kan se att ett eller flera test kan ge någon underlag för att göra den bedömningen och fatta ett beslut.
En prövning
Begreppet prövning innebär att processen med att testa ett system hjälper oss att utvärdera systemet med avseende på dess egenskaper. Syftet med en sådan utvärdering är normalt att fatta ett beslut.
Beslutet kan vara att godkänna eller avvisa systemet, men det kan också vara att synliggöra dess brister så att de kan åtgärdas på något sätt. Ett test kan också påverka en individ eller organisation att ändra riktning – att tänka om kring en design; att lätta på eller ändra ett krav; att skrota en komponent och börja om; att köpa i stället för att bygga eller bygga i stället för att köpa.
Ett naturligt sätt att se på ett system som testas är att det står inför rätta och kommer att bedömas på något sätt.
Definition av testning
Från vår definition av substantivet test kan vi enkelt härleda ett verb.
Test: (verb) att kritiskt utvärdera; att fastställa förekomsten, kvaliteten eller sanningen hos något; att genomföra en prövning.
Så långt, så bra.
Men egentligen inte så bra. Tyvärr är testningsbranschen plågad av terminologiska problem. Det finns inget sätt för oss att presentera en definitiv ordlista här. För att undvika missförstånd i dina projekt föreslår jag att du frågar vilket målet med en definierad testtyp är, i stället för att förlita dig på en antagen definition för att förstå det.
Vanliga typer av testning som du kommer att höra talas om
Att ge en handledning om var och en av dessa typer av programvarutestning ligger utanför den här artikelns omfattning, men som programvarutestare kommer du att höra mycket om dessa (några av dem har du förmodligen redan läst om):
- Svartlådetestning
- Regressionstestning
- Enhetstestning
- Betatestning
- Manuell testning
- Automatiserad testning eller testautomatisering
- Sluttestning
- Stresstestning
- Säkerhetstestning
- Prestandatestning
- Vitlådetestning
- Acceptanstestning
- Integrationstestning
- Lasttestning
- Systemtestning
- Icke-funktionell testning
Oavsett vilken typ av test du talar om är mitt råd att alltid fråga vad målet med testet är, även om det verkar vara ett allmänt vedertaget namn som enhetstest eller acceptanstestning. Tolkningen av vad dessa innebär kan skilja sig från team till team.
Registrera dig för nyhetsbrevet från The QA Lead för att få meddelanden när nya delar av serien publiceras – och få en djupare inblick i Pauls kurs i ledarskap inom testning. Om du gör det, använd vår exklusiva kupongkod QALEADOFFER för att få $60 rabatt på kursen!
Relaterad läsning: 7 GRUNDLÄGGANDE VERKTYG FÖR KVALITETSARBETE OCH VARFÖR DU BEHÖVER DEM
