Concordion es un marco de especificación por ejemplo desarrollado originalmente por David Peterson, [1] y ahora mantenido por un equipo de colaboradores, [2] dirigido por Nigel Charman.
Autor (es) original (es) | David Peterson |
---|---|
Desarrollador (es) | Nigel Charman y col. |
Lanzamiento estable | 3.0.1 / 4 de julio de 2020 |
Repositorio | |
Escrito en | Java , .NET |
Sistema operativo | Multiplataforma |
Tipo | Especificación mediante herramienta de ejemplo |
Licencia | Licencia Apache 2.0 |
Sitio web | concordion |
Inspirado por el Fit Framework , David afirma que los siguientes objetivos estaban detrás de Concordion: [3]
- Mejora de la legibilidad de los documentos.
- Más "obstinado" (se desaconseja activamente la creación de guiones)
- Más fácil de usar
Cómo funciona
Las especificaciones de Concordion se escriben en Markdown, HTML o Excel [4] y luego se instrumentan con enlaces, atributos o comentarios especiales, respectivamente. Cuando se ejecuta la clase de dispositivo de prueba correspondiente, Concordion interpreta la instrumentación para ejecutar la prueba. En lugar de obligar a los propietarios de productos a especificar los requisitos en un lenguaje especialmente estructurado, Concordion le permite escribirlos en un lenguaje normal utilizando párrafos, tablas y la puntuación adecuada. Esto hace que las especificaciones sean mucho más naturales de leer y escribir, y ayuda a que todos comprendan y se pongan de acuerdo sobre lo que se supone que debe hacer una función. [5]
Los archivos Markdown, HTML o Excel generalmente se almacenan con el código fuente, lo que tiene la ventaja de que pueden estar bajo el mismo sistema de control de versiones que el resto del código, lo que garantiza que la especificación y las pruebas se ramifiquen y fusionen junto con el código fuente principal. .
Concordion incluye un mecanismo de extensión flexible [6] para agregar funcionalidad, por ejemplo, implementar nuevos comandos, escuchar eventos o modificar la documentación de salida. Al proporcionar funcionalidades como la incrustación de capturas de pantalla, [7] guiones gráficos [8] o el registro de salida, [9] las extensiones brindan confianza en lo que está haciendo la prueba sin bloquear la prueba en una implementación específica. [10]
Concordion enriquece los procesos ágiles [11] y se ha aplicado con éxito en el contexto industrial. [12]
Ejemplo
Especificación de formato de rebajas
Antes de la instrumentación | ¡El saludo para World es Hello World! |
---|---|
Después de la instrumentación | El saludo para [ Mundo ] ( - "#nombre" ) es [ ¡Hola mundo! ] ( - "? = saludoPara (#nombre )") |
Especificación de formato HTML
Antes de la instrumentación | < html > < cuerpo > < p > El saludo para < b > Mundo b > es < b > ¡Hola mundo! b > p > cuerpo > html > |
---|---|
Después de la instrumentación | < html xmlns: concordion = "http://www.concordion.org/2007/concordion" > < body > < p > El saludo para < b concordion: set = "#name" > World b > es < b concordion: assertEquals = "greetingFor (#name)" > ¡Hola mundo! b > p > cuerpo > html > |
El código del aparato
- HelloWorldTest.java
- El accesorio que trabaja con la instrumentación.
paquete org.wikipedia ;importar org.concordion.integration.junit4.ConcordionRunner ; import org.junit.runner.RunWith ;@RunWith ( ConcordionRunner . Class ) public class HelloWorldTest { public String greetingFor ( String firstName ) { return "Hola" + firstName + "!" ; } }
Apoyo al entorno de desarrollo integrado
El complemento Concordion Support para el entorno de desarrollo integrado (IDE) de IntelliJ IDEA simplifica el desarrollo de accesorios y especificaciones con características que incluyen autocompletado, navegación entre especificaciones y accesorios de prueba, cambio de nombre, ejecución de pruebas, inspecciones y arreglos rápidos. [13]
El complemento Eclipse (software) Concordion es mucho más limitado y no se ha actualizado desde 2011. [14] El autor original dejó de usar Concordion y Eclipse y no puede acomodar el tiempo necesario para extender y mantener el complemento. [15]
Puertos
Concordion se ha portado a otros idiomas, incluidos:
- C # ( Concordion.NET )
- Python ( PyConcordion )
- Ruby ( Ruby-Concordion )
Referencias
- ^ Gärtner, Markus (julio de 2012). ATDD por ejemplo: una guía práctica para el desarrollo basado en pruebas de aceptación . Addison-Wesley Professional. ISBN 978-0321784155.
- ^ "concordión" . GitHub . Consultado el 4 de septiembre de 2016 .
- ^ "Preguntas frecuentes de Concordion" . Consultado el 2 de mayo de 2011 ..
- ^ "concordion / concordion-excel-extension" . GitHub . Consultado el 4 de septiembre de 2016 .
- ^ Riley, Tim; Goucher, Adam (octubre de 2009). Hermosas pruebas: profesionales líderes revelan cómo mejoran el software . O'Reilly Media. pag. 350. ISBN 978-0596159818.
- ^ "Concordion | Extensiones | Java" . concordion.org . Consultado el 4 de septiembre de 2016 .
- ^ "extensión de captura de pantalla de concordion / concordion" . GitHub . Consultado el 4 de septiembre de 2016 .
- ^ "concordion / concordion-storyboard-extension" . GitHub . Consultado el 4 de septiembre de 2016 .
- ^ "concordion / concordion-logback-extension" . GitHub . Consultado el 4 de septiembre de 2016 .
- ^ "David Peterson: extensiones de concordion" . blog.davidpeterson.co.uk . Archivado desde el original el 11 de septiembre de 2016 . Consultado el 4 de septiembre de 2016 .
- ^ Besson, Felipe M .; Beder, Delano M .; Chaim, Marcos L. (junio de 2010). "Un enfoque automatizado para el modelado y ejecución de casos de prueba web de aceptación". Procesos ágiles en Ingeniería de Software y Programación Extrema . XI Conferencia Internacional sobre Desarrollo de Software Ágil, XP 2010 . Trondheim, Noruega: Springer Berlin Heidelberg. págs. 160-165. doi : 10.1007 / 978-3-642-13054-0_12 .
- ^ Latorre, Latorre (1 de junio de 2014). "Una aplicación exitosa de una estrategia de desarrollo basado en pruebas en el entorno industrial" . Ingeniería de software empírica . 19 (3): 753–773. doi : 10.1007 / s10664-013-9281-9 . S2CID 15196251 .
- ^ "concordion / idea-concordion-support" . GitHub . Consultado el 4 de septiembre de 2016 .
- ^ "Archivo de código de Google - almacenamiento a largo plazo para el alojamiento de proyectos de código de Google" . code.google.com . Consultado el 4 de septiembre de 2016 .
- ^ "Grupos de Google" . groups.google.com . Consultado el 4 de septiembre de 2016 .
enlaces externos
- Página web oficial
- David Peterson: Concordion 1.3.1 en la Wayback Machine (archivado el 31 de agosto de 2017)
- concordion en GitHub
- concordion.net en GitHub