Pruebas de software no destructivas (END): ¿Qué son? Estrategia de prueba

⚡ Resumen inteligente

Las pruebas no destructivas verifican que una aplicación se comporte correctamente al recibir datos de entrada válidos, por lo que los evaluadores también las denominan pruebas de ruta positiva o de ruta feliz. Confirman los resultados esperados comparándolos con los requisitos documentados.

  • 🔘 Diseño positivo: Cada prueba no destructiva utiliza datos válidos y un requisito conocido, por lo que un resultado positivo demuestra que la función funciona según lo especificado.
  • ☑️ Prueba más temprana que se ejecutará: Primero se comprueba la ruta de funcionamiento normal, porque un flujo principal defectuoso bloquea casi todas las demás pruebas que le siguen.
  • Requisito traccapacidad: Cada caso de prueba se corresponde con un criterio de aceptación, lo que facilita la defensa de los resultados en una revisión.
  • 🧪 Lo opuesto a las pruebas destructivas: Las pruebas destructivas buscan el punto de ruptura, mientras que las pruebas no destructivas confirman que se mantiene el comportamiento previsto.
  • 🛠️ Coste de instalación bajo: No se requiere un entorno especial, datos corruptos ni inyección de fallos, por lo que la técnica se adapta a plazos ajustados y presupuestos limitados.
  • 📈 Limitación conocida: El hecho de que todas las rutas de éxito se cumplan no demuestra nada sobre el manejo de errores, por lo que las pruebas negativas y destructivas aún deben realizarse paralelamente.

Explicación de las pruebas de software no destructivas (NDT) con estrategia de prueba.

¿Qué son las pruebas de software no destructivas?

Pruebas no destructivas es un tipo de prueba de software que implica probar e interactuar con la aplicación de software correctamente. En otras palabras, las pruebas de software no destructivas (NDT) también pueden denominarse pruebas positivas o pruebas de camino feliz. Da los resultados esperados y demuestra que la aplicación de software se comporta como se esperaba.

El nombre proviene de la ingeniería, donde las pruebas no destructivas inspeccionan un componente físico sin dañarlo. En el software, la idea es la misma: la aplicación se utiliza tal como fue diseñada y supera la prueba sin sufrir daños.

Ejemplo: Introducir los datos correctos en un módulo de inicio de sesión y comprobar si acepta las credenciales y navega a la página siguiente.

La captura de pantalla que aparece a continuación muestra el formulario de inicio de sesión, con un valor válido introducido en el campo de nombre de usuario antes de que se ejecute la prueba.

Formulario de inicio de sesión utilizado como ejemplo de prueba de software no destructiva con datos de entrada válidos.

Para realizar pruebas no destructivas en el ejemplo anterior, introduzca un nombre de usuario y una contraseña válidos en el formulario de inicio de sesión. Dado que los datos introducidos coinciden con los requisitos, el resultado deseado es positivo y el evaluador simplemente confirma que la aplicación pasa a la página siguiente.

¿Por qué realizar Pruebas de Software No Destructivas (END)?

Las pruebas no destructivas responden a la primera pregunta que todo interesado se hace sobre una compilación: ¿la función realmente cumple con su cometido? Estas son las razones por las que los equipos las realizan.

  • La principal ventaja del método NDT es que mejora la calidad del software, ya que los defectos detectados en el flujo principal se corrigen rápidamente.
  • Demostrar que las funciones del software funcionan según las especificaciones.
  • Para verificar que se hayan cumplido los requisitos de rendimiento.
  • Para verificar que se cumplen los requisitos de los usuarios finales.
  • Para comprobar que una pequeña sección de código o funcionalidad funciona como se espera y no interrumpe la funcionalidad relacionada.
  • Para producir evidencia que pueda ser mostrada en una Pruebas de aceptación del usuario aprobación final, donde el cliente quiere ver el comportamiento previsto en lugar de los modos de fallo.

¿Cuándo se realizan ensayos no destructivos (END)?

Aquí, el momento oportuno es más importante que en la mayoría de las técnicas, porque el resultado óptimo condiciona todo lo que sucede después.

  • Es la primera forma de prueba que un probador realizaría en una aplicación, es decir, en la etapa inicial de la SDLC.
  • Las pruebas no destructivas se suelen realizar cuando no hay tiempo suficiente para un ciclo de prueba completo, ya que demuestran que se cumplen los criterios de aceptación.
  • Se ejecuta antes de que se produzcan escenarios negativos y destructivos. Si el flujo principal se interrumpe, las pruebas de manejo de errores informan de ruido en lugar de defectos reales.
  • Se repite después de cada corrección de defectos, que es donde se superpone con pruebas de regresión.

