Junior
Jaké typy testování softwaru znáš?
sobes.tech AI
Odpověď od AI
- Jednotkový (Unit) test: Testování jednotlivých komponent nebo modulů programu izolovaně.
- Integrační test: Testování interakce mezi více moduly.
- Systémový (System) test: Testování celého systému jako celku, ověřování souladu s funkčními a nefunkčními požadavky.
- Akceptační (Acceptance) test: Kontrola systému konečnými uživateli nebo zákazníky, aby se ujistili, že odpovídá jejich očekáváním.
Dále:
- Funkční testování: Kontrola souladu systému s funkčními požadavky.
- Nefunkční testování: Kontrola nefunkčních aspektů, jako je výkon, bezpečnost, uživatelská přívětivost.
- Regresní testování: Kontrola, že změny v kódu neporušily stávající funkčnost.
- Zátěžové testování: Určení výkonu systému při určité zátěži.
- Stresové testování: Testování systému v extrémních podmínkách zátěže.
- Testování bezpečnosti: Odhalování zranitelností v systému.
- Testování použitelnosti: Hodnocení snadnosti a intuitivnosti používání systému konečnými uživateli.
V mé práci často používám:
// Příklad jednotkového testu s 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));
}
}
// Příklad integračního testu s 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!");
}
}