SlideShare una empresa de Scribd logo
WODEL-TEST:
A MODEL-BASED FRAMEWORK
FOR LANGUAGE-INDEPENDENT
MUTATION TESTING
P. Gómez-Abajo , E. Guerra, J. de Lara
Modelling&Software Engineering Research Group
http://miso.es
Universidad Autónoma de Madrid (Spain)
JISBD, Septiembre 2021
Mercedes G. Merayo
Design and Testing of Reliable Systems Research Group
http://antares.sip.ucm.es/testing
Universidad Complutense de Madrid (Spain)
MOTIVACIÓN
• Las herramientas de pruebas de mutación son
• específicas para un lenguaje
• se desarrollan manualmente
• tienen un alto coste de mantenimiento
2
Se propone el entorno Wodel-Test - extensión a Wodel
para la generación de herramientas
de pruebas de mutación
Se implementan dos herramientas de pruebas de mutación
Wodel-Test para Java y Wodel-Test para ATL
¿QUÉ SON LAS PRUEBAS
DE MUTACIÓN?
• Enfoque de pruebas de
software para evaluar la
calidad de los conjuntos de
pruebas
• Introducción de cambios
sintácticos en un programa
mediante operadores de
mutación
• Las mutaciones introducidas
emulan fallos comunes de
programación
• Facilita mejorar la calidad de
los conjuntos de pruebas
3
PROCESO DE WODEL-TEST
4
HERRAMIENTA DE PRUEBAS DE
MUTACIÓN PARA JAVA
5
HERRAMIENTA DE PRUEBAS DE
MUTACIÓN GENERADA
1. Explorador de proyectos
2. Ejemplo de programa mutante
3. Conjunto de pruebas
4. Resultados globales del
proceso de pruebas de
mutación
6
EVALUACIÓN
7
RQ1
¿Permite Wodel-Test crear herramientas de pruebas de
mutación con capacidades similares a las herramientas de
pruebas de mutación creadas manualmente?
• Comparativa de Wodel-Test para Java con herramientas existentes de
pruebas de mutación para Java
•
• Implementación de Wodel-Test para ATL con los operadores de mutación
introducidos en Troya et al.[1]
[1] Troya, J., Bergmayr, A., Burgueño, L. y Wimmer, M.: Towards systematic mutations for and with ATL model
transformations. En International conference on software testing, verification and validation workshops (ICSTW),
págs. 1–10, 2015
RQ2
¿Wodel-Test es efectivo para especificar herramientas de
pruebas de mutación?
EVALUACIÓN RQ1
8
Major Javalanche PITest LittleDarwin muJava Wodel-Test/Java
N. de operadores 30 (por
defecto)
19 40 28 47 77 (por defecto)
Extensibilidad de
ops.
Sí (DSL) No API No No Sí (DSL)
Artefacto mutado Bytecode Bytecode Bytecode AST Bytecode Modelo
Código del
mutante
No No Sí Sí Sí Sí
Detección
equivalentes
No Sí (invariantes
dinámicas)
No No No Sí (TCE)
Tipo de informe CSV HTML HTML HTML GUI Vistas interactivas
Número de
mutantes
Mutation score
Mutantes
muertos/vivos
Número Número Número Número Número, lista Número, lista
Cobertura de
operadores
Número Número Número Número, lista Número, lista
Mutantes por clase
Mutantes por
prueba
Pruebas por
mutante
✓ ✓ ✓ ✓
✓ ✓ ✓ ✓

  
   
✓
   
✓
✓
✓
✓
✓
✓
✓
✓
✓

