Sobes.tech
Junior

Jakie rodzaje testów oprogramowania znasz?

sobes.tech AI

Odpowiedź od AI

  • Test jednostkowy (Unit): Testowanie poszczególnych komponentów lub modułów programu w izolacji.
  • Test integracyjny: Testowanie interakcji między wieloma modułami.
  • Test systemowy: Testowanie całego systemu jako całości, sprawdzanie zgodności z wymaganiami funkcjonalnymi i niefunkcjonalnymi.
  • Test akceptacyjny: Sprawdzanie systemu przez użytkowników końcowych lub klientów, aby upewnić się, że spełnia ich oczekiwania.

Dodatkowo:

  • Test funkcjonalny: Sprawdzanie zgodności systemu z wymaganiami funkcjonalnymi.
  • Test niefunkcjonalny: Sprawdzanie aspektów niefunkcjonalnych, takich jak wydajność, bezpieczeństwo, użyteczność.
  • Test regresji: Sprawdzanie, czy zmiany w kodzie nie zakłóciły istniejącej funkcjonalności.
  • Test obciążeniowy: Określenie wydajności systemu pod określonym obciążeniem.
  • Test stresowy: Sprawdzanie systemu w ekstremalnych warunkach obciążenia.
  • Test bezpieczeństwa: Wykrywanie luk w systemie.
  • Test użyteczności: Ocena łatwości i intuicyjności obsługi systemu przez użytkowników końcowych.

W swojej pracy często korzystam z:

// Przykład testu jednostkowego z JUnit
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;

class MyServiceTest {

    @Test
    void testAdd() {
        MyService service = new MyService();
        assertEquals(5, service.add(2, 3));
    }
}
// Przykład testu integracyjnego z Spring Boot
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.web.client.TestRestTemplate;
import org.springframework.http.ResponseEntity;

import static org.assertj.core.api.Assertions.assertThat;

@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
class MyControllerIntegrationTest {

    @Autowired
    private TestRestTemplate restTemplate;

    @Test
    void testHelloEndpoint() {
        ResponseEntity<String> response = restTemplate.getForEntity("/hello", String.class);
        assertThat(response.getBody()).isEqualTo("Hello, World!");
    }
}