SlideShare una empresa de Scribd logo
1 de 21
1 of 17
•Haga clic para modificar el estilo de subtítulo del patrón
Ajhsia
JISBD 2016
Aplicando Programación Lineal Entera a la
Búsqueda de Conjuntos de Productos de Prueba
Priorizados para Líneas de Productos Software
Javier Ferrer Francisco Chicano Roberto López-Herrejón Enrique Alba
ferrer@lcc.uma.es chicano@lcc.uma.es roberto.lopezherrejon@gmail.com eat@lcc.uma.es
2 of 17JISBD 2016 2/20
Contenidos
3
Líneas de Productos
Priorización en las Pruebas
Algoritmos basado en Programación Lineal Entera
Experimentos y Resultados
Conclusiones
1
2
5
4
3 of 17JISBD 2016 3/20
•Una línea de productos (LP) es una familia de productos
desarrollados a partir de un conjunto de características:
•Los productos tienen características similares
•Los productos tienen características únicas
•Utilizar LPs tiene muchas ventajas:
•Personalización rápida
•Incrementa la reutilización
•Reducción tiempo a mercado
Líneas de Productos
4 of 17JISBD 2016 4/20
•Cuando el producto es Software hablamos de Software Product
Lines (SPLs)
•Se modelan usando modelos de características (Feature Models)
•Las SPLs tienen un alto número de productos
•Probar todos los productos no es viable!!
Líneas de Productos Software
1.900.544
productos
5 of 17JISBD 2016 5/20
•Desafío:
•¿Cómo probar las líneas de productos software
eficientemente?
•Factores importantes a considerar:
•Evitar la repetición de pruebas
•Ceñirse a las restricciones de coste y tiempo
•Técnicas usadas:
•Priorización: Probar primero aquellos productos con
características importantes o costosas
•Pruebas Combinatorias de Interacción: Al menos un
producto tiene que cubrir cada par, trio,…de características.
Líneas de Productos Software II
6 of 17JISBD 2016 6/20
Modelos de Características
•Modelos de Características son el estándar de facto para
modelar las características comunes y variables de un
sistema y sus relaciones
raiz
obligatoria
opcional
Or-inclusiva
Or-exclusiva
7 of 17JISBD 2016 7/20
Modelos de Características II










 

Seleccionadas = {Aircraft, Wing, High, Engine, Piston, Materials, Cloth}
Deseleccionadas = {Shoulder, Low, Jet, Metal, Wood, Plastic}
8 of 17JISBD 2016 8/20
Productos Válidos
•Ejemplos de productos válidos:
•Aircraft, Wing, Engine, Materials, High, Shoulder, Low,
Piston, Jet, Metal, Wood, Plastic, Cloth
•Criterio de Cobertura Pairwise: Cada par de valores debe
estar presente en al menos un producto de la test suite
9 of 17JISBD 2016 9/20
Productos y Pares Priorizados
•Producto priorizado: Debe ser un producto válido con un
peso asignado.
•Pares priorizados: Su prioridad es calculada según el peso
los productos dónde aparecen.
17
17
15
15
13
13
6
6
pc1=[{Plastic},{Cloth}]
Peso par= pp0.w + pp2.w = 17 + 15 = 32
pesos
10 of 17JISBD 2016 10/20
Problema de Optimización
•El problema es encontrar un conjunto de productos que:
•Cubran todos los pares de características válidas (restricción)
•Se maximice la cobertura ponderada (objetivo)
•Se minimice el nº de productos a probar (objetivo)
ZipMe
Compress Extract Checksum Adapt GZIP ArchCheck CRC
✔ ✔ ✔ ✔ ✔
✔ ✔ ✔
✔ ✔ ✔ ✔
✔ ✔ ✔ ✔
✔ ✔ ✔
✔ ✔ ✔ ✔
1
2
3
4
5
6
64 productos
11 of 17JISBD 2016 11/20
Algoritmo basado en Programación Lineal Entera
APLE es un algoritmo ávido que genera el siguiente producto que nos
proporcione más cobertura ponderada.
Transformamos nuestro problema inicial en un programa lineal entero
• 𝑥𝑗: 𝑆𝑖 𝑙𝑎 𝑐𝑎𝑟𝑎𝑐𝑡𝑒𝑟í𝑠𝑡𝑖𝑐𝑎 𝑗 𝑎𝑝𝑎𝑟𝑒𝑐𝑒 𝑒𝑛 𝑒𝑙 𝑠𝑖𝑔𝑢𝑖𝑒𝑛𝑡𝑒 𝑝𝑟𝑜𝑑𝑢𝑐𝑡𝑜
• 𝑣𝑗: 𝑆𝑖 𝑙𝑎 𝑐𝑎𝑟𝑎𝑐𝑡𝑒𝑟í𝑠𝑡𝑖𝑐𝑎 𝑗 𝑎𝑝𝑎𝑟𝑒𝑐𝑒 𝑒𝑛 𝑙𝑎 𝑐𝑙𝑎𝑢𝑠𝑢𝑙𝑎
• 𝑢𝑗: 𝑆𝑖 𝑙𝑎 𝑐𝑎𝑟𝑎𝑐𝑡𝑒𝑟í𝑠𝑡𝑖𝑐𝑎 𝑗 𝑎𝑝𝑎𝑟𝑒𝑐𝑒 𝑛𝑒𝑔𝑎𝑑𝑎 𝑒𝑛 𝑙𝑎 𝑐𝑙𝑎𝑢𝑠𝑢𝑙𝑎
 𝑗=1
