En programación y ciencias de la computación , los programadores y desarrolladores emplean una técnica llamada prueba unitaria automatizada para mejorar la calidad del software. Con frecuencia, el software de lanzamiento final consiste en un conjunto complejo de objetos o procedimientos que interactúan entre sí para crear el resultado final. En las pruebas unitarias automatizadas, puede ser necesario utilizar objetos o procedimientos que se vean y se comporten como sus homólogos previstos para la publicación, pero en realidad son versiones simplificadas que reducen la complejidad y facilitan las pruebas. Un doble de prueba es un término genérico (meta) utilizado para estos objetos o procedimientos.
Tipos de dobles de prueba
Gerard Meszaros [1] identificó varios términos diferentes para lo que él llama "Test Dobles". Usando su vocabulario, hay al menos cinco tipos de pruebas dobles:
- Test stub - utilizado para proporcionar el código probado con "entrada indirecta".
- Objeto simulado : se utiliza para verificar la "salida indirecta" del código probado, definiendo primero las expectativas antes de que se ejecute el código probado.
- Espía de prueba : se utiliza para verificar la "salida indirecta" del código probado, afirmando las expectativas posteriormente, sin haber definido las expectativas antes de que se ejecute el código probado. Ayuda a registrar información sobre el objeto indirecto creado.
- Objeto falso : se usa como una implementación más simple, por ejemplo, usando una base de datos en memoria en las pruebas en lugar de realizar un acceso real a la base de datos.
- Objeto ficticio : se usa cuando se necesita un parámetro para el método probado, pero sin necesidad de usar el parámetro.
Para las pruebas manuales y automáticas de caja negra de sistemas de arquitectura orientada a servicios o microservicios , los desarrolladores y probadores de software utilizan pruebas dobles que se comunican con el sistema bajo prueba a través de un protocolo de red. [2] [3] Estos dobles de prueba reciben diferentes nombres según el proveedor de la herramienta. Un término de uso común es la virtualización de servicios . Otros nombres utilizados incluyen simulación API , API mock, [4] stub HTTP, HTTP mock, over the wire test double [5] . [6]
Otra forma de prueba doble es la falsificación verificada, 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 contra la falsificación verificada como contra la implementación real. [7]
Si bien no existe un estándar abierto para la prueba doble y los diversos tipos, existe un impulso para el uso continuo de estos términos de esta manera. Martin Fowler usó estos términos en su artículo, Mocks Aren't Stubs [8] refiriéndose al libro de Meszaros. Microsoft también usó los mismos términos y definiciones en un artículo titulado Explorando el continuo de los dobles de prueba . [9]
Ver también
Referencias
- ^ Meszaros, Gerard (2007). Patrones de prueba de xUnit: Refactorización del código de prueba . Addison-Wesley. ISBN 978-0-13-149505-0.
- ^ Clemson, Toby "Testing Strategies in a Microservice Architecture" , martinfowler.com , 18 de noviembre de 2014. Consultado el 07 de diciembre de 2017.
- ^ Byars, Brandon. "Prueba de microservicios con Mountebank", Publicaciones Manning , MEAP comenzó en marzo de 2017. ISBN 9781617294778 . Consultado el 07 de diciembre de 2017.
- ^ Bryant, Daniel "API Mocking Tool WireMock v2 lanzado con una mejor gestión de coincidencias de solicitudes y stub " , InfoQ , 16 de agosto de 2016. Recuperado el 07 de diciembre de 2017.
- ^ ThoughtWorks "Technology Radar, Tools: Mountebank" , ThoughtWorks , noviembre de 2015. Consultado el 07 de diciembre de 2017.
- ^ Bulaty, Wojciech "Stubbing, Mocking and Service Virtualization Differences for Test and Development Teams" , InfoQ , 19 de febrero de 2016. Consultado el 07 de diciembre de 2017.
- ^ Turner-Trauring, Itamar (2019). " Pruebas rápidas para servicios lentos: por qué debería utilizar falsificaciones verificadas " . Consultado el 21 de enero de 2019 .
- ^ Fowler, Martin (2007). "Los simulacros no son talones " . Consultado el 29 de diciembre de 2010 .
- ^ Seemann, Mark (2007). " Explorando el continuo de dobles de prueba " . Consultado el 29 de diciembre de 2010 .
enlaces externos
Gerard Meszaros:
- Prueba doble
- Prueba de patrones dobles
- Simulacros, falsificaciones, talones y tontos
Martin Fowler:
- TestDouble , 17 de enero de 2006
Fuente abierta:
- ELF Spy : falsificaciones y espías en C ++
- FakeIt - Simulacros , falsificaciones y espías en C ++
- Google Mock : burlarse en C ++
- jMock : desarrollo basado en pruebas con simulacros
- Mockito - Mocking Framework para Java
- unittest.mock - Burlarse con Python