Sobes.tech
Junior

Czy znasz jakieś rodzaje testów?

sobes.tech AI

Odpowiedź od AI

Tak, wiem.

Główne typy testów:

  • Testy funkcjonalne:

    • Testy dymne (Smoke Testing)
    • Testy sanity (Sanity Testing)
    • Testy integracyjne (Integration Testing)
    • Testy systemowe (System Testing)
    • Testy regresji (Regression Testing)
    • Testy akceptacyjne (Acceptance Testing) - obejmujące testy alfa i beta.
  • Testy niefunkcjonalne:

    • Testy wydajnościowe (Performance Testing) - obejmujące testy obciążeniowe, stresowe i wolumenowe.
    • Testy bezpieczeństwa (Security Testing)
    • Testy użyteczności (Usability Testing)
    • Testy kompatybilności (Compatibility Testing)
    • Testy niezawodności (Reliability Testing)
    • Testy dostępności (Accessibility Testing)
    • Testy lokalizacji (Localization Testing)
    • Testy internacjonalizacji (Internationalization Testing)
  • Testy związane ze zmianami:

    • Testy dymne (Smoke Testing)
    • Testy regresji (Regression Testing)
  • Testy strukturalne (oparte na kodzie):

    • Testy jednostkowe (Unit Testing)
    • Testy białej skrzynki (White Box Testing)
  • Testy oparte na doświadczeniu:

    • Testy eksploracyjne (Exploratory Testing)
    • Testy oparte na listach kontrolnych (Checklist-based Testing)
    • Testy scenariuszowe (Scenario-based Testing)

Przykłady zastosowania niektórych typów:

Typ testu Krótki opis Kiedy stosować?
Test dymny Sprawdzenie podstawowych funkcji po zbudowaniu lub wdrożeniu. Każda nowa kompilacja.
Test regresji Sprawdzenie, czy zmiany nie wprowadziły nowych błędów w istniejącej funkcjonalności. Po każdej zmianie lub naprawie błędów.
Test obciążeniowy Sprawdzenie zachowania systemu pod oczekiwanym obciążeniem. Przed uruchomieniem w produkcji, przy zmianach architektury.
Test jednostkowy Testowanie poszczególnych komponentów lub modułów kodu. Na etapie rozwoju, przez programistów.

W automatyzacji testów najczęściej automatyzujemy testy regresji, testy integracyjne i czasami testy wydajności i bezpieczeństwa.

// Przykład testów jednostkowych (JUnit)
public class Calculator {
    public int add(int a, int b) {
        return a + b;
    }
}

import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;

class CalculatorTest {
    @Test
    void testAdd() {
        Calculator calculator = new Calculator();
        assertEquals(5, calculator.add(2, 3), "Dodawanie 2 i 3 powinno dać 5");
    }
}
# Przykład testu Selenium Webdriver (Python)
from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.google.com")
print(driver.title)
driver.quit()