𝑓
𝑣𝑗 𝑢𝑗 1 − 𝑥𝑗 + 1 − 𝑢𝑗 𝑥𝑗 ≥ 1.
•Ejemplo: 𝑃𝑖𝑠𝑡𝑜𝑛 𝐽𝑒𝑡 ->𝑥7 + (1 − 𝑥8) ≥ 1
•𝑐𝑗,𝑘, 𝑐𝑗,𝑘, 𝑐𝑗, 𝑘, 𝑐𝑗, 𝑘: Si el par j, k se cubre en el nuevo producto
 2𝑐𝑗, 𝑘 ≤ 1 − 𝑥𝑗 + 1 − 𝑥 𝑘 ,
 2𝑐𝑗,𝑘 ≤ 1 − 𝑥𝑗 + 𝑥 𝑘,
 2𝑐𝑗, 𝑘 ≤ 𝑥𝑗 + 1 − 𝑥 𝑘 ,
 2𝑐𝑗,𝑘 ≤ xj + xk.
Función objetivo:
max 𝑓𝑐 =
𝑗,𝑘 ∈𝑈
𝑤𝑗,𝑘 𝑐𝑗,𝑘
12 of 17JISBD 2016 12/20
•Algoritmo ávido que en cada iteración busca el próximo
producto que maximice la cobertura respecto a la test suite
actual.
Entrada: FM y U (conjunto de pares con peso > 0)
Salida: ppCA (lista de productos)
1: ppCA<- []
2: while U != vacío do
3: z<- generaProducto (sujeto a restricciones)
4: ppCA<-ppCA + z
5: U<- U/cubiertos (z)
6: end while
Algoritmo APLE
13 of 17JISBD 2016 13/20
•Comparamos frente a:
•Prioritized ICPL (pICPL) propuesto por Johansen 2012
•Prioritized PGS (PPGS) nuestra propuesta en Gecco’14
•Tres esquemas de asignación de prioridades:
•Valores medidos
•Valores basados en rango
•Valores aleatorios
•Diferentes porcentajes de productos seleccionados
•Entre 5% y 50% de productos usados
Experimentos
14 of 17JISBD 2016 14/20
1. Valores medidos
• 16 ejemplos reales SPL
• Código y feature model
disponibles
• Se miden propiedades no
funcionales (ej: footprint)
2. Basados en rango
• Cómo de diferentes son
dos productos entre si
• Cuanto más diferentes,
más probabilidad de
cubrir nuevos pares
3. Valores Aleatorios
• [Min..Max] rango
Métodos de Asignación de Prioridades
15 of 17JISBD 2016 15/20
Instancias
Instancias G1 = 160 fm X 2 asignaciones prioridades X 3 porcentajes = 960
Instancias G2 = 59 fm X 2 asignaciones prioridades X 3 porcentajes = 354
Instancias G3 = 16 fm X 1 prioridades asignación = 16
Total independent runs = 1.330 X 2 algorithms x 30 indep. runs + 1.330= 81.130
G1 G2 G3 Resumen
Número de Feature Models 160 59 16 235
Número de Productos 16-1K 1K-80K 32-≈1E20 16-≈1E20
Número de Características 10-56 14-67 6-101 6-101
Método de asignación:
RB Basado en rango, RD Aleatorio,
M Medidos
RK,RD RK,RD M
Porcentaje de productos usados 20,30,50 5,10,20 ≈0.0 - 100
Número de instancias 960 354 16 1330
16 of 17JISBD 2016 16/20
•G1: Menos de 1.000 productos
•En 7 ocasiones APLE es mejor que los otros dos algoritmos
Resultados: Kruskal-wallis
17 of 17JISBD 2016 17/20
•G1: Menos de 1.000 productos
•En 7 ocasiones APLE es mejor que los otros dos algoritmos
•G2: Entre 1.000 y 80.000 productos
•APLE y PPGS siempre mejores que pICPL
Resultados: Kruskal-wallis
18 of 17JISBD 2016 18/20
•G1: Menos de 1.000 productos
•En 7 ocasiones APLE es mejor que los otros dos algoritmos
•G2: Entre 1.000 y 80.000 productos
•APLE y PPGS siempre mejores que pICPL
•G3: Entre 32 a 3E24 productos
•APLE y PPGS similares en calidad pero…
•APLE mejor en tiempo de computación
Resultados: Kruskal-wallis
19 of 17JISBD 2016 19/20
•Â12 mide la importancia de la diferencia
•Â12=0,3 significa que un algoritmo A obtendría valores
menores que un algoritmo B para una medida M el 70% de
las veces.
Resultados: Estadístico Â12
APLE vs pICPL
APLE vs PPGS
20 of 17JISBD 2016 20/20
Conclusiones y Trabajo Futuro
Contribuciones:
 Proponemos un algoritmo hibrido (ávido + resolutor ILP) para
