Regression Testing of Distributed Real-Time Embedded Systems in the Context of Model-Driven Development

Thumbnail Image
Babaei, Majid
Distributed Systems , Software Engineering , Regression Testing , MDE , MDD
Modern Distributed Real-Time Embedded (DRTE) systems are composed of largescale, heterogeneous networks of software systems that constitute the backbone of many applications we rely on day-to-day. DRTE systems may evolve over time due to new requirements and technology improvements. Each revision requires regression testing to ensure that existing functionality is not affected by such changes. Despite recent progress in regression testing techniques and tools, it turns out they are inadequate for testing distributed systems. As such, a typical distributed system with a few nodes can produce a large amount of (possibly out of order) traces only after a few minutes of execution. Therefore, effective replay-based regression testing for distributed systems may require efficient mechanisms for generating compact traces, as well as reordering and replaying. Model-driven Development (MDD) is a software development approach that advocates the use of models as the primary software development artifacts. Essentially, MDD leverages abstraction and automation in order to simplify design of a software system in terms of communication and activities. In this work, we provide evidence that modeling can facilitate the ordering and replay of execution traces collected from of a distributed system, and thus regression testing. Concretely, we show how the use of communicating state machines to describe a distributed system obviates the need for timestamps and can be also leveraged for significant reduction in the amount of runtime information collected at reasonable cost. As the first step of this work we present a novel trace reordering and replay technique and its tool support called MReplayer. MReplayer takes advantage of existing techniques and tools for model transformation and static analysis. MReplayer relies on access to the descriptions of the behaviours of each component for static analysis and replay. For the second step of this work, we present MRegTest, an efficient replay-based regression testing approach for distributed systems at the model level. MRegTest builds on our reordering approach and inherits from it a reduction in the number and size of traces required compared to standard, timestamp-based approaches.
External DOI