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

67 visualizaciones

Publicado el

Presentación JISBD 2016

Publicado en: Software
0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
67
En SlideShare
0
De insertados
0
Número de insertados
0
Acciones
Compartido
0
Descargas
1
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.
  • 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.
  • 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.
  • 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
  • Recordar que la ausencia en el producto de dos characterísiticas también es una combinación que debe estar contemplada.
  • 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

  • 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…
  • Esquemas o métodos de asignación de prioridades
  • 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.
  • 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.
  • 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

    ×