construir conjuntos de pruebas ordenados por prioridad
Resultados:
Nuestro enfoque basado en ILP es mejor en calidad de la solución
y en tiempo de ejecución.
Trabajo Futuro:
Frente de Pareto exacto para este problema
Estudio del crecimiento de variables y restricciones para la
construcción de test suites completas
21 of 17JISBD 2016 21/20
Gracias por su atención
Javier Ferrer: ferrer@lcc.uma.es
http://neo.lcc.uma.es/
Aplicando Programación Lineal Entera a la
Búsqueda de Conjuntos de Productos de Prueba
Priorizados para Líneas de Productos Software
FINAL

Más contenido relacionado

Similar a Aplicando Programación Lineal Entera a la Búsqueda de Conjuntos de Productos de Prueba Priorizados para Líneas de Productos Software

Capacidad y habilidad del proceso 02
Capacidad y habilidad del proceso 02Capacidad y habilidad del proceso 02
Capacidad y habilidad del proceso 02espino93
 
Capacidad y habilidad del proceso 02
Capacidad y habilidad del proceso 02Capacidad y habilidad del proceso 02
Capacidad y habilidad del proceso 02espino93
 
Ingeniería Concurrente en el diseño de producto y mfg
Ingeniería Concurrente en el diseño de producto y mfgIngeniería Concurrente en el diseño de producto y mfg
Ingeniería Concurrente en el diseño de producto y mfgJuan Carlos Fernández
 
01 introduccion programacion lineal (1)
01 introduccion programacion lineal (1)01 introduccion programacion lineal (1)
01 introduccion programacion lineal (1)Silver Mendoza A.
 
Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?
Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?
Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?TestingUy
 
Conceptos relacionados con el control estadistico
Conceptos relacionados con el control estadisticoConceptos relacionados con el control estadistico
Conceptos relacionados con el control estadisticoIris Márquez
 
Preactor alimentación, bebidas, lácteos, aceites industriales
Preactor alimentación, bebidas, lácteos, aceites industrialesPreactor alimentación, bebidas, lácteos, aceites industriales
Preactor alimentación, bebidas, lácteos, aceites industrialesSIMLog S.A.
 
No estaba muerto... cleanroom software engineering
No estaba muerto... cleanroom software engineeringNo estaba muerto... cleanroom software engineering
No estaba muerto... cleanroom software engineeringSoftware Guru
 
Principios_Basicos_Lean_Manufacturing_Ing_Juan_Santiago.pdf
Principios_Basicos_Lean_Manufacturing_Ing_Juan_Santiago.pdfPrincipios_Basicos_Lean_Manufacturing_Ing_Juan_Santiago.pdf
Principios_Basicos_Lean_Manufacturing_Ing_Juan_Santiago.pdfAlexis Cornielle Mendez
 
