Úvod
Dobrý deň, Habráci. Riešil som nedávno testovaciu úlohu na pozíciu QA Lead pre jednu fintech spoločnosť. Prvá úloha, vypracovať testovací plán s úplným kontrolným zoznamom a príkladmi testovacích scénarov na kontrolu elektrického čajníka, sa rieši triviálne:
Jednoduchšie testovacie plány s úplným kontrolným zoznamom je ťažké vymyslieť.
Druhá časť sa ukázala ako otázka: "Existujú nejaké problémy, ktoré sú spoločné pre všetkých testerov a bránia im pracovať efektívnejšie?"
Prvé, čo ma napadlo: vymenovať všetky viac-menej známe problémy, s ktorými som sa stretol počas testovania, filtrovať drobnosti, zvyšok zhrnúť. Rýchlo som si však uvedomil, že induktívna metóda odpovie na otázku, ktorá sa týka nie "všetkých", ale, v tom lepšom prípade, iba "väčšiny" testerov. Preto som sa rozhodol prístup zmeniť na deduktívny, a tu je výsledok.
Definície
Prvé, čo obvykle robím, keď riešim novú úlohu, je pokúsiť sa pochopiť, o čom vlastne ide. A na to musím pochopiť význam slov, ktorými bola úloha formulovaná. Kľúčové slová, pri ktorých je potrebné sa zorientovať, sú:
- probléma
- tester
- práca testera
- efektívnosť práce testera
Obráťme sa na Wikipédia a zdravý rozum:
(z lat. problém, z gréčtiny πρόβλημα) v širokom zmysle - zložitá teoretická alebo praktická otázka, ktorá si vyžaduje skúmanie, vyriešenie; v vede - rozporuplná situácia, ktorá sa prejavuje ako protikladné pozície pri vysvetlení nejakých javov, objektov, procesov a vyžaduje adekvátnu teóriu na jej vyriešenie; v živote sa problém formuluje v prehľadnej podobe ako "viem čo, neviem ako", teda je známe, čo je potrebné dosiahnuť, ale nie je známe, ako to urobiť. Pochádza z neskorej latiny problēma, z gréčtiny πρόβλημα „vrhnuté dopredu, postavené vpredu“; od προβάλλω „vrhať dopredu, vystavovať pred sebou; obviňovať“.
Význam nie je veľa, v podstate je "problém" = "čokoľvek, s čím sa treba zaoberať".
— špecialista (nebudeme rozdeľovať na druhy, pretože nás zaujímajú všetci testeri), ktorý sa podieľa na testovaní komponentu alebo systému, a výsledkom jeho činnosti je:
— súbor aktivít, ktoré sa týkajú testovania.
(lat. effectivus) — pomer medzi dosiahnutým výsledkom a použitými zdrojmi (:2015).
— následok reťazca (série) činností (výsledok) alebo udalostí, vyjadrených kvalitne alebo kvantitativne. Možné výsledky zahŕňajú výhody, nevýhody, zisk, stratu, hodnotu a víťazstvo.
Rovnako ako v prípade „problému“, málo významu: niečo, čo sa nakoniec podarilo.
— kvantitatívne merateľná schopnosť vykonávať akúkoľvek činnosť človeka alebo ľudí; podmienky, ktoré umožňujú dosiahnuť požadovaný výsledok pomocou určitých transformácií. Tester — človek, a v súlade s teóriou životných zdrojov, každý človek vlastní štyri ekonomické aktíva:
peňažných prostriedkov (príjem) — obnoviteľný zdroj;
energie (životná sila) — čiastočne obnoviteľný zdroj;
času — pevný a principiálne neobnoviteľný zdroj;
poznatkov (informácií) — obnoviteľný zdroj, ktorý je súčasťou ľudského kapitálu, ktorý môže rásť aj sa rozpadnúť.
Chcem poznamenať, že definícia efektívnosti v našom prípade nie je úplne presná, pretože čím viac poznatkov používame, tým nižšia je efektívnosť. Preto by som predefinoval efektívnosť ako „pomer medzi dosiahnutým výsledkom a vynaloženými zdrojmi“. Potom je všetko správne: vedomosti sa pri práci nevyčerpávajú, ale znižujú náklady na jediný principiálne neobnoviteľný zdroj testera — jeho čas.
Riešenie
Tak hľadáme globálne problémy testerov, ktoré zhoršujú efektívnosť ich práce.
Najvýznamnejším zdrojom, ktorý sa vynakladá na prácu testera, je jeho čas (ostatné sa dajú doň nejako premietnuť), a aby sme mohli hovoriť o presnom výpočte efektívnosti, je potrebné aj výsledok prispôsobiť času.
Prezentujeme si systém, ktorého životaschopnosť zaisťuje svojou prácou tester. Takýmto systémom je projekt, do ktorého patrí tester. Životný cyklus projektu môžeme zhruba predstaviť nasledovným algoritmom:
- Práca s požiadavkami
- Formulácia technickej špecifikácie
- Vývoj
- Testovanie
- Uvedenie do výroby
- Podpora (goto p.1)
Pri tom sa celý projekt dá rekurzívne rozdeliť na podprojekty (funkcie), s rovnakým životným cyklom.
Z pohľadu projektu je efektivita jeho realizácie tým vyššia, čím menej času na ňu bolo vynaložené.
Týmto prichádzame k definícii maximálnej možné efektivity testera z pohľadu projektu — je to také stavenie projektu, keď čas na testovanie je nulový. A celkovým problémom pre všetkých testerov je nemožnosť tohto času dosiahnuť.
Ako s tým naložiť?
Závery sú pomerne jasné a mnohí ich už dávno používajú:
- Vývoj a testovanie by mali začínať a končiť takmer súčasne (toho sa zvyčajne zaoberá oddelenie ). Ideálny variant je, keď celá vyvíjaná funkcionalita je k okamihu dokončenia už pokrytá automatizovanými testami, usporiadanými v regresnom (a pokiaľ možno aj pred-komitnom) testovaní pomocou nejakého .
- Čím viac funkcií je v projekte (čím je zložitejší), tým viac času bude nutné vynaložiť na kontrolu, že nová funkcionalita neporušila starú. Preto čím zložitejší projekt, tým viac je potrebné automatizácie .
- Každý raz, keď prejdeme chybu do produkcie a používateľ ju nájde, musíme investovať ďalší čas na prechádzanie životným cyklom projektu začiatočného od p.1 (Práca s požiadavkami, v tomto prípade, používateľov). Keďže dôvody prechodu chyby sú vo všeobecnosti neznáme, jediné možné zlepšenie — každá chyba nájdená používateľmi by mala byť zahrnutá do regresného testovania, aby sme mali istotu, že sa už znovu neobjaví.
Zdroj: habr.com
