Pagrindinė testavimo problema

įvedimas

Laba diena, Chabrovsko gyventojai. Kaip tik dabar sprendžiau laisvos kokybės užtikrinimo vadovo darbo užduotį fintech įmonėje. Pirmąją užduotį, sudaryti bandymo planą su visu kontroliniu sąrašu ir elektrinio virdulio bandymo pavyzdžių pavyzdžiais, galima išspręsti trivialiai:

Tačiau antroji dalis pasirodė kaip klausimas: „Ar yra visiems testuotojams būdingų problemų, trukdančių jiems dirbti efektyviau?

Pirmas dalykas, kuris atėjo į galvą, buvo išvardyti visas daugiau ar mažiau pastebimas problemas, su kuriomis susidūriau testavimo metu, išvalyti smulkmenas ir apibendrinti visa kita. Tačiau greitai supratau, kad indukcinis metodas atsakys į klausimą, kuris tinka ne „visiems“, o geriausiu atveju tik „daugumai“ testuotojų. Todėl nusprendžiau prie to prieiti iš kitos pusės, dedukciškai, taip ir atsitiko.

Apibrėžimai

Pirmas dalykas, kurį paprastai darau spręsdamas naują problemą, yra pabandyti suprasti, kas tai yra, o tai padaryti turiu suprasti ją keliančių žodžių reikšmę. Pagrindiniai žodžiai, kuriuos reikia suprasti, yra šie:

  • problema
  • testeris
  • testuotojo darbas
  • testerio efektyvumas

Atsigręžkime į Vikipediją ir sveiką protą:
Problema (senovės graikų πρόβλημα) plačiąja prasme - sudėtingas teorinis ar praktinis klausimas, kurį reikia ištirti ir išspręsti; moksle - prieštaringa situacija, atsirandanti priešingų pozicijų pavidalu aiškinant bet kokius reiškinius, objektus, procesus ir reikalaujanti adekvačios teorijos jai išspręsti; gyvenime problema suformuluojama žmonėms suprantama forma: „žinau ką, nežinau kaip“, tai yra žinoma, ką reikia gauti, bet nežinoma, kaip tai padaryti. . Ateina vėlai. lat. problema, iš graikų kalbos. πρόβλημα „išmestas į priekį, padėtas priekyje“; iš προβάλλω „mesk į priekį, pastatyk priešais save; kaltinti".

Tiesą sakant, tai nėra prasminga, „problema“ = „viskas, ką reikia spręsti“.
Testeris - specialistas (neskirstysime į tipus, nes mus domina visi testuotojai), kuris dalyvauja testuojant komponentą ar sistemą, kurios rezultatas yra:
Testuotojo darbas — su testavimu susijusių veiklų rinkinys.
Efektyvumas (lot. Effectivus) – santykis tarp pasiekto rezultato ir panaudotų išteklių (ISO 9000: 2015).
Rezultatas - veiksmų (rezultato) ar įvykių grandinės (eilės) pasekmė, išreikšta kokybiškai arba kiekybiškai. Galimi rezultatai yra pranašumas, trūkumas, pelnas, praradimas, vertė ir pergalė.
Kaip ir „problema“, yra mažai prasmės: kažkas, kas atsirado dėl darbo.
išteklių - kiekybiškai išmatuojama galimybė atlikti bet kokią asmens ar žmonių veiklą; sąlygos, leidžiančios naudoti tam tikras transformacijas norint gauti norimą rezultatą. Testuotojas yra asmuo, o pagal gyvybinių išteklių teoriją kiekvienas asmuo yra keturių ekonominių išteklių savininkas:
grynieji pinigai (pajamos) yra atsinaujinantis išteklius;
energija (gyvybės jėga) yra iš dalies atsinaujinantis išteklius;
laikas yra pastovus ir iš esmės neatsinaujinantis išteklius;
žinios (informacija) yra atsinaujinantis išteklius, tai žmogiškojo kapitalo dalis, kuri gali augti ir būti naikinama[1].

Norėčiau pastebėti, kad efektyvumo apibrėžimas mūsų atveju nėra visiškai teisingas, nes kuo daugiau žinių panaudojame, tuo efektyvumas mažesnis. Todėl efektyvumą iš naujo apibrėžčiau kaip „santykį tarp pasiektų rezultatų ir išleistų išteklių“. Tada viskas teisinga: žinios nešvaistomos darbo metu, bet sumažina testuotojo vienintelio iš esmės neatsinaujinančio resurso – laiko – sąnaudas.

sprendimas

Taigi, ieškome globalių testuotojų problemų, kurios kenkia jų darbo efektyvumui.
Reikšmingiausias išteklius, kuris skiriamas testuotojo darbui, yra jo laikas (likusį vienaip ar kitaip galima sumažinti iki jo), o kad galėtume kalbėti apie teisingą efektyvumo skaičiavimą, rezultatas taip pat turi būti sumažintas iki laiko. .
Norėdami tai padaryti, apsvarstykite sistemą, kurios gyvybingumą bandytojas užtikrina savo darbu. Tokia sistema yra projektas, kurio komandoje yra testuotojas. Projekto gyvavimo ciklas gali būti apytiksliai pavaizduotas tokiu algoritmu:

  1. Darbas su reikalavimais
  2. Techninių specifikacijų formavimas
  3. Vystymasis
  4. Bandymai
  5. Išleidimas į gamybą
  6. Palaikymas (eikite į 1 elementą)

Tokiu atveju visą projektą galima rekursyviai suskirstyti į subprojektus (ypatybes), kurių gyvavimo ciklas yra toks pat.
Projekto požiūriu, kuo mažiau jam skiriama laiko, tuo efektyvesnis jo įgyvendinimas.
Taigi, mes pasiekiame maksimalaus galimo testerio efektyvumo apibrėžimą projekto požiūriu - tai yra projekto būsena, kai laikas testavimui yra lygus nuliui. Dažna visų bandytojų problema yra nesugebėjimas pasiekti šio laiko.

Kaip su tuo susitvarkyti?

Išvados yra gana akivaizdžios ir daugelis jas naudojo ilgą laiką:

  1. Kūrimas ir testavimas turėtų prasidėti ir baigtis beveik vienu metu (paprastai tai atlieka skyrius QA). Idealus variantas yra tada, kai visas kuriamas funkcionalumas jau yra atliktas automatiniais testais, kol jis bus paruoštas, suskirstytas į regresinį (ir, jei įmanoma, išankstinį) testavimą naudojant tam tikrą CI.
  2. Kuo daugiau funkcijų turi projektas (kuo jis sudėtingesnis), tuo daugiau laiko reikės sugaišti tikrinant, ar nauja funkcija nesulaužo senosios. Taigi, kuo sudėtingesnis projektas, tuo daugiau reikia automatizuoti regresinis testas.
  3. Kiekvieną kartą, kai mes praleidžiame klaidą gamyboje ir ją randa vartotojas, turime praleisti papildomą laiką, pereidami per projekto gyvavimo ciklą, pradedant nuo 1 punkto (Darbas su reikalavimais, šiuo atveju vartotojai). Kadangi klaidų dingimo priežastys paprastai nėra žinomos, mums belieka tik vienas optimizavimo kelias – kiekviena vartotojų rasta klaida turi būti įtraukta į regresijos testavimą, kad įsitikintume, jog ji daugiau nepasirodys.

Šaltinis: www.habr.com

Добавить комментарий