Estrategia de prueba para pruebas no destructivas

La estrategia para los ensayos no destructivos es deliberadamente sencilla, y la clave reside en mantener una actitud positiva más que en el uso de herramientas.

  • El enfoque de los ensayos no destructivos debe ser positivo.
  • El objetivo de la técnica NDT es demostrar que una aplicación funcionará cuando se le proporcionen datos de entrada válidos.
  • No se requiere ningún requisito ni entorno especial para realizar ensayos no destructivos.
  • La mejor práctica para las pruebas no destructivas es comprobar si el sistema hace lo que se supone que debe hacer.

El siguiente diagrama resume cómo se organiza normalmente esa estrategia a lo largo de un ciclo de pruebas.

Diagrama de flujo de la estrategia de pruebas para las pruebas de software no destructivas a lo largo de un ciclo de pruebas.

Cómo escribir casos de prueba no destructivos (positivos)

Un caso de prueba no destructivo solo es útil cuando su entrada es demostrablemente válida y su resultado esperado proviene de un requisito en lugar de una suposición del probador. Los siguientes pasos producen ese tipo de caso de prueba.

Paso 1) Elija un criterio de aceptación. Lea el requisito y reformúlelo como una sola declaración verificable, por ejemplo: "el campo de nombre de usuario acepta de seis a veinte caracteres alfanuméricos".

Paso 2) Elija datos de entrada válidos. Seleccione valores que se encuentren cómodamente dentro del rango permitido. Partición de equivalencia Esto ayuda: normalmente basta con un valor representativo por partición válida.

Paso 3) Escriba el resultado esperado antes de ejecutar. El resultado esperado debe estar escrito a partir de la especificación. Escribirlo después de la ejecución convierte la prueba en una descripción de lo que haya ocurrido durante la compilación.

Paso 4) Mantenga los pasos en el orden en que los usa el usuario. La secuencia debe coincidir con la forma en que un usuario real completaría la tarea, ya que el objetivo de la técnica es confirmar el recorrido previsto.

Paso 5) Registre el identificador del requisito. TracReducir el caso a su criterio original es lo que permite al equipo demostrar la cobertura durante una revisión.

Un ejemplo práctico para el módulo de inicio de sesión se ve así.

Campo Caso de prueba no destructiva
Requisito El nombre de usuario admite entre 6 y 20 caracteres alfanuméricos.
Datos de prueba Nombre de usuario guru99tester, contraseña válida que coincida
pasos Abra la página de inicio de sesión, ingrese sus credenciales y seleccione Iniciar sesión.
Resultado Esperado Las credenciales son aceptadas y se muestra la página de inicio.
Tipo Camino positivo/feliz

Observe que nada en el caso intenta romper el campo. Un caso que introduce cinco caracteres para ver el mensaje de error es un prueba negativa, no uno no destructivo.

Ejemplos de pruebas no destructivas

El siguiente ejemplo muestra cómo se comportan las pruebas no destructivas en una aplicación multimodular después de que se haya corregido un defecto.

  • Una aplicación tiene cinco módulos: página de inicio de sesión, página principal, página de detalles del usuario, creación de nuevo usuario y creación de tareas.
  • Supongamos que hay un error en la página de inicio de sesión: el campo de nombre de usuario acepta menos de seis caracteres alfanuméricos. Esto contradice el requisito establecido, que indica que el nombre de usuario no debe aceptar menos de seis caracteres, por lo que este comportamiento constituye un defecto.
  • El error se reporta al equipo de desarrollo a través del canal habitual. proceso de gestión de defectosSe soluciona el problema y la compilación se envía de vuelta al equipo de pruebas.
  • El equipo de pruebas no solo revisa la página de inicio de sesión donde se corrigió el error, sino que también prueba los demás módulos. Al probar todos los módulos con datos válidos, realiza pruebas no destructivas, simplemente para confirmar que la aplicación completa sigue funcionando correctamente.

Ensayos no destructivos frente a ensayos destructivos

Con frecuencia, ambas técnicas se enseñan juntas porque responden a preguntas opuestas sobre la misma construcción. Pruebas destructivas Se busca el punto en el que el software falla, mientras que las pruebas no destructivas confirman que se mantiene el comportamiento previsto.

