Esta propuesta de charla está basada en un trabajo (http://www.isa.us.es/publications/type/article-journal/9998/variability-testing-wild-drupal-case-study) que hemos publicado recientemente en una de las revistas internacionales de ingeniería del software más relevantes hoy en día (Software and System Modeling Journal). Soy investigadora en la Universidad de Sevilla, y mi tesis está orientada a la automatización de pruebas en sistemas software altamente configurables, como Drupal. A diferencia de la gran mayoría de tesis doctorales que se presentan, la mía pretende enfocarse desde el principio al mundo real, proponiendo técnicas y casos de estudios basados en herramientas reales, con un pie en la academia y otro en la industria.
En el artículo mencionado en el párrafo anterior, poníamos de manifiesto un problema real en muchos sistemas software que poseen un alto grado de variabilidad como Drupal: el proceso de pruebas. Cuando se ha desarrollado un producto con Drupal y llega la hora de entregárselo al cliente, lo ideal (en cuanto a coste y tiempo asociado) es haber probado bien el conjunto completo del producto. Pero, en términos reales, sabemos que esto es muy complicado, por restricciones de tiempo principalmente. Nosotros proponemos técnicas para ayudar a paliar este problema. Técnicas de selección y priorización de pruebas basadas en estudios de correlación llevados a cabo sobre el sistema de Drupal y otros sistemas similares. En pocas palabras, nuestras técnicas pueden ayudar a detectar errores en Drupal de manera rápida proporcionando al tester feedback lo antes posible y ahorrando tiempo en el proceso de pruebas y corrección de errores.
Basados en el estudio anterior, estamos desarrollando un módulo en Drupal que pretende ampliar las funcionalidad del módulo SimpleTest para, entre otras mejoras, integrar nuestras técnicas de testing y proporcionar al desarrollador un cuadro de mando con estadísticas sobre el sistema Drupal, advertencias de posibles errores en ciertas partes del código y sugerencias para dar prioridad a las pruebas de los módulos con mayor propensión a fallos. Estas advertencias y técnicas de ejecución de pruebas están basadas en commits efectuados recientemente en módulos, fallos detectados en pruebas anteriores, complejidad ciclomática del código, etc., y estudios que respaldan que todas estas circunstancias están íntimamente relacionadas con errores en el código. En la charla presentaríamos nuestro prototipo de módulo que creemos puede ser muy interesante para la comunidad de Drupal y, por supuesto, también buscamos conseguir feedback para mejorar dicho prototipo de cara a proponerlo e integrarlo en la Comunidad de Drupal.