Základní problém testování

úvod

Dobré odpoledne, obyvatelé Chabrovska. Zrovna teď jsem řešil testovací úlohu na volné pracovní místo QA Lead pro fintech společnost. První úkol, vytvořit testovací plán s kompletním kontrolním seznamem a příklady testovacích případů pro testování rychlovarné konvice, lze vyřešit triviálně:

Ale druhá část se ukázala jako otázka: "Existují nějaké problémy společné všem testerům, které jim brání v efektivnější práci?"

První, co mě napadlo, bylo vyjmenovat všechny více či méně znatelné problémy, se kterými jsem se během testování setkal, vyplevelit drobnosti a zbytek shrnout. Rychle jsem si ale uvědomil, že induktivní metoda by odpověděla na otázku, která se netýkala „všech“, ale v nejlepším případě pouze „většiny“ testerů. Proto jsem se rozhodl k tomu přistoupit z druhé strany, deduktivně, a tak se stalo.

Definice

První věc, kterou obvykle dělám, když řeším nový problém, je pokusit se porozumět tomu, o čem to celé je, a k tomu potřebuji porozumět významu slov, která to představují. Klíčová slova k pochopení jsou následující:

  • problém
  • tester
  • práce testera
  • účinnost testeru

Obraťme se na Wikipedii a zdravý rozum:
Problém (starořecky πρόβλημα) v širokém smyslu - komplexní teoretická nebo praktická otázka, která vyžaduje studium a řešení; ve vědě - rozporuplná situace, která se objevuje v podobě protichůdných pozic při vysvětlování jakýchkoliv jevů, objektů, procesů a k jejímu řešení vyžaduje adekvátní teorii; v životě je problém formulován lidem srozumitelnou formou: „vím co, nevím jak“, to znamená, že se ví, co je potřeba získat, ale neví se, jak na to . Pochází pozdě. lat. problém, z řečtiny. πρόβλημα „hozen dopředu, umístěn vpředu“; z προβάλλω „hodit dopředu, postavit před sebe; obviňovat".

Ve skutečnosti to nedává moc smysl, „problém“ = „cokoli, s čím je třeba se vypořádat“.
Tester - specialista (nebudeme dělit na typy, protože nás zajímají všichni testeři), který se podílí na testování komponenty nebo systému, jehož výsledkem je:
Práce testera — soubor činností souvisejících s testováním.
Účinnost (lat. effectivus) - vztah mezi dosaženým výsledkem a použitými zdroji (ISO 9000: 2015).
Výsledek - důsledek řetězce (řady) akcí (výsledků) nebo událostí, vyjádřených kvalitativně nebo kvantitativně. Mezi možné výsledky patří výhoda, nevýhoda, zisk, ztráta, hodnota a vítězství.
Stejně jako u „problému“ má malý význam: něco, co se objevilo jako výsledek práce.
prostředky - kvantitativně měřitelná možnost vykonávat jakoukoli činnost člověka nebo lidí; podmínky, které umožňují použití určitých transformací k získání požadovaného výsledku. Tester je osoba a v souladu s teorií životně důležitých zdrojů je každá osoba vlastníkem čtyř ekonomických aktiv:
hotovost (výnos) je obnovitelný zdroj;
energie (životní síla) je částečně obnovitelný zdroj;
čas je pevný a v zásadě neobnovitelný zdroj;
znalosti (informace) jsou obnovitelným zdrojem, jsou součástí lidského kapitálu, který může růst a být zničen[1].

Chtěl bych poznamenat, že definice účinnosti v našem případě není zcela správná, protože čím více znalostí používáme, tím nižší je účinnost. Proto bych účinnost předefinoval jako „poměr mezi dosaženými výsledky a vynaloženými zdroji“. Pak je vše správně: znalosti se při práci neplýtvají, ale snižují náklady na testerův jediný zásadně neobnovitelný zdroj – jeho čas.

rozhodnutí

Hledáme tedy globální problémy testerů, které zhoršují efektivitu jejich práce.
Nejvýznamnějším zdrojem, který se vynakládá na práci testera, je jeho čas (zbytek se na něj dá tak či onak zredukovat), a abychom mohli hovořit o správném výpočtu efektivity, musí být i výsledek zredukován na čas. .
Za tímto účelem zvažte systém, jehož životaschopnost tester svou prací zajišťuje. Takovým systémem je projekt, v jehož týmu je tester. Životní cyklus projektu lze zhruba znázornit následujícím algoritmem:

  1. Práce s požadavky
  2. Tvorba technických specifikací
  3. Vývoj
  4. Testování
  5. Uvolnění do výroby
  6. Podpora (přejděte na položku 1)

V tomto případě lze celý projekt rekurzivně rozdělit na dílčí projekty (vlastnosti), se stejným životním cyklem.
Z hlediska projektu platí, že čím méně času se mu věnuje, tím efektivnější je jeho realizace.
Tím se dostáváme k definici maximální možné efektivity testeru z pohledu projektu - to je stav projektu, kdy je čas na testování nulový. Společným problémem všech testerů je nemožnost dosáhnout tohoto času.

Jak se s tím vypořádat?

Závěry jsou zcela zřejmé a mnozí je používají již dlouhou dobu:

  1. Vývoj a testování by měly začít a skončit téměř současně (obvykle to provádí oddělení QA). Ideální možností je, když je veškerá vyvíjená funkčnost již pokryta autotesty v době, kdy je připravena, organizována do regresního (a pokud je to možné, předem připraveného) testování pomocí nějakého druhu CI.
  2. Čím více funkcí má projekt (čím je složitější), tím více času bude muset strávit kontrolou, zda nová funkce neporušuje tu starou. Čím je tedy projekt složitější, tím je potřeba více automatizace regresní testování.
  3. Pokaždé, když přehlédneme chybu ve výrobě a uživatel ji najde, musíme strávit další čas procházením životního cyklu projektu od bodu 1 (Práce s požadavky, v tomto případě s uživateli). Vzhledem k tomu, že důvody pro vynechání chyby jsou obecně neznámé, zbývá nám pouze jedna optimalizační cesta – každá chyba nalezená uživateli musí být zahrnuta do regresního testování, aby bylo jisté, že se znovu neobjeví.

Zdroj: www.habr.com

Přidat komentář