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.