Sobes.tech
Junior

Podaj przykłady tego, jak zaczyna się proces testowania.

sobes.tech AI

Odpowiedź od AI

Proces testowania może rozpocząć się na różnych etapach cyklu życia rozwoju oprogramowania, w zależności od wybranej metodologii i specyfiki projektu.

Przykłady:

  • Wczesne testy (lub Shift-Left Testing):

    • Rozpoczynają się na etapach poprzedzających pisanie kodu: zbieranie i analizę wymagań, projektowanie architektury i interfejsu użytkownika.
    • QA bierze udział w przeglądzie dokumentacji (wymagań, specyfikacji), identyfikując niejasności, sprzeczności i potencjalne problemy na najwcześniejszym etapie.
    • Pisanie przypadków testowych, list kontrolnych i formułowanie strategii testowania równolegle z rozwojem.
    • Zastosowanie w podejściach Agile i DevOps.
  • Testowanie na etapie rozwoju (Unit Testing, Integration Testing):

    • Rozpoczyna się, gdy programiści zaczynają pisać kod.
    • Programiści piszą testy jednostkowe do sprawdzania poszczególnych modułów lub funkcji.
    • QA może uczestniczyć w planowaniu testów integracyjnych, pisaniu przypadków testowych lub nawet w pisaniu samych testów integracyjnych, jeśli korzystają z tych samych frameworków co programiści (w Automation QA).
  • Testowanie po wdrożeniu (System Testing, Acceptance Testing, Regression Testing):

    • Rozpoczyna się po zakończeniu i zintegrowaniu funkcjonalności lub modułu.
    • Przeprowadza się kompleksowe testy systemu jako całości.
    • Użytkownicy lub przedstawiciele klienta przeprowadzają testy akceptacyjne.
    • Po wprowadzeniu zmian przeprowadza się test regresji, aby upewnić się, że nowe zmiany nie zepsuły istniejącej funkcjonalności.
  • Testy wykrywania defektów w produkcji:

    • Proces testowania może zostać zainicjowany po wykryciu defektu w działającym systemie przez użytkownika lub narzędzia monitorujące.
    • QA analizuje defekt, odtwarza go, lokalizuje i tworzy raport o defekcie.
    • Rozpoczyna się cykl naprawy i testowania poprawionej wersji.
# Przykład udziału QA w wczesnym testowaniu (przegląd wymagań)
def review_requirements(requirements_doc):
    """
    Funkcja pseudo-kod do przeglądu dokumentu wymagań przez specjalistę QA.
    """
    issues_found = []
    # Sprawdzenie kompletności
    if not all_requirements_are_clear(requirements_doc):
        issues_found.append("Niektóre wymagania są niejasne lub dwuznaczne.")
    # Sprawdzenie sprzeczności
    if has_conflicting_requirements(requirements_doc):
        issues_found.append("Wykryto sprzeczne wymagania.")
    # Sprawdzenie testowalności
    if not are_all_requirements_testable(requirements_doc):
        issues_found.append("Niektóre wymagania są trudne lub niemożliwe do przetestowania.")
    
    return issues_found

# Założone funkcje pomocnicze
def all_requirements_are_clear(doc):
    pass # Logika sprawdzania jasności
def has_conflicting_requirements(doc):
    pass # Logika sprawdzania sprzeczności
def are_all_requirements_testable(doc):
    pass # Logika sprawdzania testowalności

Wybór momentu rozpoczęcia testów zależy od strategii projektu, ale tendencja do przesuwania testów na wcześniejsze etapy (wczesne testowanie) staje się coraz bardziej powszechna w celu poprawy jakości i obniżenia kosztów naprawy defektów.