Oscar de Diego Bustillos.bloque Aerce-COIIM.v.slideshare
Oscar de Diego Bustillos.bloque Aerce-COIIM.v.slideshareOscar de Diego Bustillos.bloque Aerce-COIIM.v.slideshare
Oscar de Diego Bustillos.bloque Aerce-COIIM.v.slideshareOscar de Diego Bustillos
 
Investigación de operaciones
Investigación de operaciones Investigación de operaciones
Investigación de operaciones Abelino Almanza
 
Investigación de operaciones
Investigación de operacionesInvestigación de operaciones
Investigación de operacionesabelino0909
 
Produccion Justo A Tiempo (Jit)
Produccion Justo A Tiempo (Jit)Produccion Justo A Tiempo (Jit)
Produccion Justo A Tiempo (Jit)guestb9bf58
 

Similar a Aplicando Programación Lineal Entera a la Búsqueda de Conjuntos de Productos de Prueba Priorizados para Líneas de Productos Software (20)

Capacidad y habilidad del proceso 02
Capacidad y habilidad del proceso 02Capacidad y habilidad del proceso 02
Capacidad y habilidad del proceso 02
 
Capacidad y habilidad del proceso 02
Capacidad y habilidad del proceso 02Capacidad y habilidad del proceso 02
Capacidad y habilidad del proceso 02
 
Ingeniería Concurrente en el diseño de producto y mfg
Ingeniería Concurrente en el diseño de producto y mfgIngeniería Concurrente en el diseño de producto y mfg
Ingeniería Concurrente en el diseño de producto y mfg
 
01 introduccion programacion lineal (1)
01 introduccion programacion lineal (1)01 introduccion programacion lineal (1)
01 introduccion programacion lineal (1)
 
Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?
Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?
Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?
 
Conceptos relacionados con el control estadistico
Conceptos relacionados con el control estadisticoConceptos relacionados con el control estadistico
Conceptos relacionados con el control estadistico
 
Mejora De Procesos Y Productividad
Mejora De Procesos Y ProductividadMejora De Procesos Y Productividad
Mejora De Procesos Y Productividad
 
Mejora de Procesos y Productividad
Mejora de Procesos y ProductividadMejora de Procesos y Productividad
Mejora de Procesos y Productividad
 
Preactor alimentación, bebidas, lácteos, aceites industriales
Preactor alimentación, bebidas, lácteos, aceites industrialesPreactor alimentación, bebidas, lácteos, aceites industriales
Preactor alimentación, bebidas, lácteos, aceites industriales
 
No estaba muerto... cleanroom software engineering
No estaba muerto... cleanroom software engineeringNo estaba muerto... cleanroom software engineering
No estaba muerto... cleanroom software engineering
 
Principios_Basicos_Lean_Manufacturing_Ing_Juan_Santiago.pdf
Principios_Basicos_Lean_Manufacturing_Ing_Juan_Santiago.pdfPrincipios_Basicos_Lean_Manufacturing_Ing_Juan_Santiago.pdf
Principios_Basicos_Lean_Manufacturing_Ing_Juan_Santiago.pdf
 
Oscar de Diego Bustillos.bloque Aerce-COIIM.v.slideshare
Oscar de Diego Bustillos.bloque Aerce-COIIM.v.slideshareOscar de Diego Bustillos.bloque Aerce-COIIM.v.slideshare
Oscar de Diego Bustillos.bloque Aerce-COIIM.v.slideshare
 
Mejora de Procesos y Productividad
Mejora de Procesos y ProductividadMejora de Procesos y Productividad
Mejora de Procesos y Productividad
 
Investigación de operaciones
Investigación de operaciones Investigación de operaciones
Investigación de operaciones
 
Investigación de operaciones
Investigación de operacionesInvestigación de operaciones
Investigación de operaciones
 
Produccion Justo A Tiempo (Jit)
Produccion Justo A Tiempo (Jit)Produccion Justo A Tiempo (Jit)
Produccion Justo A Tiempo (Jit)
 
GE Production Breakers Design
GE Production Breakers DesignGE Production Breakers Design
GE Production Breakers Design
 
315tp
315tp315tp
315tp
 
Mejora de Procesos y Productividad
Mejora de Procesos y ProductividadMejora de Procesos y Productividad
Mejora de Procesos y Productividad
 
Io 2da programacion lineal
Io 2da programacion linealIo 2da programacion lineal
Io 2da programacion lineal
 

