Abstract:In the past years, several automated repair strategies have been proposed to fix bugs in individual software programs without any human intervention. There has been, however, little work on how automated repair techniques can resolve failures that arise at the system-level and are caused by undesired interactions among different system components or functions. Feature interaction failures are common in complex systems such as autonomous cars that are typically built as a composition of independent features (i.… Show more
“…Coevolutionary analysis in software engineering. Despite the success of search-based software engineering (SBSE) in many application domains including software testing (Wegener et al 1997;Wegener and Grochtmann 1998;Lin et al 2009;Arcuri et al 2010;Shin et al 2018), program repair (Weimer et al 2009;Tan et al 2016;Abdessalem et al 2020), and self-adaptation (Andrade and Macêdo 2013;Chen et al 2018;Shin et al 2020), coevolutionary algorithms have been applied in only a few prior studies (Wilkerson and Tauritz 2010;Wilkerson et al 2012;Boussaa et al 2013). Wilkerson et al (2010Wilkerson et al ( , 2012 present a coevolution-based approach to automatically correct software.…”
Section: Priority Assignmentmentioning
confidence: 99%
“…Search-based software engineering (SBSE) has been successfully applied in many application domains, including software testing (Wegener et al 1997;Wegener and Grochtmann 1998;Lin et al 2009;Arcuri et al 2010;Shin et al 2018), program repair (Weimer et al 2009;Tan et al 2016;Abdessalem et al 2020), and self-adaptation (Andrade and Macêdo 2013;Chen et al 2018;Shin et al 2020), where the search spaces are very large. Despite the success of SBSE, engineering problems in real-time systems have received much less attention in the SBSE community.…”
In real-time systems, priorities assigned to real-time tasks determine the order of task executions, by relying on an underlying task scheduling policy. Assigning optimal priority values to tasks is critical to allow the tasks to complete their executions while maximizing safety margins from their specified deadlines. This enables real-time systems to tolerate unexpected overheads in task executions and still meet their deadlines. In practice, priority assignments result from an interactive process between the development and testing teams. In this article, we propose an automated method that aims to identify the best possible priority assignments in real-time systems, accounting for multiple objectives regarding safety margins and engineering constraints. Our approach is based on a multi-objective, competitive coevolutionary algorithm mimicking the interactive priority assignment process between the development and testing teams. We evaluate our approach by applying it to six industrial systems from different domains and several synthetic systems. The results indicate that our approach significantly outperforms both our baselines, i.e., random search and sequential search, and solutions defined by practitioners. Our approach scales to complex industrial systems as an offline analysis method that attempts to find near-optimal solutions within acceptable time, i.e., less than 16 hours.
“…Coevolutionary analysis in software engineering. Despite the success of search-based software engineering (SBSE) in many application domains including software testing (Wegener et al 1997;Wegener and Grochtmann 1998;Lin et al 2009;Arcuri et al 2010;Shin et al 2018), program repair (Weimer et al 2009;Tan et al 2016;Abdessalem et al 2020), and self-adaptation (Andrade and Macêdo 2013;Chen et al 2018;Shin et al 2020), coevolutionary algorithms have been applied in only a few prior studies (Wilkerson and Tauritz 2010;Wilkerson et al 2012;Boussaa et al 2013). Wilkerson et al (2010Wilkerson et al ( , 2012 present a coevolution-based approach to automatically correct software.…”
Section: Priority Assignmentmentioning
confidence: 99%
“…Search-based software engineering (SBSE) has been successfully applied in many application domains, including software testing (Wegener et al 1997;Wegener and Grochtmann 1998;Lin et al 2009;Arcuri et al 2010;Shin et al 2018), program repair (Weimer et al 2009;Tan et al 2016;Abdessalem et al 2020), and self-adaptation (Andrade and Macêdo 2013;Chen et al 2018;Shin et al 2020), where the search spaces are very large. Despite the success of SBSE, engineering problems in real-time systems have received much less attention in the SBSE community.…”
In real-time systems, priorities assigned to real-time tasks determine the order of task executions, by relying on an underlying task scheduling policy. Assigning optimal priority values to tasks is critical to allow the tasks to complete their executions while maximizing safety margins from their specified deadlines. This enables real-time systems to tolerate unexpected overheads in task executions and still meet their deadlines. In practice, priority assignments result from an interactive process between the development and testing teams. In this article, we propose an automated method that aims to identify the best possible priority assignments in real-time systems, accounting for multiple objectives regarding safety margins and engineering constraints. Our approach is based on a multi-objective, competitive coevolutionary algorithm mimicking the interactive priority assignment process between the development and testing teams. We evaluate our approach by applying it to six industrial systems from different domains and several synthetic systems. The results indicate that our approach significantly outperforms both our baselines, i.e., random search and sequential search, and solutions defined by practitioners. Our approach scales to complex industrial systems as an offline analysis method that attempts to find near-optimal solutions within acceptable time, i.e., less than 16 hours.
“…Coevolutionary analysis in software engineering. Despite the success of search-based software engineering (SBSE) in many application domains including software testing (Wegener et al, 1997;Wegener and Grochtmann, 1998;Lin et al, 2009;Arcuri et al, 2010;Shin et al, 2018), program repair (Weimer et al, 2009;Tan et al, 2016;Abdessalem et al, 2020), and self-adaptation (Andrade and Macedo, 2013; Chen et al, 2018;Shin et al, 2020), coevolutionary algorithms have been applied in only a few prior studies (Wilkerson and Tauritz, 2010;Wilkerson et al, 2012;Boussaa et al, 2013). Wilkerson et al (2010Wilkerson et al ( , 2012 present a coevolution-based approach to automatically correct software.…”
Section: Related Workmentioning
confidence: 99%
“…Search-based software engineering (SBSE) has been successfully applied in many application domains, including software testing (Wegener et al, 1997;Wegener and Grochtmann, 1998;Lin et al, 2009;Arcuri et al, 2010;Shin et al, 2018), program repair (Weimer et al, 2009;Tan et al, 2016;Abdessalem et al, 2020), and self-adaptation (Andrade and Macedo, 2013;Chen et al, 2018;Shin et al, 2020), where the search spaces are very large. Despite the success of SBSE, engineering problems in real-time systems have received much less attention in the SBSE community.…”
In real-time systems, priorities assigned to real-time tasks determine the order of task executions, by relying on an underlying task scheduling policy. Assigning optimal priority values to tasks is critical to allow the tasks to complete their executions while maximizing safety margins from their specified deadlines. This enables real-time systems to tolerate unexpected overheads in task executions and still meet their deadlines. In practice, priority assignments result from an interactive process between the development and testing teams. In this article, we propose an automated method that aims to identify the best possible priority assignments in real-time systems, accounting for multiple objectives regarding safety margins and engineering constraints. Our approach is based on a multi-objective, competitive coevolutionary algorithm mimicking the interactive priority assignment process between the development and testing teams. We evaluate our approach by applying it to six industrial systems
“…Unwanted feature interactions introduce unpredicted behavior, often escape testing, and add risk [42,10]. In safety-critical systems, they have caused multiple accidents [46,43,8,3] Specification of constraints on feature combinations takes many forms, including feature models [14], source code, user guides and operational manuals. However, such documentation is often poorly maintained, partial, inconsistent with the code, and quickly outdated [47,48,2,59].…”
Features in product lines and highly configurable systems can interact in ways that are contrary to developers' intent. Current methods to identify such unanticipated feature interactions are costly and inadequate. To address this problem we propose a new approach to learn feature interactions, both in those product lines where constraints on feature combinations are specified and in feature-rich configurable systems where such specifications often are not available. The contribution of the paper is to use program analysis to extract feature-relevant learning models from the source code in order to detect unwanted feature interactions. Where specifications of feature constraints are unavailable, our approach infers the constraints using feature-related data-flow dependency information. Evaluation in experiments on three software product line benchmarks and a highly configurable system shows that this approach is fast and effective. The contribution is to support developers by automatically detecting feature combinations in a new product or version that can interact in unwanted or unrecognized ways. This enables better understanding of latent interactions and identifies software components that should be tested together because their features interact in some configurations.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.