Prueba negativa
La prueba negativa es un tipo de prueba de software que se utiliza para verificar la aplicación de software en busca de condiciones y datos de entrada inesperados. Los datos o condiciones inesperados pueden ser desde un tipo de datos incorrecto hasta un fuerte ataque de piratería. El propósito 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 una prueba positiva, 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.
En este tutorial, aprenderá:
- ¿Qué son las pruebas negativas?
- Ejemplo de prueba negativa
- ¿Por qué hacer pruebas negativas?
- Cómo hacer pruebas negativas
- Ventajas de las pruebas negativas
- Desventajas de las pruebas negativas
Ejemplo de prueba negativa
Considere el caso de un levantamiento que es un ejemplo comúnmente considerado de prueba negativa.
Todos conocemos la funcionalidad de un ascensor. Estos se considerarán como los 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 | Prueba positiva |
---|---|
|
|
|
|
|
|
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 los necesitamos contenidos.
Considere el caso de que se verifique la condición de sobrepeso y, en la implementación, el levantamiento funciona de manera anormal cuando hay una condición de sobrepeso. Esto tendrá un impacto potencial en la confiabilidad del sistema e incluso puede causar peligro de muerte. 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. Repasemos algunos ejemplos.
Considere un formulario de registro, por ejemplo.
Prueba negativa | Prueba positiva |
---|---|
|
|
|
|
|
|
|
|
Como dijimos anteriormente, tenemos que asegurarnos de que en todos estos casos negativos nuestro sistema funcione 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 ya que espera un número y, finalmente, el sistema falla. O qué pasa si alguien intenta hacer una inyección SQL y borrar todos nuestros datos de la base de datos. No podemos soportar tales pérdidas potenciales. Así que las pruebas negativas son importantes.
¿Por qué hacer pruebas negativas?
Dado que las pruebas son una tarea que consume tiempo y dinero, decidir "qué", "cómo" y "cuánto" probar es realmente importante. Tenemos que elegir sabiamente si tenemos que hacer pruebas negativas en nuestro sistema o no. Entonces, echemos un vistazo a 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 lograr esto, uno tiene que hacer pruebas negativas.
Como parte de la confirmación contra una falla, una organización debe realizar pruebas negativas.
Tal vez no podamos construir un sistema 100% libre de errores, pero tenemos que asegurarnos de haber hecho todo lo posible para evitar una falla, para lograr eso debemos hacer 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 de que alguien pueda hacer una inyección SQL y borrar todos nuestros datos? Será una gran brecha de seguridad. Para evitar este tipo de casos, también hay que hacer pruebas negativas.
Para las 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 tenemos que hacer pruebas negativas para asegurarnos de que todos estos casos estén cubiertos y contenidos.
Otra cosa que debemos tener en cuenta es que hay muchos piratas informáticos negros que buscan una oportunidad para destruir el sistema. La piratería es un caso importante cubierto en 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, las existencias en línea, etc., las pruebas de seguridad y negativas son imprescindibles.
La única preocupación del cliente con respecto a las pruebas negativas es el costo. Pero una vez que se analiza el impacto, depende del cliente decidir si realizar o no pruebas negativas.
Cómo hacer una prueba negativa
Para hacer una prueba negativa tenemos que considerar todos los casos posibles. Es decir, si es posible, tenemos que considerarlo en el caso de prueba sin importar si no es la forma correcta de usarlo. Por ejemplo, si vemos un campo de correo electrónico, piense en todas las posibles entradas que podemos poner allí, además del formato de correo electrónico correcto. De la misma manera cuando vemos una opción de carga de imágenes, tenemos que probarla con todos los archivos posibles.
Al crear casos de prueba negativos, tenemos que 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.webp', podemos tener muchas opciones para cargar como 'jpeg.webp', 'xml', 'xls', etc. XML y SQL pueden tener un impacto mayor que el de jpeg.webp y xls, por lo que primero debemos ocuparnos de los casos de SQL y XML. Así, 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 otras técnicas de prueba, existen ventajas y desventajas para las pruebas negativas basadas principalmente en el "dónde", "cuándo" y "cómo" utilizar. 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 una prueba negativa asegura que todos los casos posibles estén cubiertos. De forma intencionada 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 hacer pruebas negativas junto con pruebas positivas.
- Las pruebas negativas le darán más confianza al 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 se crea una aplicación para uso de una sola persona, entonces no tenemos que considerar el caso de que 100 usuarios usen el sistema a la vez. Por tanto, es muy importante decidir las condiciones en los casos de prueba negativos. Habrá ocasiones en las que no tendremos que realizar pruebas negativas en un sistema en particular.
- Requiera personas capacitadas y experimentadas para crear casos de prueba negativos.
- Para el cliente, la prueba negativa es otra cosa que causa demoras innecesarias en la liberación y suma de costos.
- Una posibilidad de que un equipo dedique más tiempo y energía a las pruebas negativas. Existe la posibilidad de que los evaluadores dediquen mucho tiempo y energía a las pruebas negativas, lo que resultará en una concentración más baja en las pruebas positivas.