¿Qué son las pruebas negativas? Casos de prueba con ejemplo

Prueba negativa

Prueba negativa es un tipo de prueba de software que se utiliza para comprobar si la aplicación de software contiene datos y condiciones de entrada inesperados. Los datos o condiciones inesperados pueden ser desde un tipo de datos incorrecto hasta un ataque de piratería informático grave. El objetivo de las pruebas negativas es evitar que la aplicación de software se bloquee debido a entradas negativas y mejorar la calidad y la estabilidad.

Con solo hacer pruebas positivas solo podemos asegurarnos de que nuestro sistema esté funcionando en condiciones normales. Tenemos que asegurarnos de que nuestro sistema pueda manejar condiciones inesperadas para garantizar un sistema 100% libre de fallas.

Ejemplo de prueba negativa

Consideremos el caso de un ascensor, que suele considerarse un ejemplo de prueba negativa.

Todos conocemos la funcionalidad de un ascensor. Estos se considerarán requisitos de un ascensor, como presionar el número de piso para que el ascensor vaya a ese piso en particular.

La puerta se abre automáticamente una vez que el ascensor llega al piso especificado y así sucesivamente.

Ahora consideremos algunos escenarios negativos para el levantamiento. Algunos de ellos son,

Prueba negativa Pruebas positivas
¿Qué sucede si el número de personas (peso) excede el límite especificado? Se supone que el único número especificado de personas entrará al ascensor.
¿Qué pasa si alguien fuma o provoca un incendio en el interior del ascensor? No habrá humo ni fuego en el interior del ascensor.
¿Qué sucede si hay un corte de energía durante la operación? No habrá cortes de energía durante el funcionamiento del ascensor.

Todos estos casos se someterán a pruebas negativas. La importancia de esto es que no podemos asegurarnos de que todo lo mencionado anteriormente no suceda, por lo que necesitamos que estén contenidos.

Considere el caso en que se verifica la condición de sobrepeso y, al implementarse, el elevador funciona de manera anormal cuando hay una condición de sobrepeso. Esto tendrá un impacto potencial en la confiabilidad del sistema e incluso puede poner en peligro la vida. Esto explica qué son las pruebas negativas y su importancia.

El mismo caso se aplica también en el software. Para las pruebas negativas, nos hemos desviado de un procedimiento operativo normal. Veamos algunos ejemplos.

Considere un formulario de registro, por ejemplo.

Prueba negativa Pruebas positivas
Intente ingresar una dirección de correo electrónico no válida en el campo de correo electrónico Solo se ingresarán direcciones de correo electrónico válidas en un campo de correo electrónico
Intente ingresar un número de teléfono no válido en un campo de número de teléfono (caracteres) El único número se ingresará en el campo numérico.
Cargar imagen con un tamaño fuera del límite especificado Solo se cargarán imágenes con un tamaño inferior al límite especificado
Sube archivos no válidos como XML, SQL, etc. en el campo de carga de imágenes Cargue solo formatos de imagen válidos como jpg.png, etc.

Como decíamos anteriormente, tenemos que asegurarnos de que en todos estos casos negativos nuestro sistema funcionará correctamente. Considere el caso si alguien intenta ingresar un carácter en el campo numérico y el sistema no puede procesar los datos inesperados porque espera un número y, finalmente, el sistema falla. ¿O qué pasa si alguien intenta hacer algo? inyección SQL y borrar todos nuestros datos de la base de datos. No podemos soportar tales pérdidas potenciales. Por eso las pruebas negativas son importantes.

¿Por qué hacer pruebas negativas?

Dado que las pruebas son una tarea que requiere mucho tiempo y dinero, es muy importante decidir qué, cómo y cuánto analizar. Tenemos que elegir sabiamente si tenemos que realizar pruebas negativas en nuestro sistema o no. Veamos entonces la importancia de las pruebas negativas.

Perspectiva de la organización

Es responsabilidad de la organización proporcionar un producto de buena calidad a su cliente. Para lograrlo, hay que realizar pruebas negativas.

Como parte de la confirmación de una falla, una organización debe realizar pruebas negativas.

Tal vez no podamos construir un sistema 100% libre de errores, pero debemos asegurarnos de haber hecho todo lo posible para evitar una falla, para lograrlo debemos realizar pruebas negativas.

