Fundamentaalne probleem testimisel

Sissejuhatus

Tere pĂ€evast, habrovtĆĄanned. Viimasel ajal lahendasin ma siin QA juhi ametikoha testĂŒlesannet ĂŒhes fintech ettevĂ”ttes. Esimene ĂŒlesanne, koostada testplaan koos tĂ€ieliku kontrollnimekirjaga ja testjuhtumite nĂ€idetega elektrilise veekeetja kontrollimiseks, lahendati lihtsalt:

Kuid teine osa osutus kĂŒsimuseks: "Kas on olemas mingeid probleeme, mis takistavad kĂ”igi testijate tĂ”husamat töötamist?".

Esimene mĂ”te, mis pĂ€he tuli: loetleda kĂ”ik enam-vĂ€hem mĂ€rgatavad probleemid, millega olen testimise kĂ€igus kokku puutunud, ja kĂ”rvaldada vĂ€ikesed probleemid, globaalsemad keskenduda. Kuid mĂ”istsin kiiresti, et induktiivne meetod vastab kĂŒsimusele, mis ei puuduta "kĂ”iki", vaid parimal juhul "enamiku" testijate olukorda. SeetĂ”ttu otsustasin lĂ€heneda teisele poole, deduktiivsele, ja siin on, mis vĂ€lja tuli.

Defineeringud

Esimene asi, mille tavaliselt uue ĂŒlesande lahendamisel teen, on proovida mĂ”ista, millest see ĂŒldse rÀÀgib, ja selleks pean arvestama sĂ”nade tĂ€hendust, millega see esitatud on. Olulised sĂ”nad, millega tuleb tutvuda, on jĂ€rgmised:

  • probleem
  • testija
  • testija töö
  • testija töö tĂ”husus

Vaatame, mida ĂŒtleb vikipeedia ja mĂ”istus:
Probleem (vana-kreeka πρόÎČληΌα) laiemas mĂ”ttes - keeruline teoreetiline vĂ”i praktiline kĂŒsimus, mis nĂ”uab uurimist, lahendamist; teaduses - vastuoluline olukord, mis esitab vastandlikke seisukohti mingi nĂ€htuse, objekti, protsessi selgitamisel ja vajab selle lahendamiseks sobivat teooriat; elus on probleem formuleeritud arusaadavas inimkeeles kui 'tean, mis on, ei tea, kuidas', s.t. on teada, mida on vaja saavutada, kuid ei teata, kuidas seda teha. Tuleneb hilisloomulikust lat. problēma, kreeka πρόÎČληΌα 'ette visatud, esitatud ees'; dari Ï€ÏÎżÎČÎŹÎ»Î»Ï‰ 'ette viskama, enda ette seadma; sĂŒĂŒdistama'.

MĂ”tet ei ole palju, pĂ”himĂ”tteliselt on “probleem” = “mis tahes, millega tuleb tegeleda”.
Testija — spetsialist (me ei jaga tĂŒĂŒpe, kuna meid huvitavad kĂ”ik testerid), kes osaleb komponendi vĂ”i sĂŒsteemi testimises, mille tegevuse tulemuseks on:
Testija töö — testimisega seotud tegevuste kogum.
TĂ”husus (ladina k. effectivus) — suhe saavutatud tulemuse ja kasutatud ressursside vahel (ISO 9000:2015).
Tulemus — tulemusi, mis tulenevad tegevuste (protsesside) ahelast (kokkuvĂ”te) vĂ”i sĂŒndmustest, vĂ€ljendatuna kvalitatiivselt vĂ”i kvantitatiivselt. VĂ”imalikud tulemused hĂ”lmavad eelist, ebamugavust, kasu, kadu, vÀÀrtust ja vĂ”itu.
Nagu ka „probleemiga”, on mĂ”te vĂ€he: midagi, mis on saadud töö tulemusena.
Ressurss — kvantitatiivselt mÔÔdetav vĂ”imekus tĂ€ita mingit tegevust inimese vĂ”i inimeste poolt; tingimused, mis vĂ”imaldavad teatud muutuste kaudu saavutada soovitud tulemust. Testija on inimene ja vastavalt elutĂ€htsate ressursside teooriale on igal inimesel neli majanduslikku aktiivset vara:
rahalised vahendid (tulu) — taastuv ressurss;
energia (elujĂ”ud) — osaliselt taastuv ressurss;
aeg — piiratud ja pĂ”himĂ”tteliselt mitteuuendatav ressurss;
teadmised (info) — uuendatav ressurss, see on osa inimkapitalist, mis vĂ”ib kasvada ja laguneda;[1].