Aspecto Pruebas no destructivas Pruebas destructivas
Intención Interactúa correctamente con la aplicación y verifica los resultados positivos. Proporcione datos de entrada inusuales o no válidos para encontrar el punto de fallo.
Datos de entrada Datos válidos extraídos del requisito Datos no válidos, corruptos o fuera de secuencia.
Requisitos necesarios Sí, los casos se redactan en función de los criterios de aceptación. No necesariamente; los evaluadores trabajan sin el sesgo de la historia de usuario.
Lo que expone Debilidades en la funcionalidad con respecto a la especificación. Debilidades en el diseño, la robustez y la recuperabilidad.
Técnicas relacionadas Prueba de humo, prueba funcional Pruebas con monos, Prueba exploratoria

Ambos métodos son complementarios, no alternativos. Realizar únicamente pruebas no destructivas deja sin verificar el manejo de errores, y realizar únicamente pruebas destructivas nunca demuestra que el producto cumpla su función.

Ventajas y limitaciones de las pruebas de software no destructivas

Saber dónde deja de ser útil una técnica es tan importante como saber qué abarca.

Ventajas

  • Es rápido de diseñar y ejecutar, ya que los datos de prueba provienen directamente de las especificaciones.
  • No requiere un entorno especial, inyección de fallos ni conjuntos de datos corruptos.
  • Genera evidencia que se corresponde uno a uno con los requisitos, lo cual resulta útil para auditorías y aprobaciones.
  • Funciona igual de bien que pruebas manuales y tal como estaba escrito pruebas de automatización, de modo que los mismos casos se pueden reutilizar en un conjunto de pruebas de regresión.
  • Proporciona una señal temprana y honesta sobre la salud de la construcción en cualquier nivel, desde la unidad hasta el edificio. pruebas de integración a prueba del sistema.

Limitaciones

  • Una prueba completa no dice nada sobre cómo se comporta la aplicación con entradas no válidas, por lo que pueden pasar desapercibidos graves defectos en el manejo de errores.
  • La cobertura está limitada por la calidad de los requisitos. Todo lo que no esté especificado nunca se prueba.
  • Puede generar una falsa sensación de seguridad cuando el único camino que se recorre antes de un lanzamiento es el que parece más feliz.
  • No mide la robustez, la recuperación ni el rendimiento bajo estrés, que necesitan sus propias técnicas del conjunto más amplio de tipos de pruebas de software.

Considere las pruebas no destructivas como la base sobre la que se construyen todas las demás técnicas, e inclúyalas en el plan general. ciclo de vida de las pruebas de software en lugar de como una actividad puntual.

Preguntas Frecuentes

Solo comparten el principio. Las pruebas no destructivas (END) en ingeniería inspeccionan una pieza física sin dañarla, utilizando métodos como ultrasonidos o radiografía. Las END por software toman prestada la idea de dejar el objeto intacto, pero la técnica en sí es una ejecución de prueba positiva convencional.

Los ensayos no destructivos proporcionan datos válidos y esperan resultados satisfactorios. Prueba negativa Se introducen datos no válidos y se espera un fallo controlado e informativo, como un mensaje de validación. Ambos son necesarios, ya que un funcionamiento correcto nunca demuestra que el manejo de errores funcione.

Se automatizan con mayor facilidad que cualquier otra categoría. Los datos son estables, el resultado esperado está predefinido por el requisito y el flujo rara vez cambia, lo que convierte a los casos de éxito en los candidatos ideales para un conjunto de pruebas de regresión.

La regla habitual es un caso por partición de equivalencia válida, más uno por cada resultado exitoso distinto que describa el requisito. Agregar más valores válidos dentro de la misma partición rara vez encuentra algo nuevo y ralentiza el proceso.

Las herramientas con inteligencia artificial leen las historias de usuario y los criterios de aceptación, y elaboran los casos de éxito correspondientes, junto con datos de prueba válidos. El ahorro es real, pero aun así, un humano debe confirmar cada resultado esperado con respecto a la especificación antes de que el caso se considere fiable.

Copiloto de GitHub Genera rápidamente scripts de flujo de ejecución óptimos a partir de un archivo de prueba existente o un flujo descrito. RevLea atentamente las afirmaciones: las pruebas generadas tienden a afirmar lo que hace el código en lugar de lo que exige el requisito.

Se superponen, pero no son idénticos. Prueba de humo Se trata de un análisis superficial de los flujos críticos para decidir si merece la pena probar una versión. Las pruebas no destructivas son un enfoque positivo que se puede aplicar a cualquier nivel de profundidad, incluyendo la cobertura funcional completa.

La cobertura de requisitos es la más precisa: la proporción de criterios de aceptación con al menos un caso positivo que se cumpla. Si la combinamos con la tasa de aprobación y con la relación entre casos positivos y negativos, se pueden identificar conjuntos de pruebas que solo evalúan el escenario ideal.

Resumir este post con: