Las pruebas de caja gris (International Inglés ortografía: las pruebas de caja gris ) es una combinación de pruebas de caja blanca y las pruebas de recuadro negro . El objetivo de esta prueba es buscar los defectos, si los hay, debido a una estructura inadecuada o un uso inadecuado de las aplicaciones. [1] [2]
Descripción general
Un probador de caja negra desconoce la estructura interna de la aplicación que se va a probar, mientras que un probador de caja blanca tiene acceso a la estructura interna de la aplicación. Un probador de caja gris conoce parcialmente la estructura interna, que incluye el acceso a la documentación de las estructuras de datos internas, así como los algoritmos utilizados. [3]
Los probadores de caja gris requieren documentos detallados y de alto nivel que describan la aplicación, que recopilan para definir casos de prueba. [4]
Necesidad de pruebas de caja gris
Las pruebas de caja gris son beneficiosas porque toman la técnica sencilla de las pruebas de caja negra y la combinan con los sistemas de código dirigido en las pruebas de caja blanca.
La prueba de caja gris se basa en la generación de casos de prueba de requisitos porque presenta todas las condiciones antes de que se pruebe el programa mediante el método de aserción. Se utiliza un lenguaje de especificación de requisitos para facilitar la comprensión de los requisitos y verificar su exactitud. [5]
Supuestos de prueba de caja gris para software orientado a objetos
El software orientado a objetos consta principalmente de objetos; donde los objetos son unidades individuales e indivisibles que tienen código y / o datos ejecutables. A continuación se establecen algunas suposiciones que son necesarias para la aplicación de la prueba de uso de caja gris.
Ejemplos de
- Modelo arquitectónico
- Lenguaje de modelado unificado - Modelo de diseño UML
- Máquina de estados finitos - Modelo de estados. [7] [8]
Técnicas
Cem Kaner define que "las pruebas de caja gris implican entradas y salidas, pero el diseño de la prueba se basa en información sobre el código o la operación del programa de un tipo que normalmente estaría fuera de la vista del probador". [9] Las técnicas de prueba de caja gris son:
- Matrix Testing: establece el informe de estado del proyecto.
- Prueba de regresión : implica volver a ejecutar los casos de prueba si se realizan nuevos cambios.
- Pattern Testing: verifica la buena aplicación por su diseño o arquitectura y patrones.
- Prueba de matriz ortogonal : se utiliza como subconjunto de todas las combinaciones posibles. [10]
Efectos
Efectos positivos
- Ofrece ventajas combinadas: como la prueba de caja gris es una combinación de prueba de caja blanca y caja negra, ofrece ventajas de ambas pruebas.
- No intrusivo: se basa en la especificación funcional, la vista arquitectónica, mientras que no en el código fuente o binarios, lo que también lo hace invasivo.
- Creación inteligente de pruebas: el comprobador de caja gris maneja escenarios de pruebas inteligentes, por ejemplo, manejo de tipos de datos, protocolo de comunicación, manejo de excepciones .
- Pruebas imparciales: a pesar de todas las ventajas y funcionalidades anteriores, las pruebas de caja gris mantienen un límite para las pruebas entre el probador y el desarrollador. [11]
Efectos negativos
- Cobertura de código parcial: en las pruebas de caja gris, faltan el código fuente o los binarios debido al acceso limitado a la estructura interna o de las aplicaciones, lo que da como resultado un acceso limitado para el recorrido de la ruta del código.
- Identificación de defectos: en aplicaciones distribuidas, es difícil asociar la identificación de defectos. Aún así, las pruebas de caja gris son una bendición para encontrar cuán apropiados estos sistemas arrojan excepciones y cuán bien se manejan estas excepciones en sistemas distribuidos que tienen un entorno de servicios web. [11] [12]
Aplicaciones
- Las pruebas de caja gris son adecuadas para aplicaciones web. Las aplicaciones web tienen redes o sistemas distribuidos; debido a la ausencia de código fuente o binarios, no es posible utilizar pruebas de caja blanca. Las pruebas de caja negra tampoco se utilizan debido a un solo contrato entre el cliente y el desarrollador, por lo que es más eficiente usar las pruebas de caja gris ya que hay información importante disponible en el lenguaje de descripción de servicios web (WSDL). [13]
- Las pruebas de caja gris son adecuadas para pruebas funcionales o de dominio empresarial. Las pruebas funcionales se realizan básicamente como una prueba de las interacciones del usuario con sistemas externos. Las pruebas de caja gris son adecuadas para las pruebas funcionales debido a sus características; también ayuda a confirmar que el software cumple con los requisitos definidos para el software. [14] [15] [16] [17]
Alcance futuro
La naturaleza distribuida de los servicios web permite realizar pruebas de caja gris para detectar defectos dentro de una arquitectura orientada a servicios (SOA). Como sabemos, las pruebas de caja blanca no son adecuadas para los servicios web, ya que tratan directamente con las estructuras internas. Las pruebas de caja blanca se pueden utilizar para métodos de última generación; por ejemplo, la mutación del mensaje que genera las pruebas automáticas para arreglos grandes para ayudar a que los estados de manejo de excepciones fluyan sin código fuente o binarios. Esta estrategia es útil para acercar las pruebas de caja gris a los resultados de las pruebas de caja blanca.
Ver también
Referencias
- ^ "Investigación de Microsoft: tecnología emergente, informática y investigación de software" (PDF) .
- ^ "Copia archivada" (PDF) . Archivado desde el original (PDF) el 29 de marzo de 2012 . Consultado el 17 de octubre de 2011 .Mantenimiento de CS1: copia archivada como título ( enlace )
- ^ "Prueba de caja gris" . Fundamentos de las pruebas de software. 4 de noviembre de 2011 . Consultado el 19 de enero de 2012 .
- ^ "Ejemplo de prueba de caja gris con definición" . Geekinterview.com . Consultado el 19 de enero de 2012 .
- ^ a b Jake Rogers (8 de agosto de 2016). "Preguntas comunes sobre las pruebas de caja gris" . cgsec.co.uk . Consultado el 8 de agosto de 2016 .
- ^ "Extensiones orientadas a objetos a Pascal" . Pascal-central.com . Consultado el 19 de enero de 2012 .
- ^ Patton, Ron (26 de julio de 2005). Pruebas de software . Sams. pag. 2 . ISBN 978-0-672-32798-8.
- ^ "Copia archivada" (PDF) . Archivado desde el original (PDF) el 3 de abril de 2012 . Consultado el 17 de octubre de 2011 .Mantenimiento de CS1: copia archivada como título ( enlace )
- ^ Nguyen, Hung Q (2001). Prueba de aplicaciones en la Web: planificación de pruebas para sistemas basados en Internet . John Wiley e hijos. ISBN 9780471437642.
- ^ "Explore el mundo de las pruebas de caja gris" . Extremesoftwaretesting.com . Consultado el 19 de enero de 2012 .
- ^ a b "Herramientas de prueba SOA para técnicas de prueba SOA de caja negra, blanca y gris" . Crosschecknet.com. Archivado desde el original el 1 de octubre de 2018 . Consultado el 19 de enero de 2012 .
- ^ "Prueba de caja gris E33.PDF" (PDF) .
- ^ Ramdeo, Anand (5 de mayo de 2011). "Prueba de caja gris - Software" . Probando Geek . Consultado el 19 de enero de 2012 .
- ^ Bach, James. Lecciones aprendidas en pruebas de software . Wiley Computer Publishing.
- ^ Falk, Jack. Prueba de software informático, 2ª edición . Wiley Computer Publishing.
- ^ http://legacy.cleanscape.net/docs_lib/paper_graybox.pdf
- ^ Li, ZJ; Bronceado, HF; Liu, HH; Zhu, J .; Mitsumori, NM (6 de abril de 2010). "Pruebas SOA de caja gris impulsadas por procesos de negocio". Revista de sistemas de IBM . 47 (3): 457–472. doi : 10.1147 / sj.473.0457 .