Aplicando Programación Lineal Entera a la Búsqueda de Conjuntos de Productos de Prueba Priorizados para Líneas de Productos Software

  • 1. 1 of 17 •Haga clic para modificar el estilo de subtítulo del patrón Ajhsia JISBD 2016 Aplicando Programación Lineal Entera a la Búsqueda de Conjuntos de Productos de Prueba Priorizados para Líneas de Productos Software Javier Ferrer Francisco Chicano Roberto López-Herrejón Enrique Alba ferrer@lcc.uma.es chicano@lcc.uma.es roberto.lopezherrejon@gmail.com eat@lcc.uma.es
  • 2. 2 of 17JISBD 2016 2/20 Contenidos 3 Líneas de Productos Priorización en las Pruebas Algoritmos basado en Programación Lineal Entera Experimentos y Resultados Conclusiones 1 2 5 4
  • 3. 3 of 17JISBD 2016 3/20 •Una línea de productos (LP) es una familia de productos desarrollados a partir de un conjunto de características: •Los productos tienen características similares •Los productos tienen características únicas •Utilizar LPs tiene muchas ventajas: •Personalización rápida •Incrementa la reutilización •Reducción tiempo a mercado Líneas de Productos
  • 4. 4 of 17JISBD 2016 4/20 •Cuando el producto es Software hablamos de Software Product Lines (SPLs) •Se modelan usando modelos de características (Feature Models) •Las SPLs tienen un alto número de productos •Probar todos los productos no es viable!! Líneas de Productos Software 1.900.544 productos
  • 5. 5 of 17JISBD 2016 5/20 •Desafío: •¿Cómo probar las líneas de productos software eficientemente? •Factores importantes a considerar: •Evitar la repetición de pruebas •Ceñirse a las restricciones de coste y tiempo •Técnicas usadas: •Priorización: Probar primero aquellos productos con características importantes o costosas •Pruebas Combinatorias de Interacción: Al menos un producto tiene que cubrir cada par, trio,…de características. Líneas de Productos Software II
  • 6. 6 of 17JISBD 2016 6/20 Modelos de Características •Modelos de Características son el estándar de facto para modelar las características comunes y variables de un sistema y sus relaciones raiz obligatoria opcional Or-inclusiva Or-exclusiva
  • 7. 7 of 17JISBD 2016 7/20 Modelos de Características II              Seleccionadas = {Aircraft, Wing, High, Engine, Piston, Materials, Cloth} Deseleccionadas = {Shoulder, Low, Jet, Metal, Wood, Plastic}
  • 8. 8 of 17JISBD 2016 8/20 Productos Válidos •Ejemplos de productos válidos: •Aircraft, Wing, Engine, Materials, High, Shoulder, Low, Piston, Jet, Metal, Wood, Plastic, Cloth •Criterio de Cobertura Pairwise: Cada par de valores debe estar presente en al menos un producto de la test suite
  • 9. 9 of 17JISBD 2016 9/20 Productos y Pares Priorizados •Producto priorizado: Debe ser un producto válido con un peso asignado. •Pares priorizados: Su prioridad es calculada según el peso los productos dónde aparecen. 17 17 15 15 13 13 6 6 pc1=[{Plastic},{Cloth}] Peso par= pp0.w + pp2.w = 17 + 15 = 32 pesos
  • 10. 10 of 17JISBD 2016 10/20 Problema de Optimización •El problema es encontrar un conjunto de productos que: •Cubran todos los pares de características válidas (restricción) •Se maximice la cobertura ponderada (objetivo) •Se minimice el nº de productos a probar (objetivo) ZipMe Compress Extract Checksum Adapt GZIP ArchCheck CRC ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ 1 2 3 4 5 6 64 productos
  • 11. 11 of 17JISBD 2016 11/20 Algoritmo basado en Programación Lineal Entera APLE es un algoritmo ávido que genera el siguiente producto que nos proporcione más cobertura ponderada. Transformamos nuestro problema inicial en un programa lineal entero • 𝑥𝑗: 𝑆𝑖 𝑙𝑎 𝑐𝑎𝑟𝑎𝑐𝑡𝑒𝑟í𝑠𝑡𝑖𝑐𝑎 𝑗 𝑎𝑝𝑎𝑟𝑒𝑐𝑒 𝑒𝑛 𝑒𝑙 𝑠𝑖𝑔𝑢𝑖𝑒𝑛𝑡𝑒 𝑝𝑟𝑜𝑑𝑢𝑐𝑡𝑜 • 𝑣𝑗: 𝑆𝑖 𝑙𝑎 𝑐𝑎𝑟𝑎𝑐𝑡𝑒𝑟í𝑠𝑡𝑖𝑐𝑎 𝑗 𝑎𝑝𝑎𝑟𝑒𝑐𝑒 𝑒𝑛 𝑙𝑎 𝑐𝑙𝑎𝑢𝑠𝑢𝑙𝑎 • 𝑢𝑗: 𝑆𝑖 𝑙𝑎 𝑐𝑎𝑟𝑎𝑐𝑡𝑒𝑟í𝑠𝑡𝑖𝑐𝑎 𝑗 𝑎𝑝𝑎𝑟𝑒𝑐𝑒 𝑛𝑒𝑔𝑎𝑑𝑎 𝑒𝑛 𝑙𝑎 𝑐𝑙𝑎𝑢𝑠𝑢𝑙𝑎  𝑗=1 𝑓 𝑣𝑗 𝑢𝑗 1 − 𝑥𝑗 + 1 − 𝑢𝑗 𝑥𝑗 ≥ 1. •Ejemplo: 𝑃𝑖𝑠𝑡𝑜𝑛 𝐽𝑒𝑡 ->𝑥7 + (1 − 𝑥8) ≥ 1 •𝑐𝑗,𝑘, 𝑐𝑗,𝑘, 𝑐𝑗, 𝑘, 𝑐𝑗, 𝑘: Si el par j, k se cubre en el nuevo producto  2𝑐𝑗, 𝑘 ≤ 1 − 𝑥𝑗 + 1 − 𝑥 𝑘 ,  2𝑐𝑗,𝑘 ≤ 1 − 𝑥𝑗 + 𝑥 𝑘,  2𝑐𝑗, 𝑘 ≤ 𝑥𝑗 + 1 − 𝑥 𝑘 ,  2𝑐𝑗,𝑘 ≤ xj + xk. Función objetivo: max 𝑓𝑐 = 𝑗,𝑘 ∈𝑈 𝑤𝑗,𝑘 𝑐𝑗,𝑘
  • 12. 12 of 17JISBD 2016 12/20 •Algoritmo ávido que en cada iteración busca el próximo producto que maximice la cobertura respecto a la test suite actual. Entrada: FM y U (conjunto de pares con peso > 0) Salida: ppCA (lista de productos) 1: ppCA<- [] 2: while U != vacío do 3: z<- generaProducto (sujeto a restricciones) 4: ppCA<-ppCA + z 5: U<- U/cubiertos (z) 6: end while Algoritmo APLE
  • 13. 13 of 17JISBD 2016 13/20 •Comparamos frente a: •Prioritized ICPL (pICPL) propuesto por Johansen 2012 •Prioritized PGS (PPGS) nuestra propuesta en Gecco’14 •Tres esquemas de asignación de prioridades: •Valores medidos •Valores basados en rango •Valores aleatorios •Diferentes porcentajes de productos seleccionados •Entre 5% y 50% de productos usados Experimentos
  • 14. 14 of 17JISBD 2016 14/20 1. Valores medidos • 16 ejemplos reales SPL • Código y feature model disponibles • Se miden propiedades no funcionales (ej: footprint) 2. Basados en rango • Cómo de diferentes son dos productos entre si • Cuanto más diferentes, más probabilidad de cubrir nuevos pares 3. Valores Aleatorios • [Min..Max] rango Métodos de Asignación de Prioridades
  • 15. 15 of 17JISBD 2016 15/20 Instancias Instancias G1 = 160 fm X 2 asignaciones prioridades X 3 porcentajes = 960 Instancias G2 = 59 fm X 2 asignaciones prioridades X 3 porcentajes = 354 Instancias G3 = 16 fm X 1 prioridades asignación = 16 Total independent runs = 1.330 X 2 algorithms x 30 indep. runs + 1.330= 81.130 G1 G2 G3 Resumen Número de Feature Models 160 59 16 235 Número de Productos 16-1K 1K-80K 32-≈1E20 16-≈1E20 Número de Características 10-56 14-67 6-101 6-101 Método de asignación: RB Basado en rango, RD Aleatorio, M Medidos RK,RD RK,RD M Porcentaje de productos usados 20,30,50 5,10,20 ≈0.0 - 100 Número de instancias 960 354 16 1330
  • 16. 16 of 17JISBD 2016 16/20 •G1: Menos de 1.000 productos •En 7 ocasiones APLE es mejor que los otros dos algoritmos Resultados: Kruskal-wallis
  • 17. 17 of 17JISBD 2016 17/20 •G1: Menos de 1.000 productos •En 7 ocasiones APLE es mejor que los otros dos algoritmos •G2: Entre 1.000 y 80.000 productos •APLE y PPGS siempre mejores que pICPL Resultados: Kruskal-wallis
  • 18. 18 of 17JISBD 2016 18/20 •G1: Menos de 1.000 productos •En 7 ocasiones APLE es mejor que los otros dos algoritmos •G2: Entre 1.000 y 80.000 productos •APLE y PPGS siempre mejores que pICPL •G3: Entre 32 a 3E24 productos •APLE y PPGS similares en calidad pero… •APLE mejor en tiempo de computación Resultados: Kruskal-wallis
  • 19. 19 of 17JISBD 2016 19/20 •Â12 mide la importancia de la diferencia •Â12=0,3 significa que un algoritmo A obtendría valores menores que un algoritmo B para una medida M el 70% de las veces. Resultados: Estadístico Â12 APLE vs pICPL APLE vs PPGS
  • 20. 20 of 17JISBD 2016 20/20 Conclusiones y Trabajo Futuro Contribuciones:  Proponemos un algoritmo hibrido (ávido + resolutor ILP) para construir conjuntos de pruebas ordenados por prioridad Resultados: Nuestro enfoque basado en ILP es mejor en calidad de la solución y en tiempo de ejecución. Trabajo Futuro: Frente de Pareto exacto para este problema Estudio del crecimiento de variables y restricciones para la construcción de test suites completas
  • 21. 21 of 17JISBD 2016 21/20 Gracias por su atención Javier Ferrer: ferrer@lcc.uma.es http://neo.lcc.uma.es/ Aplicando Programación Lineal Entera a la Búsqueda de Conjuntos de Productos de Prueba Priorizados para Líneas de Productos Software FINAL

