Sobes.tech
Junior

Dajte primere kako počinje proces testiranja.

sobes.tech АИ

Одговор од АИ

Proces testiranja može započeti u različitim fazama životnog ciklusa razvoja softvera, u zavisnosti od odabrane metodologije i specifičnosti projekta.

Primeri:

  • Rano testiranje (ili Shift-Left Testing):

    • Počinje u fazama koje prethode pisanju koda: prikupljanje i analiza zahteva, projektovanje arhitekture i korisničkog interfejsa.
    • QA učestvuje u pregledu dokumentacije (zahteva, specifikacija), identifikujući nejasnoće, kontradikcije i potencijalne probleme u najranijoj fazi.
    • Pisanje test slučajeva, check-listi i formiranje strategije testiranja paralelno sa razvojem.
    • Primenjivo u Agile i DevOps pristupima.
  • Testiranje u fazi razvoja (Unit Testing, Integration Testing):

    • Počinje kada programeri počnu da pišu kod.
    • Programeri pišu Unit testove za proveru pojedinačnih modula ili funkcija.
    • QA može učestvovati u planiranju integracionog testiranja, pisanju test slučajeva ili čak pisanju samih integracionih testova, ako koriste iste framework-e kao i programeri (u Automation QA).
  • Testiranje nakon implementacije (System Testing, Acceptance Testing, Regression Testing):

    • Počinje nakon što je funkcionalnost ili modul završen i sastavljen u celinu.
    • Sprovodi se sveobuhvatno testiranje celokupnog sistema.
    • Korisnici ili predstavnici naručioca vrše prihvatno testiranje.
    • Nakon izmena, sprovodi se regresiono testiranje da bi se osiguralo da nove promene nisu narušile postojeću funkcionalnost.
  • Testiranje u produkciji za otkrivanje defekata:

    • Proces testiranja može biti iniciran otkrivanjem defekta u radu sistema od strane korisnika ili monitoring alata.
    • QA analizira defekt, reprodukuje ga, lokalizuje i kreira izveštaj o defektu.
    • Počinje ciklus ispravki i naknadnog testiranja ispravljene verzije.
# Primer učešća QA u ranom testiranju (pregled zahteva)
def review_requirements(requirements_doc):
    """
    Pseudokod za pregled dokumenta sa zahtevima od strane QA stručnjaka.
    """
    issues_found = []
    # Provera potpunosti
    if not all_requirements_are_clear(requirements_doc):
        issues_found.append("Neki zahtevi nisu jasni ili su dvosmisleni.")
    # Provera kontradikcija
    if has_conflicting_requirements(requirements_doc):
        issues_found.append("Otkrivene su kontradiktorne zahteve.")
    # Provera testabilnosti
    if not are_all_requirements_testable(requirements_doc):
        issues_found.append("Neki zahtevi su teško ili nemoguće testirati.")
    
    return issues_found

# Pretpostavljene pomoćne funkcije
def all_requirements_are_clear(doc):
    pass # Logika provere jasnoće
def has_conflicting_requirements(doc):
    pass # Logika provere kontradikcija
def are_all_requirements_testable(doc):
    pass # Logika provere testabilnosti

Početak testiranja zavisi od strategije projekta, ali je trend sve većeg pomeranja testiranja na ranije faze (ranо testiranje) radi poboljšanja kvaliteta i smanjenja troškova ispravke defekata.