Una prueba doble es un software utilizado en la automatización de pruebas de software que satisface una dependencia de modo que la prueba no necesita depender del código de producción. Un doble de prueba proporciona funcionalidad a través de una interfaz que el software bajo prueba no puede distinguir del código de producción.
Un programador generalmente usa un doble de prueba para aislar el comportamiento del código consumidor del resto del código base.
Una prueba doble suele ser una versión simplificada del código de producción y puede incluir capacidades específicas para las pruebas.
Los dobles de prueba se utilizan para construir arneses de prueba .
Se puede utilizar una prueba doble para simplificar y acelerar la ejecución de la prueba.
Por ejemplo, un programa que utiliza un servidor de base de datos es relativamente lento y consume importantes recursos del sistema , lo que impide la productividad de las pruebas. Además, un caso de prueba puede requerir valores distintos de los almacenados en la base de datos. Un doble de prueba podría proporcionar un valor estático en lugar de acceder a una base de datos.
Se puede utilizar una prueba doble para probar parte del sistema que está listo para la prueba incluso si sus dependencias no lo están.
Por ejemplo, en un sistema con módulos Inicio de sesión, Inicio y Usuario, supongamos que Inicio de sesión está listo para la prueba, pero los otros dos no. Las funciones consumidas de Inicio y Usuario se pueden implementar como dobles de prueba para que se pueda probar el Inicio de sesión.
Los dobles de prueba se categorizan de muchas maneras.
Aunque no es universalmente aceptado, Gerard Meszaros [1] clasifica los dobles de prueba como:
Si bien no existe un estándar abierto para las categorías, Martin Fowler usó estos términos en su artículo Mocks Aren't Stubs [2] refiriéndose al libro de Meszaros. Microsoft también utilizó los mismos términos y definiciones en un artículo titulado Explorando la continuidad de los dobles de prueba . [3]
Para sistemas y microservicios de arquitectura orientada a servicios (SOA) , los evaluadores utilizan dobles de prueba que se comunican con el sistema bajo prueba a través de un protocolo de red. [4] [5] Estos dobles de prueba reciben nombres diferentes por parte de los proveedores de herramientas. Un término comúnmente utilizado es virtualización de servicios . Otros nombres utilizados incluyen simulación de API , simulación de API, [6] código auxiliar HTTP, simulación de HTTP, doble prueba por cable [7] . [8]
Una falsificación verificada es un objeto falso cuyo comportamiento se ha verificado para que coincida con el del objeto real mediante un conjunto de pruebas que se ejecutan tanto en la implementación real como en la falsa verificada. [9]
Gerard Meszarós:
Martín Fowler:
Fuente abierta: