Variability-intensive Systems (VISs) are software-based systems whose characteristics and behaviour can be modified by the activation or deactivation of some options. Addressing variability proactively during software engineering (SE) activities means shifting from reasoning on individual systems to reasoning on families of systems. Adopting appropriate variability management techniques can yield important economies of scale and quality improvements. Conversely, variability can also be a curse, especially for Quality Assurance (QA), i.e., verification and testing of such systems, due to the combinatorial explosion of the number of software variants. Indeed, by combining only 33 Boolean options, we can define more variants of a system than the number of people on Earth. Verifying or testing each variant individually is thus impossible in most practical cases.
About a decade ago, Featured Transition Systems (FTSs) were introduced as a formalism to represent, and reason on, the behaviour of VISs. Instead of representing each variant by a (classical) transition system, an FTS bears annotations that relate transitions to options through feature expressions. FTSs thus make it possible to reason at the family level by modelling all the variants of a system in a single behavioural model. FTSs have been shown to significantly improve the possibilities and execution time of automated QA activities such as model-checking and model-based testing. They have also shown their usefulness to guide design exploration activities. Yet, as most model-based approaches, FTS modelling requires both strong human expertise and significant effort that would be unaffordable in many cases, in particular for large legacy systems with outdated specifications and/or systems that evolve continuously.
Therefore, this thesis aims to automatically learn FTSs from existing artefacts, to ease the burden of modelling FTS and support continuous QA activities. To answer this research challenge, we propose a two-phase approach. First, we rely on deep learning techniques to locate variability from execution traces. For this purpose, we implemented a tool called VaryMinions. Then, we use these annotated traces to learn an FTS. In this second part, we adapt the seminal L∗ algorithm to learn behavioural variability. Both frameworks are open-source and we evaluated them separately on several datasets of different sizes and origins (e.g., software product lines and configurable business processes).
la date de réponse22 sept. 2023
langue originaleAnglais
L'institution diplômante
  • Universite de Namur
SponsorsFund for Research Training in Industry and Agriculture (FRIA)
SuperviseurGilles Perrouin (Promoteur), Patrick Heymans (Copromoteur), Benoît Frénay (Jury), Wim Vanhoof (Jury), Mohammad Mousavi (Jury) & Maurice H. ter Beek (Jury)

Contient cette citation