Soovin mĂ€rkida, et efektiivsuse mÀÀratlemine meie puhul ei ole tĂ€iesti korrektne, kuna mida rohkem teadmisi me kasutame, seda madalam on efektiivsus. SeetĂ”ttu mÀÀratleksin efektiivsuse kui "saavutatud tulemuse ja kulutatud ressursside suhe". Siis on kĂ”ik korrektne: teadmisi ei kulutata töö kĂ€igus, kuid need vĂ€hendavad ainukese pĂ”himĂ”tteliselt mitteuuendatava ressursi — testija aega — kulu.

Lahendus

Nii et otsime globaalsetele probleemidele testijate seas, mis halvendavad nende töö efektiivsust.
Oluline ressurss, mis kulutatakse testija tööle, on tema aeg (teised ressursid on kas vÔi mingil viisil sellele viidud), ja et saaksime rÀÀkida efektiivsuse Ôigesti arvutamisest, tuleb ka tulemus viia aja juurde.
Selleks vaatame sĂŒsteemi, mille elujĂ”ulisust tagab testija oma tööga. Selline sĂŒsteem on projekt, mille meeskonnas on testija. Projekti elutsĂŒklit vĂ”ib umbkaudu kujutada jĂ€rgmise algoritmina:

  1. Töö nÔudmistega
  2. Tehnilise ĂŒlesande koostamine
  3. Arendus
  4. Testimine
  5. Tootmisse vÀljalaskmine
  6. Tugi (mine p.1 juurde)

Samuti saab kogu projekti rekursiivselt jagada alaprojektideks (funktsioonideks), millel on sama elutsĂŒkkel.
Projektist lÀhtuvalt on selle rakendamise efektiivsus seda suurem, mida vÀhem aega sellele kulutatakse.
Nii jĂ”uame projektide kontekstis maksimaalse vĂ”imaliku efektiivsuse mÀÀratlemiseni testija jaoks — see on selline projekti seisund, kus testimiseks kulutatud aeg on null. Üheks peamiseks probleemiks kĂ”igile testijatele on see, et seda aega pole vĂ”imalik saavutada.

Kuidas sellega olla?

JÀreldused on tÀiesti ilmsed ja paljusid neist on pikka aega kasutatud:

  1. Arendus ja testimine peaksid algama ja lÔppema praktiliselt samaaegselt (sellega tegeleb tavaliselt osakond QA). Ideaalne variant on, kui kogu arendatav funktsionaalsus on valmimise hetkeks juba kaetud automaattestidega, mis on korraldatud regressioonitestimise (ja kui vÔimalik, siis ka enne commiti) abil mÔne CI.
  2. Mida rohkem on projektis funktsioone (mida keerulisem see on), seda rohkem aega tuleb kulutada selle kontrollimiseks, et uus funktsionaalsus ei rikuks vana. SeetĂ”ttu, mida keerulisem projekt — seda rohkem on vaja automatiseerimist regressioonitestimiseks.
  3. Iga kord, kui jĂ€tame vea tootmisse ja kasutaja selle leiab, peame kulutama tĂ€iendavat aega, et minna lĂ€bi projekti elutsĂŒklist, alustades punktist 1 (Töö nĂ”udmistega, antud juhul kasutajatega). Kuna vead, mida me jĂ€tame, on ĂŒldjuhul teadmata, jÀÀb meile ainult ĂŒks vĂ”imalus optimeerimiseks — iga kasutajate leitud viga tuleb kaasata regressioonitestimisse, et olla kindel, et see enam ei teki.

Allikas: habr.com

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster