Saltar al contenido

¿Qué es la prueba positiva y la prueba negativa en las pruebas unitarias?

Hola, hemos encontrado la solución a lo que buscabas, has scroll y la verás aquí.

Solución:

Pruebas positivas – probar el sistema proporcionando los datos válidos.

Pruebas negativas – probar el sistema proporcionando los datos no válidos.

Por ejemplo, una aplicación contiene un cuadro de texto y, según los requisitos del usuario, el cuadro de texto debe aceptar solo cadenas. Al proporcionar solo cadenas como datos de entrada al cuadro de texto y verificar si funciona correctamente o no, significa que es una prueba positiva. Si dar la entrada que no sea String significa que es una prueba negativa.

Las pruebas negativas mejoran la cobertura de prueba de su aplicación. El uso conjunto de los enfoques de prueba negativos y positivos le permite probar sus aplicaciones con cualquier dato de entrada posible (tanto válido como no válido) y puede ayudarlo a hacer que su aplicación sea más estable y confiable.

Consulte este Glosario para diferentes tipos de pruebas

En términos de pruebas unitarias (que es el enfoque de TDD), el concepto se puede describir simplemente de la siguiente manera:

  • A prueba positiva comprueba si una función/método se comporta como se esperaba con su entrada esperada.
  • A prueba negativa comprueba si una función/método se comporta como se esperaba con una entrada incorrecta. (debe tener suficientes pruebas negativas para cubrir todas las definiciones posibles de “malo”, idealmente”) Consulte esta pregunta para obtener más información.

Prueba positiva vs negativa


===============================================================
|      Positive Test Case      |      Negative Test Case      |
+==============================+==============================+
| test by valid/expected data  | test by invalid data         |
+------------------------------+------------------------------+
| check if the function does   | check if the function does   |
| that it should do            | not that it should not do    |
+------------------------------+------------------------------+
| examine general behaviors of | examine if the function      |
| the function                 | is fault proof (does not     |
|                              | crush/mis-response in bad    |
|                              | situations)                  |
===============================+===============================

Algunos ejemplos rápidos lo ayudarán a comprender la diferencia más claramente.


Ejemplo

Función candidata:

public boolean deleteFile(String filePath) 
    // try to delete the file; and
    // return true for success, false for failure

Casos de prueba positivos- Como esta función espera una ruta de archivo, el caso de prueba positivo comprenderá todas las rutas de archivo válidas posibles:

public void deleteFile_forAbsoluteFilePath_P() 
    String filePath = "D:\Temp\file.txt";
    // create file, call deleteFile(), and check if really deleted


public void deleteFile_forRelativeFilePath_P() 
    String filePath = "file.txt";
    // create file, call deleteFile(), and check if really deleted


public void deleteFile_forNonExistingFilePath_P() 
    String filePath = "wHSyY#zP_04l.txt";
    // call deleteFile(), and check if false is returned


public void deleteFile_forSymlinkedFilePath_P() 
    String filePath = "D:\Temp\symlink\dir\file.txt";
    // create file, create symlink, delete file, and
    // check if really deleted


public void deleteFile_forUndeletableFile_P() 
    String filePath = "file.bin";
    // create file, restrict delete permission, call deleteFile(), and
    // check if does not crash and returns false

Casos de prueba negativos- Cualquier cosa que se pueda enviar a la función y no sea válida, estará en caso de prueba negativa:

public void deleteFile_forAlreadyDeletedFile_N() 
    String filePath = "file.bin";
    // create file, call deleteFile() twice, and
    // for second time check if does not crash and returns false


public void deleteFile_forDirectoryPath_N() 
    String dirPath = "D:\Temp\dir";
    // create directory, call deleteFile(), and check if false is returned


public void deleteFile_forSymlinkedDirectoryPath_N() 
    String symlink = "D:\Temp\symlink";
    // create symlink, call deleteFile(), and check if false is returned


public void deleteFile_forNullString_N() 
    String filePath = NULL;
    // call deleteFile(), and check if does not crash and returns false


public void deleteFile_forCorruptedFilePath_N() 
    String filePath = "D:\Tem¡¿ÿ¿";
    // call deleteFile(), and check if does not crash and returns false


Unit-test también funciona como una documentación en vivo para su función. Entonces, en lugar de lanzar todos los argumentos posibles a la función, caso de prueba negativa debe comprender solo con condiciones excepcionales esperadas.

Por lo tanto, no es necesario probar esto-

Prueba negativa innecesaria

Recuerda que te brindamos la opción de valorar este tutorial si te fue preciso.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *