La prueba de caja gris es un tipo de prueba profesional que se utiliza a menudo para software de computadora, que combina ciertos aspectos de la prueba de caja negra y la prueba de caja blanca. La idea general es combinar estos otros dos tipos para utilizar las fortalezas de cada uno, minimizando sus limitaciones o debilidades. Las pruebas de caja gris consisten básicamente en pruebas profesionales en las que los evaluadores comprenden algunas de las formas en que funciona el software, pero no comprenden todo al respecto.
Al desarrollar y probar software de computadora, hay dos modelos comunes de prueba que se utilizan con frecuencia. Estas son las pruebas de caja negra y las pruebas de caja blanca, y la prueba de caja gris es básicamente una combinación de ambas. Las pruebas de caja negra consisten en pruebas en las que los probadores no comprenden o no tienen acceso al código que ejecuta el software. Por ejemplo, alguien puede utilizar las pruebas de caja negra para permitir que una empresa externa desarrolle software que se ejecute con un sistema operativo (SO) de computadora sin darle a la empresa el código fuente del SO.
Este tipo de prueba se utiliza a menudo por muchas empresas de software diferentes y se puede utilizar tanto para pruebas internas como externas. Sin embargo, una de las mayores debilidades de este tipo de pruebas es que el conocimiento limitado de los evaluadores puede obstaculizar potencialmente sus pruebas. Esto a menudo requerirá que los resultados sean analizados por un tercero que comprenda tanto las pruebas que se están ejecutando como el código detrás del software que se está probando. La prueba de caja gris busca aliviar algunos de estos problemas combinando este tipo de prueba con ciertos elementos de la prueba de caja blanca.
Las pruebas de caja blanca consisten en pruebas de software realizadas por personas que comprenden completamente el software que se está probando y tienen acceso al código fuente del software. A menudo, esto se hace internamente en un desarrollador de software para garantizar que el programa se ejecute correctamente y para permitir que los evaluadores interactúen directamente con el código detrás del programa. Sin embargo, existen problemas de seguridad potenciales con este tipo de pruebas, por lo que las pruebas de caja gris se utilizan a menudo para combinar ambos tipos de forma productiva y segura.
En las pruebas de caja gris, los evaluadores comprenden ciertos aspectos del software que se utiliza y pueden ver algunas partes del código fuente, pero no todo. Esto permite que los evaluadores interactúen y comprendan más completamente con el programa que están probando que lo que permiten las pruebas de caja negra, pero sin el acceso total y los problemas de seguridad que pueden surgir de las pruebas de caja blanca. Alguien que realice pruebas de caja gris en el software de un nuevo sistema operativo, por ejemplo, puede ver el código de los aspectos del sistema operativo relevantes para su prueba del programa, pero no todo el código fuente.