Pruebas de caja negra: ¿que son y como se aplican? – Ejemplo con Python

Las pruebas de caja negra, es una técnica de pruebas de software en la cual la funcionalidad se verifica sin tener en cuenta la estructura interna de código (a diferencia de la prueba de caja blanca), detalles de implementación o escenarios de ejecución internos en el software.

  • La caja negra es la primera prueba que se debe realizar a la hora de programar.
  • Para desarrollar una prueba de caja negra no es necesario tener conocimientos técnicos.
  • Intenta encontrar errores de estructuras de datos, inicialización y finalización, rendimiento, etc.

Prueba de partición equivalente:

Consiste en la división de los dominios de tipos de datos de entrada, evaluando su comportamiento para un valor de cada clase. En base a esto, determinar un conjunto de entradas válidas e inválidas para el programa, las cuales serán retomadas posteriormente.

Tipos de datos a ingresar:

  • Tipos de datos
  • Rango de datos (números)
  • Subconjuntos de datos
  • Valores límites

Separación de programas:

En programación modular, donde un programa (o un algoritmo) es divido en módulos, en la fase de diseño se buscará que cada módulo sea una caja negra dentro del sistema global que es el programa que se pretende desarrollar, de esta manera se consigue una independencia entre los módulos que facilita su implementación separada.


Ejemplo con Python y Tkinter:

He diseñado un pequeño programa para poder entender los conceptos básicos de la prueba de caja negra, es un simple archivo .py realizado con Tkinter que tiene como funcionalidad verificar que se está ingresando correctamente texto sin caracteres especiales, ni números:


Casos de caja negra:

Los casos nos sirven para especular la «prueba y error», en otras palabras, nos demuestra que tan seguro o robusto es nuestro programa a la hora de recibir información por el usuario. En este ejemplo, tenemos cinco posibles casos los cuales son:

  • Caso 1:
    ○ Datos de entrada: cadena de 5 caracteres
    ○ Resultado esperado (salida): la aplicación no permite el ingreso de la cadena y nos muestra un mensaje de error
  • Caso 2:
    ○ Datos de entrada: cadena de 7 caracteres, incluyendo uno o más caracteres no alfabéticos
    ○ Resultado esperado (salida): la aplicación no permite el ingreso del dato y muestra un mensaje de error.
  • Caso 3:
    ○ Datos de entrada: cadena de 7 caracteres, solo de caracteres alfabéticos.
    ○ Resultado esperado (salida): La aplicación permite el ingreso del dato.
  • Caso 4:
    ○ Datos de entrada: cadena de 11 caracteres.
    ○ Resultado esperado (salida): La aplicación no permite el ingreso del dato y muestra un mensaje de error.
  • Caso 5:
    ○ Datos de entrada: nada (campo de texto vacío)
    ○ Resultado esperado (salida): La aplicación nos muestra un mensaje de error donde nos pide el ingreso de datos:

Éste tipo de pruebas nos ayudan a evitar posibles errores en el programa, detectar errores en el código interno (obviamente, si tenemos acceso a él), mayormente son utilizadas por hackers ya que al no tener acceso al código, realizan pruebas de inyección.

Si quieres saber como funciona este sencillo programa, puedes echarle un vistazo a mi perfil de GitHub: https://github.com/facundokimbo/pruebas-caja-negra

Facundo Kimbo

Deja un comentario