RQ1
Capacidades similares?
• Aplicación del proceso de pruebas de mutación sobre el proyecto functional-
matrix1:
• 1https://github.com/soursop/functional-matrix-operator
Herramienta Mutantes
(muertos/vivos)
Mutation
score (%)
Tiempo
ejecución
Tiempo por
mutante (s)
Major 1638 (331/864) 20,21 13 h 42 m 40s 30,14
PITest 918 (321/597) 34,97 1 h 11 m 20 s 4,66
LittleDarwin 439 (130/309) 29,61 3 h 30 m 39 s 28,79
muJava 2589 (557/2032) 21,51 5 h 30 m 10 s 7,65
Wodel-
Test/Java
4756 (985/3771) 20,71 3 h 24 m 23 s 2,58
9
EVALUACIÓN RQ1
RQ1
Capacidades similares?
• Aplicación del proceso de pruebas de mutación sobre el proyecto functional-
matrix1:
• 1https://github.com/soursop/functional-matrix-operator
Herramienta Mutantes
(muertos/vivos)
Mutation
score (%)
Tiempo
ejecución
Tiempo por
mutante (s)
Major 1638 (331/864) 20,21 13 h 42 m 40s 30,14
PITest 918 (321/597) 34,97 1 h 11 m 20 s 4,66
LittleDarwin 439 (130/309) 29,61 3 h 30 m 39 s 28,79
muJava 2589 (557/2032) 21,51 5 h 30 m 10 s 7,65
Wodel-
Test/Java
4756 (985/3771) 20,71 3 h 24 m 23 s 2,58
10
EVALUACIÓN RQ1
RQ1
Capacidades similares?
RQ1: Sí, Wodel-Test genera herramientas
de MT con capacidades similares
EVALUACIÓN RQ2
• Wodel-Test para ATL con los operadores de mutación
introducidos en el trabajo de Troya et al.
• El prototipo de Troya et al. es un generador de mutantes
• Wodel-Test para ATL proporciona la funcionalidad completa de
una herramienta de pruebas de mutación para este lenguaje
11
RQ2
Es efectivo?
EVALUACIÓN RQ2
• Operadores de mutación para ATL
Concepto Operador de
mutación
LOC en Wodel LOC en ATL
Regla Creación
Borrado
Cambio de nombre
1
1
1
-
-
-
Elemento de patrón de entrada Creación
Borrado
Cambio de tipo
Cambio de nombre
6
1
4
1
14
-
-
-
Filtro de regla Creación
Borrado
Cambio de condición
10
1
4
-
-
-
Elemento de patrón de salida Creación
Borrado
Cambio de tipo
Cambio de nombre
6
1
4
1
-
6
-
-
Binding Creación
Borrado
Cambio de valor
Cambio de propiedad
6
1
2
6
-
3
-
-
12
RQ2
Es efectivo?
EVALUACIÓN RQ2
• Operadores de mutación para ATL
Concepto Operador de
mutación
LOC en Wodel LOC en ATL
Regla Creación
Borrado
Cambio de nombre
1
1
1
-
-
-
Elemento de patrón de entrada Creación
Borrado
Cambio de tipo
Cambio de nombre
6
1
4
1
14
-
-
-
Filtro de regla Creación
Borrado
Cambio de condición
10
1
4
-
-
-
Elemento de patrón de salida Creación
Borrado
Cambio de tipo
Cambio de nombre
6
1
4
1
-
6
-
-
Binding Creación
Borrado
Cambio de valor
Cambio de propiedad
6
1
2
6
-
3
-
-
13
RQ2
Es efectivo?
RQ2: Sí, Wodel-Test es efectivo
CONCLUSIONES
14
• Wodel-Test proporciona una funcionalidad comparable a la de las
herramientas de pruebas de mutación existentes para Java
• Wodel-Test puede ser una mejor opción:
• Acceso al código fuente de los mutantes
• Razonar sobre qué mutantes reducen el mutation score y por qué
• Experimentar con nuevos operadores de mutación
• Las herramientas de pruebas de mutación existentes requieren dos
órdenes de magnitud más de código que la especificación de un entorno
similar utilizando Wodel-Test
• Trabajo futuro
• Abordar programas más grandes
• Optimizaciones del proceso de pruebas de mutación
• Estudio con usuarios para analizar la usabilidad
15
Sitios web de Wodel & Wodel-Test:
http://gomezabajo.github.io/Wodel/
http://gomezabajo.github.io/Wodel/Wodel-Test/
16
ARQUITECTURA DE WODEL-TEST
motor de
WODEL
equivalencia
sintáctica
WODEL-TEST
postProc
2
1
LanguageService
Provider
projectToModel()
modelToProject()
annotateMutation()
compile()
run()
3
equivalencia
semántica
ESPEC MT DEL
LENGUAJE
equivalencia
EMFCompare
«interfaz»
«requiere»
«utiliza»
4
Trivial
compiler
equivalence
«utiliza»
registro
de mutación
programas WODEL
(meta-modelo + ops. mutación)
«incluye»

