Den grundlÀggande problematiken kring testning

Introduktion

Hej, Habr-anvÀndare. Jag löste nyligen en testuppgift för en QA Lead-tjÀnst pÄ ett fintechföretag. Den första uppgiften, att skapa en testplan med en komplett checklista och exempel pÄ testfall för att testa en elektrisk vattenkokare, Àr ganska trivial.

Men den andra delen blev en frÄga: "Finns det nÄgra problem som Àr gemensamma för alla testare som hindrar dem frÄn att arbeta mer effektivt?"

Det första som kom till tankarna: att lista alla mer eller mindre pÄtagliga problem som jag stött pÄ under testningen, filtrera bort trivialiteter och sammanfatta resten. Men jag insÄg snabbt att den induktiva metoden skulle svara pÄ en frÄga som inte handlar om "alla", utan i bÀsta fall bara om "de flesta" testare. SÄ jag bestÀmde mig för att nÀrma mig saken frÄn en annan sida, den deduktiva, och hÀr Àr vad jag kom fram till.

Definitioner

Det första jag vanligtvis gör nÀr jag tar mig an en ny uppgift Àr att försöka förstÄ vad den handlar om, och för det mÄste jag förstÄ betydelsen av de ord som anvÀnds för att formulera den. De nyckelord som behöver redas ut Àr följande:

  • problem
  • testare
  • testarens arbete
  • testarens arbetseffektivitet

LÄt oss vÀnda oss till Wikipedia och sunt förnuft:
Problém (frĂ„n Ă€ldre grekiska πρόÎČληΌα) innebĂ€r i bred bemĂ€rkelse en komplex teoretisk eller praktisk frĂ„ga som krĂ€ver studium och lösning; inom vetenskapen en motsĂ€gelsefull situation som framtrĂ€der i form av motsatta positioner i förklaringen av vissa fenomen, objekt och processer och som krĂ€ver en adekvat teori för att lösa; i livet formuleras ett problem pĂ„ ett sĂ€tt som mĂ€nniskor förstĂ„r som "jag vet vad, jag vet inte hur", det vill sĂ€ga det Ă€r kĂ€nt vad som behöver uppnĂ„s, men oklart hur detta ska göras. HĂ€rstammar frĂ„n senare latin problēma, frĂ„n grekiska πρόÎČληΌα "kastat fram, stĂ€llt framför"; frĂ„n Ï€ÏÎżÎČÎŹÎ»Î»Ï‰ "kasta fram, stĂ€lla framför sig; anklaga".

Det finns inte mycket mening, i grunden = "problem" = "vad-som-helst som man mÄste reda ut".
Tester — en specialist (vi kommer inte att dela upp pĂ„ typer, eftersom vi Ă€r intresserade av alla testare) som deltar i testning av en komponent eller system, vars verksamhet resulterar i:
Testerens arbete — en uppsĂ€ttning Ă„tgĂ€rder relaterade till testning.
Effektivitet (lat. effectivus) — förhĂ„llandet mellan det uppnĂ„dda resultatet och de anvĂ€nda resurserna (ISO 9000:2015).
Resultat — konsekvensen av en kedja (serie) av handlingar (slutresultat) eller hĂ€ndelser, uttryckt kvalitativt eller kvantitativt. Möjliga resultat inkluderar fördel, olĂ€genhet, vinst, förlust, vĂ€rde och seger.
Som med "problemet" Àr meningen liten: nÄgot, som uppnÄddes som ett resultat av arbetet.
Resurs — en kvantitativt mĂ€tbar möjlighet att utföra nĂ„gon aktivitet av en person eller personer; omstĂ€ndigheter som gör det möjligt att fĂ„ önskat resultat genom vissa transformationer. Testaren Ă€r en person, och i enlighet med teorin om vitala resurser, har varje person fyra ekonomiska tillgĂ„ngar:
penningmedel (inkomst) — en förnybar resurs;
energi (livskraft) — en delvis förnybar resurs;
tid — en fast resurs och principiellt icke-förnybar;
kunskap (information) — en förnybar resurs, en del av humankapitalet, som kan öka eller minska[1].

Jag vill nĂ€mna att definitionen av effektivitet i vĂ„rt fall inte Ă€r helt korrekt, eftersom ju mer kunskap vi anvĂ€nder, desto lĂ€gre blir effektiviteten. DĂ€rför skulle jag omdefiniera effektivitet som "förhĂ„llandet mellan det uppnĂ„dda resultatet och de anvĂ€nda resurserna". DĂ„ Ă€r allt korrekt: kunskap anvĂ€nds inte i arbetet, men minskar kostnaderna för den enda principiellt icke-förnybara resursen hos testaren — hans tid.

Lösning

SÄ, vi letar efter globala problem för testare som försÀmrar effektiviteten i deras arbete.
Den mest betydelsefulla resursen som investeras i testares arbete Àr deras tid (övriga kan pÄ ett eller annat sÀtt relateras till det), och för att vi ska kunna tala om korrekt berÀkning av effektivitet, mÄste ocksÄ resultatet relateras till tiden.
För detta ska vi titta pÄ ett system vars livskraft testaren sÀkerstÀller genom sitt arbete. Ett sÄdant system Àr ett projekt som har en tester i sitt team. Livscykeln för projektet kan grovt representeras av följande algoritm:

  1. Arbete med krav
  2. Utformning av teknisk specifikation
  3. Utveckling
  4. Testning
  5. SlÀpp till produktion
  6. Support (ÄtergÄ till punkt 1)

Dessutom kan hela projektet rekursivt delas upp i delprojekt (funktioner) med samma livscykel.
Ur projektets synvinkel Àr dess genomförande mer effektivt ju mindre tid som lÀggs pÄ det.
SĂ„ledes kommer vi till en definition av den maximalt möjliga effektiviteten för testaren ur projektets perspektiv — det Ă€r ett tillstĂ„nd dĂ€r tiden för testning Ă€r noll. En allmĂ€n utmaning för alla testare Ă€r att detta tillstĂ„nd Ă€r omöjligt att uppnĂ„.

Vad ska vi göra Ät detta?

Slutsatserna Àr ganska uppenbara och har lÀnge anvÀnts av mÄnga:

  1. Utveckling och testning bör börja och avslutas nÀstan samtidigt (detta brukar vanligtvis hanteras av avdelningen QA). Den ideala situationen Àr nÀr all funktionalitet som utvecklas Àr tÀckt av automatiserade tester i regressionstestning (och helst Àven pre-commit-tester) med hjÀlp av nÄgon form av CI.
  2. Ju fler funktioner ett projekt har (ju mer komplext det Àr), desto mer tid mÄste lÀggas pÄ att kontrollera att den nya funktionaliteten inte har brutit den gamla. DÀrför, ju mer komplext projektet Àr, desto mer automatisering krÀvs för regressionstestning.
  3. Varje gĂ„ng vi slĂ€pper en bugg i produktion och anvĂ€ndaren hittar den, mĂ„ste vi lĂ€gga tid pĂ„ att gĂ„ igenom projektets livscykel frĂ„n punkt 1 (arbete med krav, i detta fall anvĂ€ndarnas krav). Eftersom orsakerna till att en bugg missades i allmĂ€nhet Ă€r okĂ€nda, Ă„terstĂ„r bara en vĂ€g för optimering — varje bugg som upptĂ€ckts av anvĂ€ndarna mĂ„ste inkluderas i regressionstestningen för att sĂ€kerstĂ€lla att den inte dyker upp igen.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster