La Escuela

Historia, Situación, Directorio, Junta de Centro, Departamentos ...

Relaciones Externas

Programas Intenacionales, Relaciones con Empresas ...

Estudios y Titulaciones

Grados, Másteres, Doctorado, Plan97, curso adaptación a GII ...

Servicios

Biblioteca, Centro de Cálculo, Secretaría, Laboratorios ...

Organización Docente

Horarios, Distribución de aulas, Calendario exámenes ...

Perfiles de Usuarios

Alumnos, Profesores, Personal Admon. y Servicios ...

23 de Mayo de 2016

  • Autor: Dña. Ana Belén Sánchez Jerez.
  • Titulo: “Test case prioritization in highly-configurable systems”.
  • Directores: Dr. D. Antonio Ruiz Cortés y Dr. D. Sergio Segura Rueda. (Universidad de Sevilla)
  • Sinopsis: El desarrollo de software esta transformándose progresivamente de la producción de programas individuales a la producción de familias de programas relacionados. Los sistemas altamente configurables son una evidencia de ello. Estos sistemas proporcionan una funcionalidad básica común y un conjunto de características opcionales para adaptar todas las variantes de un sistema de acuerdo a un conjunto determinado de requisitos. Sistemas operativos como Linux o herramientas de desarrollo como Eclipse han sido presentados como ejemplos de sistemas altamente configurables. Otro ejemplo que podemos destacar son las líneas de producto software, que se centran en el desarrollo de familias de productos relacionados a través de la gestión sistemática de la variabilidad. Las pruebas en sistemas altamente configurables suponen un gran reto debido al elevado número de configuraciones que deben probarse. Por ejemplo, Debían Wheezy, una conocida distribución de Linux, tiene m ́ as de 37,000 paquetes que ́pueden combinarse dando lugar a miles de millones de configuraciones posibles. Esto hace que probar cada configuración individual de un sistema altamente configurable sea demasiado costoso. En este escenario, las restricciones de presupuesto y tiempo pueden impedir la ejecución completa de una suite de pruebas. Para paliar este problema, se han propuesto numerosos trabajos de investigación para reducir el número de configuraciones a probar manteniendo un buen nivel de cobertura del código. ́

    Sin embargo, reducir el espacio de pruebas no es siempre una buena opción porque incrementa la probabilidad de defectos en el software. Las técnicas de priorización de casos de prueba reordenan las pruebas de manera que se ejecuten primero aquellas que permitan maximizar un determinado objetivo de rendimiento, normalmente, detectar errores lo antes posible. A modo de ejemplo, podríamos acelerar la detección de errores probando primero aquellos componentes más complejos, asumiendo que estos son más propensos a contener errores. Las técnicas de priorización de casos de ́prueba ayudan a mejorar la efectividad del proceso de pruebas permitiendo un feed-back más rápido a los ingenieros del software y asegurando que las pruebas con mayor ́capacidad de detectar errores habrán sido ejecutadas si el proceso se parase por alguna circunstancia. Existen pocas contribuciones de priorización de casos de prueba ́en sistemas altamente configurables y la mayor ́ıa de ellas combinan selección y priorización para generar los casos de prueba, lo que no se considera priorización pura. Además, la priorización que encontramos en la literatura esta principalmente basada en un solo objetivo o una combinación de varios objetivos en una única función a la que se le asignan pesos proporcionales a la importancia de dichos objetivos, ignorándolos beneficios de combinar múltiples criterios de priorización con igual importancia ́para guiar las pruebas. Otro reto que identificamos es la necesidad de sistemas alta-mente configurables con código disponible, con modelos de variabilidad y registro de errores accesibles que puedan utilizarse para validar la efectividad de las técnicas de pruebas propuestas. Como resultado, los autores de dichas técnicas suelen evaluarlas en términos de rendimiento (por ejemplo, midiendo el tiempo de ejecución) utilizando modelos de variabilidad y datos aleatorios o artificiales, lo que introduce amenazas en la validación de las conclusiones. ́

    El principal objetivo de esta tesis es mejorar el soporte que existe para las pruebas en sistemas altamente configurables, considerando para mejora las limitaciones mencionadas en los párrafos anteriores. Con este propósito, se presentan un conjunto de objetivos, técnicas y herramientas para la priorización de casos de prueba en sistemas altamente configurables. Con respecto a los objetivos de priorización, definimos ́nuevos objetivos basados en propiedades funcionales y no funcionales del sistema para guiar el proceso de pruebas. También definimos diferentes técnicas de priorización de pruebas basadas en un solo objetivo y basadas en múltiples objetivos utilizando algoritmos evolutivos. En este sentido, se presenta una comparación de 63 combinaciones ́diferentes de 1, 2 y 3 objetivos con la intención de acelerar la detección de errores en un sistema altamente configurable. Por último, proponemos casos de estudio de sistemas reales altamente configurables con código accesible y reportamos un extenso ́informe sobre datos extraidos de repositorios Git y errores obtenidos de gestores de tareas. Estas contribuciones han sido evaluadas realizando rigurosos experimentos que han revelado la eficacia y efficiencia de nuestra propuesta. Entre otros resultados, podemos destacar que la priorización multi-objetivo guidada por propiedades no funcionales es más efectiva acelerando la detección de errores que la priorización basada en un solo objetivo, basándonos en nuestro caso de estudio. Los resultados también ́sugerían que nuestras técnicas de priorización pueden ser un buen complemento para las técnicas actuales de selección de casos de prueba. La mayoría de nuestras contribuciones han sido integradas en una herramienta denominada SmarTest para probar el sistema de Drupal, un gestor de contenidos web y framework ampliamente conocido.

  • Teseo: https://www.educacion.gob.es/teseo/mostrarRef.do?ref=1238625
  • Repositorio USE: http://www.doctorado.us.es/tesis-doctoral/repositorio-tesis/tesis-2016/details/2/5803
  • LinkedIn: https://www.linkedin.com/in/ana-bel%C3%A9n-s%C3%A1nchez-jerez-84988518