Más contenido relacionado

PDF
Un framework para la generación automática de ejercicios mediante técnicas de...
PDF
PhD defense presentation
PDF
Tema 9 pruebas unitarias por gio
PPTX
Caja blanca
PDF
Prueba de Caja Blanca
PDF
ejemplos de pruebas unitarias y de integracion
PPTX
Prueba de-caja-negra-y-caja-blanca pwp
Un framework para la generación automática de ejercicios mediante técnicas de...
PhD defense presentation
Tema 9 pruebas unitarias por gio
Caja blanca
Prueba de Caja Blanca
ejemplos de pruebas unitarias y de integracion
Prueba de-caja-negra-y-caja-blanca pwp

La actualidad más candente (20)

PPTX
Tecnicas de Pruebas
DOCX
tipos de pruebas
PPT
Validacion Y Verificacion
PDF
Caja negra
PPTX
Testing & Pizza by Lito & nitsnets
PDF
Proyecto de sistemas de información luis castellanos (prueba)
ODT
Programacion logica y funcional ejer1
PPT
oTema6 pruebas del software
PPTX
Prueba de aplicaciones
PPTX
Estrategias de aplicaciones para las pruebas de integración
PDF
Ejercicios de Java Básico. Listado 1 de Ejercicios.Programación.
PPTX
Validacion verificacion
PPT
Pruebas
PDF
Ejercicios de evaluación de fundametnos de programacion en JAva
KEY
Manejo de Pruebas Técnicas de Software: pt. 2
PPTX
Unit testing
PPTX
Test Automation .NET
PDF
No debuggearás - Introducción al Unit Testing y TDD
DOC
Taller de procesos de software
Tecnicas de Pruebas
tipos de pruebas
Validacion Y Verificacion
Caja negra
Testing & Pizza by Lito & nitsnets
Proyecto de sistemas de información luis castellanos (prueba)
Programacion logica y funcional ejer1
oTema6 pruebas del software
Prueba de aplicaciones
Estrategias de aplicaciones para las pruebas de integración
Ejercicios de Java Básico. Listado 1 de Ejercicios.Programación.
Validacion verificacion
Pruebas
Ejercicios de evaluación de fundametnos de programacion en JAva
Manejo de Pruebas Técnicas de Software: pt. 2
Unit testing
Test Automation .NET
No debuggearás - Introducción al Unit Testing y TDD
Taller de procesos de software
Publicidad

Más de Pablo Gómez Abajo (15)

PDF
Automated Engineering of Domain-Specific Metamorphic Testing Environments
PDF
Mutation testing for DSLs - The case of task-oriented chatbots
PDF
Mutation Testing for Task-Oriented Chatbots
PDF
Wodel-Edu: A tool for the generation and evaluation of diagram-based exercises
PDF
Automated engineering of domain-specific metamorphic testing environments
PDF
Wodel-Test: A Model-Based Framework for Language-Independent Mutation Testing
PDF
Wodel-Edu: An MDE Solution for the Generation and Evaluation of Diagram-based...
PDF
Generation of mutation testing tools with Wodel-Test
PDF
Programación de macros en Microsoft Excel VBA
PDF
Seed Model Synthesis for Testing Model-based Mutation Operators
PDF
Mutation Testing for DSLs (Tool Demo)
PDF
Towards a model-driven engineering solution for language independent mutation...
PDF
Wodel: A DSL for Model Mutation; and Wodel-Edu: its Application to the Automa...
PDF
A DSL for Model Mutation and its Applications to Different Domains
PDF
Wodel: A Domain-Specific Language for Model Mutation
Automated Engineering of Domain-Specific Metamorphic Testing Environments
Mutation testing for DSLs - The case of task-oriented chatbots
Mutation Testing for Task-Oriented Chatbots
Wodel-Edu: A tool for the generation and evaluation of diagram-based exercises
Automated engineering of domain-specific metamorphic testing environments
Wodel-Test: A Model-Based Framework for Language-Independent Mutation Testing
Wodel-Edu: An MDE Solution for the Generation and Evaluation of Diagram-based...
Generation of mutation testing tools with Wodel-Test
Programación de macros en Microsoft Excel VBA
Seed Model Synthesis for Testing Model-based Mutation Operators
Mutation Testing for DSLs (Tool Demo)
Towards a model-driven engineering solution for language independent mutation...
Wodel: A DSL for Model Mutation; and Wodel-Edu: its Application to the Automa...
A DSL for Model Mutation and its Applications to Different Domains
Wodel: A Domain-Specific Language for Model Mutation
Publicidad

