¿Qué es una caja gris?
El cuadro gris se refiere a las pruebas de software donde hay un conocimiento limitado de su funcionamiento interno. La prueba de caja gris es una técnica de piratería ética en la que el pirata informático debe usar información limitada para identificar las fortalezas y debilidades de la red de seguridad de un objetivo.
Puntos clave
- La prueba de caja gris es una técnica para descubrir errores de software o encontrar exploits, donde se conoce de antemano un conocimiento limitado del software subyacente.
- Esta forma de «piratería ética» permite a los desarrolladores de software crear correcciones y parches para evitar que los malos usuarios utilicen estos exploits.
- Las pruebas de caja gris son esencialmente una combinación de metodologías de caja blanca (conocimiento completo) y caja negra (sin conocimiento).
Entendiendo las cajas grises
La caja gris es el híbrido de las pruebas de caja blanca, donde el probador examina la lógica interna y la estructura del código de software, y las pruebas de caja negra, donde el probador no sabe nada sobre el código de software. Para entender la prueba de la caja gris, primero debemos entender la prueba de la caja negra y la prueba de la caja blanca.
Pruebas de caja negra y caja blanca
La prueba de la caja negra no examina nada más que las entradas del usuario y la salida producida por el software dadas esas entradas. La prueba de la caja negra no requiere ningún conocimiento del lenguaje de programación u otros detalles técnicos. Es un tipo de prueba de alto nivel utilizado en pruebas de sistemas y pruebas de aceptación. Los ingenieros de software requieren un documento de especificación de requisitos de software (SRS) para realizar pruebas de caja negra. Esta prueba asume una perspectiva de usuario final donde el probador de caja negra no sabe cómo se generan las salidas a partir de las entradas.
Las pruebas de caja blanca requieren un conocimiento profundo de las técnicas y plataformas utilizadas para crear software, incluido el lenguaje de programación relacionado. Es un tipo de prueba de bajo nivel que se utiliza en pruebas unitarias y pruebas de indicación. Los ingenieros de software deben comprender el lenguaje de programación utilizado para crear la aplicación para que puedan comprender su código fuente. Los propósitos principales de las pruebas de caja blanca son fortalecer la seguridad, examinar el flujo de entrada y salida a través de la aplicación y mejorar el diseño y la usabilidad. Cuando un probador de caja blanca no obtiene el resultado esperado de una entrada determinada, el resultado se considera un error que debe corregirse.
Cómo funciona la prueba de la caja gris
Las pruebas de caja gris incluyen componentes importantes de las pruebas de caja blanca y negra para obtener un resultado mejor que el que cualquiera podría obtener por sí solo. Tanto los usuarios finales como los desarrolladores ejecutan pruebas de caja gris con conocimiento limitado (parcial) del código fuente de una aplicación. Las pruebas de caja gris pueden ser manuales o automatizadas. Es más completa y lleva más tiempo que la prueba de la caja negra, pero no tan completa ni lleva tanto tiempo como la prueba de la caja blanca. Los probadores de caja gris requieren documentos de diseño detallados.
Las pruebas de caja gris implican la identificación de entradas, salidas, rutas principales y subfunciones. Luego pasa a desarrollar entradas y salidas para subfunciones, ejecutar casos de prueba para subfunciones y verificar esos resultados.
Ejemplo de caja gris
Un probador de caja gris puede verificar y corregir los enlaces en un sitio web.Si un enlace no funciona, el probador modifica el código HTML para intentar que el enlace funcione, luego vuelve a verificar la interfaz de usuario para ver si el enlace funciona. Un probador de caja gris también podría probar una calculadora en línea. El probador define las entradas (fórmulas matemáticas como 1+1, 2*2, 5-4 y 15/3), luego verifica que la calculadora proporcione las salidas correctas dadas esas entradas. El probador de caja gris tiene acceso al código HTML de la calculadora y puede editarlo si se identifican errores.
Las pruebas de caja gris examinan tanto la interfaz de usuario de la aplicación, o capa de presentación, como su funcionamiento interno, o código. Se utiliza principalmente en pruebas de integración y pruebas de penetración, pero no es adecuado para probar algoritmos. Las pruebas de caja gris generalmente se usan para probar la interfaz de usuario, la seguridad o la funcionalidad en línea de una aplicación a través de técnicas como pruebas de matriz, pruebas de regresión, pruebas de matrices ortogonales y pruebas de patrones. Los probadores de caja gris tienen más probabilidades de identificar problemas específicos del contexto.
«Gris» se refiere a la capacidad parcial del probador para ver el funcionamiento interno de la aplicación. «Blanco» se refiere a la capacidad de ver a través de la interfaz del software su funcionamiento interno, mientras que «negro» se refiere a la incapacidad de ver el funcionamiento interno del software. La prueba de la caja gris a veces se llama prueba translúcida, mientras que la prueba de la caja blanca a veces se llama prueba transparente, y la prueba de la caja negra también se puede llamar prueba opaca.