Sobes.tech
Junior

Czy możesz opowiedzieć o testach akceptacyjnych?

sobes.tech AI

Odpowiedź od AI

Test akceptacyjny (Acceptance Testing) to poziom testowania, na którym sprawdzana jest gotowość produktu do wydania (decyzja go/no-go).

Główne cechy i cele:

  • Weryfikacja zgodności z wymaganiami klienta: Funkcjonalność, wydajność, użyteczność i bezpieczeństwo są oceniane z punktu widzenia użytkownika końcowego lub klienta.
  • Udział zainteresowanych stron: Przeprowadzany przez klientów, analityków biznesowych, użytkowników końcowych lub ich przedstawicieli.
  • Rodzaje:
    • Test alfa: Przeprowadzany przez wewnętrzny zespół (często, ale nie zawsze, w obecności klienta) w środowisku dewelopera lub testera.
    • Test beta: Przeprowadzany przez rzeczywistych użytkowników w ich rzeczywistym środowisku pracy.
  • Kryteria akceptacji: Jasno określone, mierzalne warunki, które muszą zostać spełnione, aby funkcjonalność została uznana za zaakceptowaną. Zazwyczaj formułowane w postaci historii użytkownika lub scenariuszy.
    # Przykład scenariusza z Cucumber
    Scenariusz: Logowanie pomyślne
        Zakłada się, że użytkownik jest na stronie logowania
        Gdy użytkownik wprowadza poprawne dane uwierzytelniające
        I klika przycisk logowania
        To użytkownik zostaje przekierowany do pulpitu nawigacyjnego
    
  • Związek z innymi poziomami testowania: Przeprowadzany po testach systemowych, gdy system jako całość został przetestowany i jest uważany za stabilny.
  • Wynik: Decyzja, czy produkt spełnia oczekiwania klienta i jest gotowy do wydania.

Narzędzia: Mogą być używane te same narzędzia co do testów systemowych (Selenium, Cypress, TestRail itp.), ale często stosuje się również frameworki BDD (Cucumber, SpecFlow, Behave) do automatyzacji testów opartych na historiach użytkownika.

# Przykład implementacji kroku z Cucumber w Pythonie z użyciem Selenium
from selenium.webdriver.common.by import By

@when('użytkownik wprowadza poprawne dane uwierzytelniające')
def step_impl(context):
    context.driver.find_element(By.ID, "username").send_keys("testuser")
    context.driver.find_element(By.ID, "password").send_keys("password123")