El impacto es un factor que debemos considerar. Considere que hemos realizado pruebas positivas en un sitio de comercio electrónico y asegúrese de que todo esté bien. Pero, ¿qué pasa si hay una laguna en nuestro sistema que permite que alguien pueda realizar una inyección SQL y borrar todos nuestros datos? Eso será una gran brecha de seguridad. Para evitar este tipo de casos, también hay que realizar pruebas negativas.

Para aplicaciones abiertas al público, principalmente sitios web, siempre debemos tener en cuenta que no tenemos mucho control sobre el procedimiento de uso de la aplicación, por lo que debemos realizar pruebas negativas para asegurarnos de que todos estos casos estén cubiertos y contenidos.

Otra cosa de la que debemos tener cuidado es que hay muchos piratas informáticos negros que buscan una oportunidad para destruir el sistema. La piratería es un caso importante cubierto por pruebas negativas

Perspectiva del cliente

Los clientes siempre esperan productos de vulnerabilidad cero, para garantizar que las pruebas negativas sean imprescindibles.

Si se trata de un producto sensible como el comercio electrónico, el stock en línea, etc., entonces la seguridad y las pruebas negativas son imprescindibles.

La única preocupación del cliente con respecto a las pruebas negativas es el costo. Pero una vez analizado el impacto, corresponde al cliente decidir si realiza o no pruebas negativas.

Cómo hacer pruebas negativas

Para hacer pruebas negativas tenemos que considerar todos los casos posibles. Eso si es posible tenemos que considerarlo en el Caso de prueba No importa si no es la forma correcta de usarlo. Por ejemplo, si vemos un campo de correo electrónico, pensemos en todas las entradas posibles que podemos poner allí además del formato de correo electrónico correcto. De la misma manera, cuando vemos una opción para cargar imágenes, tenemos que probarla con todos los archivos posibles.

Al crear casos de prueba negativos, debemos priorizar las entradas; de lo contrario, habrá muchos casos posibles. Por ejemplo, para un campo de imagen donde solo se supone que deben ingresar archivos ".png", podemos tener muchas opciones para cargar, como "jpeg", "xml", "xls", etc. Por lo tanto, debemos priorizar las opciones como XML y SQL puede tener un impacto mayor que el de jpeg y xls, por lo que primero debemos ocuparnos de los casos de SQL y XML. De esta manera, tenemos que priorizar los casos antes de la ejecución para ahorrar tiempo y costos de prueba.

Pros y contras de las pruebas negativas

Como todas las demás técnicas de prueba, las pruebas negativas tienen ventajas y desventajas basadas principalmente en el "dónde", el "cuándo" y el "cómo" utilizarlas. Echemos un vistazo a esto.

Ventajas de las pruebas negativas

  • Como todos sabemos, las pruebas negativas son muy importantes para garantizar la calidad de un producto. Un producto de buena calidad es un producto de vulnerabilidad cero, para garantizar que las pruebas negativas sean muy importantes.
  • Hacer pruebas negativas garantiza que todos los casos posibles estén cubiertos. Intencionalmente o no, existe la posibilidad de que se produzcan casos de prueba negativos. Entonces, para asegurarnos de que todos los casos estén cubiertos, tenemos que realizar pruebas negativas junto con pruebas positivas.
  • Las pruebas negativas generarán más confianza en el cliente antes de comenzar a funcionar.

Desventajas de las pruebas negativas

  • En Ingeniería de Software, las pruebas negativas en algunos casos se convierten en una pérdida de tiempo y energía. En muchos casos, no es necesario realizar pruebas negativas excesivas. Por ejemplo, si una aplicación se crea para uso de una sola persona, entonces no tenemos que considerar el caso de que 100 usuarios utilicen el sistema a la vez. Por eso, decidir las condiciones en los casos de prueba negativos es muy importante. Habrá ocasiones en las que no tendremos que realizar pruebas negativas en un sistema en particular.
  • Requerir personas capacitadas y con experiencia para crear casos de prueba negativos.
  • Para el cliente, las pruebas negativas son otra cosa que causa retrasos innecesarios en el lanzamiento y un aumento de costos.
  • Una posibilidad de que un equipo dedique más tiempo y energía a pruebas negativas. Existe la posibilidad de que los evaluadores gasten mucho tiempo y energía en pruebas negativas, lo que resulta en una menor concentración en pruebas positivas.