Sobes.tech
Junior

¿Qué tipos de pruebas de software conoces?

sobes.tech AI

Respuesta de la IA

  • Pruebas unitarias (Unit): Pruebas de componentes o módulos individuales del programa de forma aislada.
  • Pruebas de integración: Pruebas de la interacción entre varios módulos.
  • Pruebas de sistema: Pruebas de todo el sistema como un todo, verificando el cumplimiento de requisitos funcionales y no funcionales.
  • Pruebas de aceptación: Verificación del sistema por parte de usuarios finales o clientes para asegurarse de que cumple con sus expectativas.

Adicionalmente:

  • Pruebas funcionales: Verificación del cumplimiento de los requisitos funcionales del sistema.
  • Pruebas no funcionales: Verificación de aspectos no funcionales, como rendimiento, seguridad, facilidad de uso.
  • Pruebas de regresión: Verificación de que los cambios en el código no han roto funcionalidades existentes.
  • Pruebas de carga: Determinación del rendimiento del sistema bajo cierta carga.
  • Pruebas de estrés: Verificación del sistema en condiciones extremas de carga.
  • Pruebas de seguridad: Identificación de vulnerabilidades en el sistema.
  • Pruebas de usabilidad: Evaluación de la facilidad e intuición del uso del sistema por parte de los usuarios finales.

En mi trabajo, suelo usar con frecuencia:

// Ejemplo de prueba unitaria con 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));
    }
}
// Ejemplo de prueba de integración con 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!");
    }
}