Último (20)

PDF
-3-IMPORTANCIA DE LAS PROTEINAS 02 ABRIL 2020 .pdf
PDF
Generalidades morfológicas de los Hongos
PPTX
Intoxicación por artrópodos picadores y pulgas
PPTX
sangrado uterino anormal, urgencia ginecologica
PDF
ATLAS DEL SITEMA NERVIOSO para el cu.pdf
PPTX
Formulación de Objetivos en Investigaciones Cuantitativas.pptx
PDF
Conferencia Protozoos coccidios (1).pdf medicina
PDF
Vía de señalizacion AMP cíclico biologia molecular
PPTX
EXAMEN FISICO DEL RN sem 11 - copia-1.pptx
PPTX
PRESENTACION PARENTALkkkkkk NICOLAS.pptx
PDF
Lili para que lo consideres.pdf 3.pdfCICLO2
PPTX
Anatomia-Fisiologia-y-Patologia-de-los-OFA-material-de-apoyo-parte-3.pptx
PPTX
Clase 1 Física 3 introductoria para estudiantes universitarios
PDF
Tejido sanguíneo.pdf……………………………………………….
PPTX
Púrpura en pediatría tema de nefrologíaa
PPTX
vasculitis, insuficiencia cardiaca.pptx.
PDF
_APENDICITIS - CIRUGIA TUTO.pdf cirugía 1
PDF
UD5_Enfermedades_pleurales_mediastino.pdf
PPTX
uterohinibidores y tocoliticos del embarazo.pptx
PPTX
PLATON.pptx(presentación acerca de los hechos y legados de la vida de Platón)
-3-IMPORTANCIA DE LAS PROTEINAS 02 ABRIL 2020 .pdf
Generalidades morfológicas de los Hongos
Intoxicación por artrópodos picadores y pulgas
sangrado uterino anormal, urgencia ginecologica
ATLAS DEL SITEMA NERVIOSO para el cu.pdf
Formulación de Objetivos en Investigaciones Cuantitativas.pptx
Conferencia Protozoos coccidios (1).pdf medicina
Vía de señalizacion AMP cíclico biologia molecular
EXAMEN FISICO DEL RN sem 11 - copia-1.pptx
PRESENTACION PARENTALkkkkkk NICOLAS.pptx
Lili para que lo consideres.pdf 3.pdfCICLO2
Anatomia-Fisiologia-y-Patologia-de-los-OFA-material-de-apoyo-parte-3.pptx
Clase 1 Física 3 introductoria para estudiantes universitarios
Tejido sanguíneo.pdf……………………………………………….
Púrpura en pediatría tema de nefrologíaa
vasculitis, insuficiencia cardiaca.pptx.
_APENDICITIS - CIRUGIA TUTO.pdf cirugía 1
UD5_Enfermedades_pleurales_mediastino.pdf
uterohinibidores y tocoliticos del embarazo.pptx
PLATON.pptx(presentación acerca de los hechos y legados de la vida de Platón)

