Základný problém testovania

Úvod

Dobré popoludnie, obyvatelia Khabrovska. Práve teraz som riešil testovaciu úlohu na voľné pracovné miesto QA Lead pre fintech spoločnosť. Prvá úloha, vytvoriť plán testovania s kompletným kontrolným zoznamom a príkladmi testovacích prípadov na testovanie rýchlovarnej kanvice, sa dá vyriešiť triviálne:

Ale druhá časť sa ukázala ako otázka: „Existujú nejaké problémy spoločné pre všetkých testerov, ktoré im bránia v efektívnejšej práci?

Prvé, čo ma napadlo, bolo vymenovať všetky viac či menej nápadné problémy, s ktorými som sa počas testovania stretol, vyradiť drobnosti a zvyšok zosumarizovať. Rýchlo som si však uvedomil, že induktívna metóda by odpovedala na otázku, ktorá sa netýkala „všetkých“, ale v najlepšom prípade iba „väčšiny“ testerov. Preto som sa rozhodol k tomu pristúpiť z druhej strany, deduktívne, a tak sa aj stalo.

vymedziť

Prvá vec, ktorú zvyčajne robím pri riešení nového problému, je pokúsiť sa pochopiť, o čo ide, a aby som to urobil, potrebujem pochopiť význam slov, ktoré ho predstavujú. Kľúčové slová, ktorým treba porozumieť, sú nasledovné:

  • problém
  • tester
  • práca testera
  • účinnosť testera

Obráťme sa na Wikipédiu a zdravý rozum:
Problém (staroveká gréčtina πρόβλημα) v širšom zmysle - komplexná teoretická alebo praktická otázka, ktorá si vyžaduje štúdium a riešenie; vo vede - rozporuplná situácia, ktorá sa objavuje vo forme protichodných pozícií pri vysvetľovaní akýchkoľvek javov, predmetov, procesov a vyžaduje si adekvátnu teóriu na jej vyriešenie; v živote je problém formulovaný ľudom zrozumiteľnou formou: „viem čo, neviem ako“, teda vie sa, čo treba získať, ale nevie sa, ako na to. . Pochádza neskoro. lat. problém, z gréčtiny. πρόβλημα „hodený dopredu, umiestnený vpredu“; z προβάλλω „hodiť dopredu, postaviť pred seba; obviňovať“.

V skutočnosti to nedáva veľký zmysel, „problém“ = „všetko, čo treba riešiť“.
Tester - špecialista (nerozdeľujeme na typy, pretože nás zaujímajú všetci testeri), ktorý sa podieľa na testovaní komponentu alebo systému, ktorého výsledkom je:
Práca testera — súbor činností súvisiacich s testovaním.
Efektívnosť (lat. effectivus) - vzťah medzi dosiahnutým výsledkom a použitými zdrojmi (ISO 9000: 2015).
Výsledok - dôsledok reťazca (radu) úkonov (výsledku) alebo udalostí, vyjadrený kvalitatívne alebo kvantitatívne. Možné výsledky zahŕňajú výhodu, nevýhodu, zisk, stratu, hodnotu a víťazstvo.
Rovnako ako v prípade „problému“ má malý význam: niečo, čo sa objavilo ako výsledok práce.
prostriedky - kvantitatívne merateľná možnosť vykonávania akejkoľvek činnosti osoby alebo ľudí; podmienky, ktoré umožňujú použitie určitých transformácií na získanie požadovaného výsledku. Tester je osoba av súlade s teóriou životne dôležitých zdrojov je každá osoba vlastníkom štyroch ekonomických aktív:
hotovosť (príjem) je obnoviteľný zdroj;
energia (životná sila) je čiastočne obnoviteľný zdroj;
čas je pevný a v podstate neobnoviteľný zdroj;
znalosti (informácie) sú obnoviteľným zdrojom, sú súčasťou ľudského kapitálu, ktorý môže rásť a môže byť zničený[1].

Chcel by som poznamenať, že definícia efektívnosti v našom prípade nie je úplne správna, pretože čím viac poznatkov používame, tým nižšia je účinnosť. Preto by som nanovo definoval efektivitu ako „pomer medzi dosiahnutými výsledkami a vynaloženými zdrojmi“. Potom je všetko správne: vedomosťami sa pri práci neplytvá, ale znižuje to náklady na jediný zásadne neobnoviteľný zdroj testera – jeho čas.

rozhodnutie

Hľadáme teda globálne problémy testerov, ktoré zhoršujú efektivitu ich práce.
Najvýznamnejším zdrojom, ktorý sa vynakladá na prácu testera, je jeho čas (zvyšok sa naň dá skrátiť tak či onak) a aby sme mohli hovoriť o správnom výpočte efektívnosti, musí sa aj výsledok zredukovať na čas. .
Na tento účel zvážte systém, ktorého životaschopnosť tester svojou prácou zabezpečuje. Takýmto systémom je projekt, ktorého tím zahŕňa testera. Životný cyklus projektu možno zhruba znázorniť pomocou nasledujúceho algoritmu:

  1. Práca s požiadavkami
  2. Tvorba technických špecifikácií
  3. dizajn
  4. Testovanie
  5. Uvoľnenie do výroby
  6. Podpora (prejdi na položku 1)

V tomto prípade je možné celý projekt rekurzívne rozdeliť na podprojekty (vlastnosti), s rovnakým životným cyklom.
Z pohľadu projektu platí, že čím menej času sa mu venuje, tým je jeho realizácia efektívnejšia.
Tým sa dostávame k definícii maximálnej možnej efektivity testera z pohľadu projektu – ide o stav projektu, kedy je čas na testovanie nulový. Spoločným problémom všetkých testerov je neschopnosť dosiahnuť tento čas.

Ako sa s tým vysporiadať?

Závery sú celkom zrejmé a mnohí ich používajú už dlho:

  1. Vývoj a testovanie by sa malo začať a skončiť takmer súčasne (zvyčajne to robí oddelenie QA). Ideálnou možnosťou je, keď je všetka vyvíjaná funkcionalita už pokrytá autotestami v čase, keď je pripravená, organizovaná do regresného (a ak je to možné, predbežného testovania) pomocou nejakého druhu CI.
  2. Čím viac funkcií má projekt (čím je zložitejší), tým viac času bude treba venovať kontrole, či nová funkčnosť neporušuje starú. Preto čím je projekt zložitejší, tým je potrebná väčšia automatizácia regresné testovanie.
  3. Zakaždým, keď nám chýba chyba v produkcii a používateľ ju nájde, musíme stráviť ďalší čas prechádzaním životného cyklu projektu od bodu 1 (Práca s požiadavkami, v tomto prípade používateľmi). Keďže dôvody vynechania chyby sú vo všeobecnosti neznáme, zostáva nám len jedna optimalizačná cesta – každá chyba, ktorú používatelia nájdu, musí byť zahrnutá do regresného testovania, aby sme si boli istí, že sa už neobjaví.

Zdroj: hab.com

Pridať komentár