Sobes.tech
Junior

Que tipos de testes de software conheces?

sobes.tech IA

Resposta da IA

  • Teste unitário (Unit): Teste de componentes ou módulos individuais do programa de forma isolada.
  • Teste de integração: Teste da interação entre vários módulos.
  • Teste de sistema: Teste de todo o sistema como um todo, verificando o cumprimento dos requisitos funcionais e não funcionais.
  • Teste de aceitação: Verificação do sistema pelos utilizadores finais ou clientes para garantir que atende às suas expectativas.

Adicionalmente:

  • Teste funcional: Verificação do cumprimento dos requisitos funcionais do sistema.
  • Teste não funcional: Verificação de aspetos não funcionais, como desempenho, segurança, facilidade de uso.
  • Teste de regressão: Verificação de que as alterações no código não quebraram funcionalidades existentes.
  • Teste de carga: Determinação do desempenho do sistema sob determinada carga.
  • Teste de stress: Verificação do sistema em condições extremas de carga.
  • Teste de segurança: Identificação de vulnerabilidades no sistema.
  • Teste de usabilidade: Avaliação da facilidade e intuitividade do uso do sistema pelos utilizadores finais.

No meu trabalho, costumo usar frequentemente:

// Exemplo de teste unitário com 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));
    }
}
// Exemplo de teste de integração com 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!");
    }
}