Notas del editor

  1. Frequently, software testers are faced with situations in which there is not enough time for testing, since the software under test must be finished on time for the release date not to be delayed. Hence, software testers have to deal with limited resources, unfinished systems, and not much time to test the software. If this is the case, the prioritization of test cases is a technique for re-ordering of tests to find faults in early stages.
  2. Asumiendo que cada funcionalidad o característica ha sido probada aisladamente, la mayoría de los defectos es debido a la interacción entre funcionalidades o características. Reducimos el nº de productos a probar, pero mantenemos una gran capacidad de detección de errores.
  3. Esta representación nos da la posibilidad de representar gran cantidad de variantes de productos de forma muy resumida. Salvo la raiz, todas las características tienen un padre y pueden tener varios hijos. Para que un hijo pueda seleccionarse, le padre debe estar seleccionado. Ej: Engine
  4. Recordar que la ausencia en el producto de dos characterísiticas también es una combinación que debe estar contemplada.
  5. Cubran todos los pares de características válidas (CIT) Se prueben primero los productos con más prioridad Se minimice el nº de productos a probar
  6. También incluimos las variables c de j,k que estan aún por cubrir. Si a ese conjunto le llamamos U, la función objetivo es…
  7. Esquemas o métodos de asignación de prioridades
  8. Explicar los colores grises: Gris claro diferencia con otro algoritmo, gris oscuro indica que hay diferencias con los otros dos algoritmos. Estas diferencias son positivas para el algoritmo que marcamos diferente, los resultados son mejores, en este caso con un valor de tamaño o tiempo más pequeño.
  9. Nuestra principal contribución es la combinación de un algoritmo greedy con un resolutor ILP para la construcción de conjuntos de pruebas ordenados por prioridad. Trabajo futuro: Nuestro enfoque no nos proporciona el óptimo, ya que para ello tendríamos que calcular la mejor test suite para cada tamaño utilizando la cobertura ponderada. Y por otro lado, ya estamos investigando la posibilidad de aplicar los resolutores ILP para contruir test suites completas. Los resultados preliminares nos dicen que la aplicación directa no es posible por la explosión combinatoria al subir mucho el nº de características. Y queremos ver hasta donde podemos llegar, buscar siempre el límite de la técnica.