Temeljni problem testiranja

Uvod

Dobar dan, stanovnici Khabrovsk. Upravo sam rješavao testni zadatak za slobodno mjesto QA Lead za fintech tvrtku. Prvi zadatak, izraditi plan testiranja s cjelovitim kontrolnim popisom i primjerima testnih slučajeva za testiranje električnog kuhala za vodu, može se trivijalno riješiti:

Ali pokazalo se da je drugi dio bio pitanje: "Postoje li problemi zajednički svim testerima koji ih sprječavaju da rade učinkovitije?"

Prvo što mi je palo na pamet bilo je nabrojati sve više ili manje uočljive probleme s kojima sam se susreo tijekom testiranja, izbaciti sitnice i sažeti ostale. Ali brzo sam shvatio da bi induktivna metoda odgovorila na pitanje koje se ne odnosi na “sve”, nego, u najboljem slučaju, samo na “većinu” testera. Stoga sam odlučio pristupiti s druge strane, deduktivno, i to se dogodilo.

definirati

Prva stvar koju obično činim kada rješavam novi problem je da pokušam razumjeti o čemu se radi, a da bih to učinio moram razumjeti značenje riječi koje ga postavljaju. Ključne riječi za razumijevanje su sljedeće:

  • problem
  • tester
  • posao ispitivača
  • učinkovitost ispitivača

Okrenimo se Wikipediji i zdravom razumu:
Problem (starogrč. πρόβλημα) u širem smislu - složeno teorijsko ili praktično pitanje koje zahtijeva proučavanje i rješavanje; u znanosti - proturječna situacija koja se pojavljuje u obliku suprotstavljenih stajališta u objašnjenju bilo kojeg fenomena, predmeta, procesa i zahtijeva odgovarajuću teoriju za njezino rješavanje; u životu se problem formulira u obliku koji je ljudima razumljiv: "znam što, ne znam kako", odnosno zna se što treba dobiti, ali se ne zna kako to učiniti . Dolazi od kasno. lat. problem, od grč. πρόβλημα “bačen naprijed, stavljen ispred”; od προβάλλω „baciti naprijed, staviti ispred sebe; kriviti".

Nema puno smisla, zapravo, "problem" = "sve što treba riješiti."
Tester - stručnjak (nećemo dijeliti na vrste, jer nas zanimaju svi testeri) koji sudjeluje u testiranju komponente ili sustava, čiji je rezultat:
Posao ispitivača — skup aktivnosti povezanih s ispitivanjem.
Učinkovitost (lat. effectivus) - odnos između postignutog rezultata i utrošenih sredstava (ISO 9000: 2015).
Proizlaziti - posljedica lanca (niza) radnji (rezultata) ili događaja, izražena kvalitativno ili kvantitativno. Mogući ishodi uključuju prednost, nedostatak, dobitak, gubitak, vrijednost i pobjedu.
Kao i kod "problema", malo je značenja: nešto što je proizašlo kao rezultat rada.
izvor - kvantitativno mjerljiva mogućnost obavljanja bilo koje djelatnosti osobe ili ljudi; uvjeti koji omogućuju dobivanje željenog rezultata pomoću određenih transformacija. Ispitivač je osoba, a prema teoriji vitalnih resursa svaka osoba je vlasnik četiri ekonomske imovine:
gotovina (dohodak) je obnovljivi resurs;
energija (životna snaga) je djelomično obnovljiv resurs;
vrijeme je fiksan i fundamentalno neobnovljiv resurs;
znanje (informacija) je obnovljivi resurs, dio je ljudskog kapitala koji može rasti i biti uništen[1].

Želio bih napomenuti da definicija učinkovitosti u našem slučaju nije sasvim točna, jer što više znanja koristimo, to je učinkovitost manja. Stoga bih redefinirao učinkovitost kao "omjer između postignutih rezultata i utrošenih resursa". Tada je sve točno: znanje se ne troši uzalud tijekom rada, već smanjuje troškove jedinog fundamentalno neobnovljivog resursa ispitivača - njegovog vremena.

odluka

Dakle, tražimo globalne probleme testera koji umanjuju učinkovitost njihovog rada.
Najznačajniji resurs koji se troši na rad ispitivača je njegovo vrijeme (ostalo se na njega može svesti na ovaj ili onaj način), a da bismo mogli govoriti o ispravnom izračunu učinkovitosti i rezultat se mora svesti na vrijeme .
Da biste to učinili, razmotrite sustav čiju održivost ispitivač osigurava svojim radom. Takav sustav je projekt u čijem timu je i tester. Životni ciklus projekta može se grubo prikazati sljedećim algoritmom:

  1. Rad sa zahtjevima
  2. Formiranje tehničke specifikacije
  3. dizajn
  4. Testiranje
  5. Puštanje u proizvodnju
  6. Podrška (idi na stavku 1)

U tom slučaju cijeli projekt se može rekurzivno podijeliti na podprojekte (značajke), s istim životnim ciklusom.
Sa stajališta projekta, što je manje vremena utrošeno na njega, to je njegova provedba učinkovitija.
Tako dolazimo do definicije najveće moguće učinkovitosti testera sa stajališta projekta - to je stanje projekta kada je vrijeme za testiranje nula. Čest problem za sve testere je nemogućnost postizanja ovog vremena.

Kako se nositi s ovim?

Zaključci su sasvim očiti i mnogi ih koriste već duže vrijeme:

  1. Razvoj i testiranje trebaju započeti i završiti gotovo istovremeno (to obično radi odjel QA). Idealna opcija je kada su sve funkcionalnosti koje se razvijaju već pokrivene autotestovima u trenutku kada su spremne, organizirane u regresijsko (i, ako je moguće, pre-commit) testiranje koristeći neku vrstu CI.
  2. Što više značajki projekt ima (što je složeniji), to će više vremena biti potrebno utrošiti na provjeru da nova funkcionalnost ne kvari staru. Stoga, što je projekt složeniji, potrebna je veća automatizacija regresijsko testiranje.
  3. Svaki put kada propustimo grešku u proizvodnji i korisnik je pronađe, moramo potrošiti dodatno vrijeme prolazeći kroz životni ciklus projekta počevši od točke 1 (Rad sa zahtjevima, u ovom slučaju korisnicima). Budući da su razlozi propuštanja buga općenito nepoznati, ostaje nam samo jedan put optimizacije - svaki bug koji korisnici pronađu mora biti uključen u regresijsko testiranje kako bismo bili sigurni da se više neće pojaviti.

Izvor: www.habr.com

Dodajte komentar