Wodel-Test: A Model-Based Framework for Language-Independent Mutation Testing (spanish)

  • 1. WODEL-TEST: A MODEL-BASED FRAMEWORK FOR LANGUAGE-INDEPENDENT MUTATION TESTING P. Gómez-Abajo , E. Guerra, J. de Lara Modelling&Software Engineering Research Group http://miso.es Universidad Autónoma de Madrid (Spain) JISBD, Septiembre 2021 Mercedes G. Merayo Design and Testing of Reliable Systems Research Group http://antares.sip.ucm.es/testing Universidad Complutense de Madrid (Spain)
  • 2. MOTIVACIÓN • Las herramientas de pruebas de mutación son • específicas para un lenguaje • se desarrollan manualmente • tienen un alto coste de mantenimiento 2 Se propone el entorno Wodel-Test - extensión a Wodel para la generación de herramientas de pruebas de mutación Se implementan dos herramientas de pruebas de mutación Wodel-Test para Java y Wodel-Test para ATL
  • 3. ¿QUÉ SON LAS PRUEBAS DE MUTACIÓN? • Enfoque de pruebas de software para evaluar la calidad de los conjuntos de pruebas • Introducción de cambios sintácticos en un programa mediante operadores de mutación • Las mutaciones introducidas emulan fallos comunes de programación • Facilita mejorar la calidad de los conjuntos de pruebas 3
  • 5. HERRAMIENTA DE PRUEBAS DE MUTACIÓN PARA JAVA 5
  • 6. HERRAMIENTA DE PRUEBAS DE MUTACIÓN GENERADA 1. Explorador de proyectos 2. Ejemplo de programa mutante 3. Conjunto de pruebas 4. Resultados globales del proceso de pruebas de mutación 6
  • 7. EVALUACIÓN 7 RQ1 ¿Permite Wodel-Test crear herramientas de pruebas de mutación con capacidades similares a las herramientas de pruebas de mutación creadas manualmente? • Comparativa de Wodel-Test para Java con herramientas existentes de pruebas de mutación para Java • • Implementación de Wodel-Test para ATL con los operadores de mutación introducidos en Troya et al.[1] [1] Troya, J., Bergmayr, A., Burgueño, L. y Wimmer, M.: Towards systematic mutations for and with ATL model transformations. En International conference on software testing, verification and validation workshops (ICSTW), págs. 1–10, 2015 RQ2 ¿Wodel-Test es efectivo para especificar herramientas de pruebas de mutación?
  • 8. EVALUACIÓN RQ1 8 Major Javalanche PITest LittleDarwin muJava Wodel-Test/Java N. de operadores 30 (por defecto) 19 40 28 47 77 (por defecto) Extensibilidad de ops. Sí (DSL) No API No No Sí (DSL) Artefacto mutado Bytecode Bytecode Bytecode AST Bytecode Modelo Código del mutante No No Sí Sí Sí Sí Detección equivalentes No Sí (invariantes dinámicas) No No No Sí (TCE) Tipo de informe CSV HTML HTML HTML GUI Vistas interactivas Número de mutantes Mutation score Mutantes muertos/vivos Número Número Número Número Número, lista Número, lista Cobertura de operadores Número Número Número Número, lista Número, lista Mutantes por clase Mutantes por prueba Pruebas por mutante ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓         ✓     ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓  RQ1 Capacidades similares?
  • 9. • Aplicación del proceso de pruebas de mutación sobre el proyecto functional- matrix1: • 1https://github.com/soursop/functional-matrix-operator Herramienta Mutantes (muertos/vivos) Mutation score (%) Tiempo ejecución Tiempo por mutante (s) Major 1638 (331/864) 20,21 13 h 42 m 40s 30,14 PITest 918 (321/597) 34,97 1 h 11 m 20 s 4,66 LittleDarwin 439 (130/309) 29,61 3 h 30 m 39 s 28,79 muJava 2589 (557/2032) 21,51 5 h 30 m 10 s 7,65 Wodel- Test/Java 4756 (985/3771) 20,71 3 h 24 m 23 s 2,58 9 EVALUACIÓN RQ1 RQ1 Capacidades similares?
  • 10. • Aplicación del proceso de pruebas de mutación sobre el proyecto functional- matrix1: • 1https://github.com/soursop/functional-matrix-operator Herramienta Mutantes (muertos/vivos) Mutation score (%) Tiempo ejecución Tiempo por mutante (s) Major 1638 (331/864) 20,21 13 h 42 m 40s 30,14 PITest 918 (321/597) 34,97 1 h 11 m 20 s 4,66 LittleDarwin 439 (130/309) 29,61 3 h 30 m 39 s 28,79 muJava 2589 (557/2032) 21,51 5 h 30 m 10 s 7,65 Wodel- Test/Java 4756 (985/3771) 20,71 3 h 24 m 23 s 2,58 10 EVALUACIÓN RQ1 RQ1 Capacidades similares? RQ1: Sí, Wodel-Test genera herramientas de MT con capacidades similares
  • 11. EVALUACIÓN RQ2 • Wodel-Test para ATL con los operadores de mutación introducidos en el trabajo de Troya et al. • El prototipo de Troya et al. es un generador de mutantes • Wodel-Test para ATL proporciona la funcionalidad completa de una herramienta de pruebas de mutación para este lenguaje 11 RQ2 Es efectivo?
  • 12. EVALUACIÓN RQ2 • Operadores de mutación para ATL Concepto Operador de mutación LOC en Wodel LOC en ATL Regla Creación Borrado Cambio de nombre 1 1 1 - - - Elemento de patrón de entrada Creación Borrado Cambio de tipo Cambio de nombre 6 1 4 1 14 - - - Filtro de regla Creación Borrado Cambio de condición 10 1 4 - - - Elemento de patrón de salida Creación Borrado Cambio de tipo Cambio de nombre 6 1 4 1 - 6 - - Binding Creación Borrado Cambio de valor Cambio de propiedad 6 1 2 6 - 3 - - 12 RQ2 Es efectivo?
  • 13. EVALUACIÓN RQ2 • Operadores de mutación para ATL Concepto Operador de mutación LOC en Wodel LOC en ATL Regla Creación Borrado Cambio de nombre 1 1 1 - - - Elemento de patrón de entrada Creación Borrado Cambio de tipo Cambio de nombre 6 1 4 1 14 - - - Filtro de regla Creación Borrado Cambio de condición 10 1 4 - - - Elemento de patrón de salida Creación Borrado Cambio de tipo Cambio de nombre 6 1 4 1 - 6 - - Binding Creación Borrado Cambio de valor Cambio de propiedad 6 1 2 6 - 3 - - 13 RQ2 Es efectivo? RQ2: Sí, Wodel-Test es efectivo
  • 14. CONCLUSIONES 14 • Wodel-Test proporciona una funcionalidad comparable a la de las herramientas de pruebas de mutación existentes para Java • Wodel-Test puede ser una mejor opción: • Acceso al código fuente de los mutantes • Razonar sobre qué mutantes reducen el mutation score y por qué • Experimentar con nuevos operadores de mutación • Las herramientas de pruebas de mutación existentes requieren dos órdenes de magnitud más de código que la especificación de un entorno similar utilizando Wodel-Test • Trabajo futuro • Abordar programas más grandes • Optimizaciones del proceso de pruebas de mutación • Estudio con usuarios para analizar la usabilidad
  • 15. 15 Sitios web de Wodel & Wodel-Test: http://gomezabajo.github.io/Wodel/ http://gomezabajo.github.io/Wodel/Wodel-Test/
  • 16. 16 ARQUITECTURA DE WODEL-TEST motor de WODEL equivalencia sintáctica WODEL-TEST postProc 2 1 LanguageService Provider projectToModel() modelToProject() annotateMutation() compile() run() 3 equivalencia semántica ESPEC MT DEL LENGUAJE equivalencia EMFCompare «interfaz» «requiere» «utiliza» 4 Trivial compiler equivalence «utiliza» registro de mutación programas WODEL (meta-modelo + ops. mutación) «incluye»