Pruebas de caja de cristal
Clase 26 de 31 • Curso de Introducción al Pensamiento Computacional con Python
Resumen
¿Qué son las pruebas de caja de cristal?
Las pruebas de caja de cristal son una técnica de testing que se diferencia notablemente de las pruebas de caja negra. Mientras que en la caja negra no se conoce la implementación del código, en la caja de cristal, sí se conoce y se prueban todos los posibles caminos en el flujo del programa. Esta técnica es especialmente útil cuando hay que descubrir y corregir errores (bugs) que pueden surgir tras el lanzamiento del software.
¿Cómo se implementan las pruebas de caja de cristal?
A continuación, te explicaré paso a paso cómo puedes implementar un buen conjunto de pruebas de caja de cristal:
-
Conocer la implementación del código: A diferencia de la caja negra, en la caja de cristal debes saber cómo está estructurado el código y cómo debería comportarse.
-
Probar ramificaciones y bucles:
- Probar todas las condiciones en una sentencia
if-else
. - Probar la entrada y salida en los bucles
for
ywhile
. - Verificar cómo se comportan las recursiones.
- Probar todas las condiciones en una sentencia
-
Utilizar prueba unitarias: Implementar tests unitarios para probar todas las excepciones y errores posibles dentro del código.
-
Detectar y solucionar bugs: Una vez desplegado el programa, si surge un error, podrás usar este conocimiento para identificar qué parte del código está provocando el error y solucionarlo.
Ejemplo de pruebas con unitTest y Python
Aquí te muestro cómo escribir una prueba en Python utilizando el módulo unittest
para verificar si una persona es mayor o menor de edad:
import unittest
def es_mayor_de_edad(edad):
return edad >= 18
class PruebasDeCajaDeCristal(unittest.TestCase):
def test_mayor_de_edad(self):
edad = 20
resultado = es_mayor_de_edad(edad)
self.assertTrue(resultado)
def test_menor_de_edad(self):
edad = 15
resultado = es_mayor_de_edad(edad)
self.assertFalse(resultado)
if __name__ == '__main__':
unittest.main()
En este ejemplo, primero definimos una función es_mayor_de_edad
que comprueba si la edad es mayor o igual a 18. Luego, creamos dos tests: uno para verificar el comportamiento cuando la persona es mayor de edad y otro cuando es menor de edad.
¿Qué hacer en caso de errores?
Durante la ejecución de las pruebas, si alguna falla, el test te alertará. Esto permite que puedas revisar rápidamente y corregir el problema sin afectar el resto del programa:
- Errores durante el desarrollo: Si cambias algo en el código y accidentalmente introduces un error, los tests te servirán de "red de seguridad" para detectar el problema a tiempo.
- Colaboración con compañeros: Al tener una batería de pruebas, tus compañeros podrán realizar cambios en el código sin el riesgo de romper la funcionalidad existente, ya que los tests proporcionan garantías sobre el comportamiento del software.
Ventajas de usar las pruebas de caja de cristal
Las pruebas de caja de cristal juegan un papel fundamental en el proceso de desarrollo de software por varias razones:
- Descubrimiento temprano de bugs: Poder identificar rápidamente dónde pueden estar las fallas en un código.
- Entendimiento profundo del código: Al conocer el flujo de la aplicación, podrás desarrollar funcionalidades más robustas.
- Mayor cobertura de código: Probar todas las rutas posibles aumenta la confianza en el programa final.
Recuerda que cualquier duda o dificultad que tengas es muy común, y muchas veces puede ser la misma que tienen otros estudiantes. Utilizar foros o sistemas de comentarios puede ayudarte a resolver tus dudas y enriquecer el proceso de aprendizaje. ¡Sigue practicando y mejorando tus habilidades en testing!