Sobes.tech
Junior

Uveďte príklady toho, ako začína proces testovania.

sobes.tech AI

Odpoveď od AI

Proces testovania môže začať v rôznych fázach životného cyklu vývoja softvéru, v závislosti od zvolenej metodológie a špecifikácií projektu.

Príklady:

  • Rané testovanie (alebo Shift-Left Testing):

    • Začína v etapách, ktoré predchádzajú písaniu kódu: zber a analýza požiadaviek, navrhovanie architektúry a používateľského rozhrania.
    • QA sa zúčastňuje revízie dokumentácie (požiadavky, špecifikácie), identifikujúc nejasnosti, rozpory a potenciálne problémy v najskoršej fáze.
    • Písanie testovacích prípadov, kontrolných zoznamov a tvorba stratégie testovania paralelne s vývojom.
    • Použiteľné v Agile a DevOps prístupoch.
  • Testovanie v štádiu vývoja (Unit Testing, Integration Testing):

    • Začína, keď vývojári začnú písať kód.
    • Vývojári píšu jednotkové testy na kontrolu jednotlivých modulov alebo funkcií.
    • QA môže participovať na plánovaní integračného testovania, písaní testovacích prípadov alebo dokonca písaní samotných integračných testov, ak používajú rovnaké rámce ako vývojári (v Automation QA).
  • Testovanie po nasadení (System Testing, Acceptance Testing, Regression Testing):

    • Začína po dokončení funkčnosti alebo modulu a ich zoskupení do celku.
    • Vykonáva sa komplexné testovanie celého systému.
    • Používatelia alebo zástupcovia zákazníka vykonávajú akceptačné testovanie.
    • Po vykonaní zmien sa vykonáva regresné testovanie, aby sa overilo, že nové zmeny nezničili existujúcu funkčnosť.
  • Testovanie odhaľovania chýb v produkcii:

    • Proces testovania môže byť iniciovaný odhalením chyby v bežiacom systéme používateľom alebo monitorovacími nástrojmi.
    • QA analyzuje chybu, reprodukuje ju, lokalizuje a vytvára správu o chybe.
    • Začína cyklus opravy a následného testovania opravené verzie.
# Príklad účasti QA v ranom testovaní (prehliadanie požiadaviek)
def review_requirements(requirements_doc):
    """
    Pseudokód pre prehliadanie dokumentu s požiadavkami od QA špecialistu.
    """
    issues_found = []
    # Kontrola úplnosti
    if not all_requirements_are_clear(requirements_doc):
        issues_found.append("Niektoré požiadavky nie sú jasné alebo sú dvojzmyselné.")
    # Kontrola rozporov
    if has_conflicting_requirements(requirements_doc):
        issues_found.append("Zistené rozporuplné požiadavky.")
    # Kontrola testovateľnosti
    if not are_all_requirements_testable(requirements_doc):
        issues_found.append("Niektoré požiadavky sú ťažko alebo nemožné otestovať.")
    
    return issues_found

# Predpokladané pomocné funkcie
def all_requirements_are_clear(doc):
    pass # Logika kontroly jasnosti
def has_conflicting_requirements(doc):
    pass # Logika kontroly rozporov
def are_all_requirements_testable(doc):
    pass # Logika kontroly testovateľnosti

Začiatok testovania závisí od stratégie projektu, ale tendencia posúvať testovanie do ľavej strany (rané testovanie) sa stáva čoraz bežnejšou na zlepšenie kvality a zníženie nákladov na opravu chýb.