As multicore and therefore concurrent architectures are spreading to an increasing number of applications and industry sectors, it becomes increasingly important to devise rigorous but practical ways to verify and test concurrent systems. Though a great deal of research work has been published on the matter, there is limited support in industry for the practicing engineer. For a change in engineering practice to happen, we need to devise technologies that scale and can be easily tailored to resources available for quality assurance in a given context.
This talk reports on a research program that approaches verification and testing as a search and optimization problem. The techniques presented rely on system models describing the task architecture and performance characteristics. As a strategy to ease adoption in practice, those models rely on standards (e.g., UML/MARTE) or lightweight extensions enabling the use of commercial or open source modeling platforms to support automation. Once the required in-formation is extracted from models, early verification and testing both consist in identifying scenarios that maximize chances of uncovering concurrency and performance issues, such as deadline misses, starvation, or unacceptable levels of CPU usage. To do so, we either rely on evolutionary computation or constraint optimization, for which effective support already exists. The main challenge is of course to transform each specific problem into a search or constraint optimization problem, in such a way that these technologies can be efficient and scale.
[1]
Lionel C. Briand,et al.
Using genetic algorithms for early schedulability analysis and stress testing in real-time systems
,
2006,
Genetic Programming and Evolvable Machines.
[2]
Kim G. Larsen,et al.
Schedulability Analysis Using Uppaal: Herschel-Planck Case Study
,
2010,
ISoLA.
[3]
Lionel C. Briand,et al.
A UML/MARTE Model Analysis Method for Uncovering Scenarios Leading to Starvation and Deadlocks in Concurrent Systems
,
2012,
IEEE Transactions on Software Engineering.
[4]
Mehrdad Sabetzadeh,et al.
Modeling and analysis of CPU usage in safety-critical embedded systems to support stress testing
,
2012,
MODELS'12.
[5]
Arnaud Gotlieb,et al.
Testing Deadline Misses for Real-Time Systems Using Constraint Optimization Techniques
,
2012,
2012 IEEE Fifth International Conference on Software Testing, Verification and Validation.