[en] Over the past decade, Cyber-Physical Systems (CPSs) have gained prominence as core-enabling technologies in the development of multiple domains, thanks to its ability to integrate digital capabilities with physical processes. Furthermore, the demand for configurability of CPSs has been increasing rapidly to respond to changing business requirements. When engineers approach the development of Highly-Configurable Cyber-Physical Systems (HCCPSs), product line engineering techniques are often adopted, taking advantage of variability management strategies that allow handling a large number of configurations. In addition, to address intrinsic challenges of testing CPSs, engineers are relying on simulation-based techniques, thus avoiding the need for building real prototypes and enabling testing at early stages. However, HCCPS testing is still a time-consuming challenge primarily due to the intensive resource consumption when simulating physical processes. Consequently, optimization of testing HCCPSs is paramount. Several approaches have tackled the test optimization challenge, most of them focused on reducing the number of products to be tested, by selecting a representative subset. Other approaches have proposed optimization in terms of test case selection and prioritization. However, little attention has been paid to optimization of both, products and test cases, in a combined manner. This thesis aims at advancing the current practice of optimizing HCCPS testing by proposing a method to increase the fault detection rate in time-constrained scenarios. To this end, we propose a dynamic test prioritization approach combining both, products and test cases. The approach sets a test plan that executes small groups of test cases with products in iterative executions. After every iteration, the test plan is dynamically re-ordered, leveraging information of test cases being executed in specific products. The approach has been evaluated and validated for the specific context of HCCPSs, however, it might eventually pave the way for its use in other type of product lines.

[es] A lo largo de la última década, los sistemas ciber-físicos (CPS de sus siglas en inglés) han ganado protagonismo como tecnologías esenciales en el desarrollo de múltiples dominios, gracias a su habilidad para integrar las capacidades digitales con los procesos físicos de los sistemas. Además, la demanda de configurabilidad de los CPS ha aumentado rápidamente para responder a los cambiantes requisitos empresariales. Cuando los ingenieros abordan el desarrollo de sistemas ciber-físicos altamente configurables (HCCPS de sus siglas en inglés), es habitual que adopten técnicas de ingeniería basadas en líneas de productos, aprovechando las estrategias de gestión de la variabilidad que permiten manejar un gran número de configuraciones. Además, para hacer frente a los retos intrínsecos de las pruebas de los CPS, los ingenieros recurren a técnicas basadas en la simulación, evitando así la necesidad de construir prototipos reales y permitiendo la realización de pruebas en etapas tempranas. Sin embargo, probar los HCCPS sigue siendo un reto que requiere mucho tiempo, principalmente debido al intenso consumo de recursos necesario para la simulación de los procesos físicos. En consecuencia, la optimización de las pruebas de los HCCPS es primordial. Varios enfoques han abordado el reto de la optimización de las pruebas, la mayoría de ellos centrados en la reducción del número de productos a probar, mediante la selección de un subconjunto representativo. Otros enfoques han propuesto la optimización en términos de selección y priorización de casos de prueba. Sin embargo, se ha prestado poca atención a la optimización de ambos, productos y casos de prueba, de forma combinada. Esta tesis tiene como objetivo avanzar la práctica actual de optimización de las pruebas de los HCCPS proponiendo un método para aumentar la tasa de detección de fallos en escenarios con de tiempo limitado. Para ello, proponemos un enfoque dinámico de priorización de pruebas que combina tanto productos como casos de prueba. El enfoque establece un plan de pruebas que ejecuta pequeños grupos de casos de prueba con productos en ejecuciones iterativas. Después de cada iteración, el plan de pruebas se reordena dinámicamente, aprovechando la información de los casos de prueba que se ejecutan en productos específicos. El enfoque ha sido evaluado y validado para el contexto específico de los HCCPS, pero podría permitir allanar el camino para su uso en otro tipo de líneas de productos.