1 of 17
•Haga clic para modificar el estilo de subtítulo del patrón
Ajhsia
JISBD 2016
Aplicando Programación Lineal Entera...
2 of 17JISBD 2016 2/20
Contenidos
3
Líneas de Productos
Priorización en las Pruebas
Algoritmos basado en Programación Line...
3 of 17JISBD 2016 3/20
•Una línea de productos (LP) es una familia de productos
desarrollados a partir de un conjunto de c...
4 of 17JISBD 2016 4/20
•Cuando el producto es Software hablamos de Software Product
Lines (SPLs)
•Se modelan usando modelo...
5 of 17JISBD 2016 5/20
•Desafío:
•¿Cómo probar las líneas de productos software
eficientemente?
•Factores importantes a co...
6 of 17JISBD 2016 6/20
Modelos de Características
•Modelos de Características son el estándar de facto para
modelar las ca...
7 of 17JISBD 2016 7/20
Modelos de Características II










 

Seleccionadas = {Aircraft, Wing, High, Engi...
8 of 17JISBD 2016 8/20
Productos Válidos
•Ejemplos de productos válidos:
•Aircraft, Wing, Engine, Materials, High, Shoulde...
9 of 17JISBD 2016 9/20
Productos y Pares Priorizados
•Producto priorizado: Debe ser un producto válido con un
peso asignad...
10 of 17JISBD 2016 10/20
Problema de Optimización
•El problema es encontrar un conjunto de productos que:
•Cubran todos lo...
11 of 17JISBD 2016 11/20
Algoritmo basado en Programación Lineal Entera
APLE es un algoritmo ávido que genera el siguiente...
12 of 17JISBD 2016 12/20
•Algoritmo ávido que en cada iteración busca el próximo
producto que maximice la cobertura respec...
13 of 17JISBD 2016 13/20
•Comparamos frente a:
•Prioritized ICPL (pICPL) propuesto por Johansen 2012
•Prioritized PGS (PPG...
14 of 17JISBD 2016 14/20
1. Valores medidos
• 16 ejemplos reales SPL
• Código y feature model
disponibles
• Se miden propi...
15 of 17JISBD 2016 15/20
Instancias
Instancias G1 = 160 fm X 2 asignaciones prioridades X 3 porcentajes = 960
Instancias G...
16 of 17JISBD 2016 16/20
•G1: Menos de 1.000 productos
•En 7 ocasiones APLE es mejor que los otros dos algoritmos
Resultad...
17 of 17JISBD 2016 17/20
•G1: Menos de 1.000 productos
•En 7 ocasiones APLE es mejor que los otros dos algoritmos
•G2: Ent...
18 of 17JISBD 2016 18/20
•G1: Menos de 1.000 productos
•En 7 ocasiones APLE es mejor que los otros dos algoritmos
•G2: Ent...
19 of 17JISBD 2016 19/20
•Â12 mide la importancia de la diferencia
•Â12=0,3 significa que un algoritmo A obtendría valores...
20 of 17JISBD 2016 20/20
Conclusiones y Trabajo Futuro
Contribuciones:
 Proponemos un algoritmo hibrido (ávido + resoluto...
21 of 17JISBD 2016 21/20
Gracias por su atención
Javier Ferrer: ferrer@lcc.uma.es
http://neo.lcc.uma.es/
Aplicando Program...
Próxima SlideShare
Cargando en…5
×

Aplicando programación lineal entera a la búsqueda de conjuntos de productos de prueba priorizados para líneas de productos software

79 visualizaciones

Publicado el

Presentación JISBD 2016

Publicado en: Software
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Aplicando programación lineal entera a la búsqueda de conjuntos de productos de prueba priorizados para líneas de productos software

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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

×