Search-based performance evaluation with MARMOT
Performance analysis and evaluation are essential constructive and validative activities during embedded system development. These activities can be performed either statically, or dynamically through search-based techniques such as random or evolutionary testing. Search or optimisation algorithms have already been successfully used for a number of software engineering activities such as execution-time analysis and validation under the traditional procedural development paradigm. This paper describes how Marmot, a new method for real-time embedded system development and testing, applies search-based analysis/testing techniques under the more recent object-oriented and component-based software development paradigms. Here, their application is more difficult compared with the traditional procedural development approaches because object and component-based architectures are inherently encapsulated, they often represent state machines, and they are fundamentally based upon software reuse technology rather than "one-of'' developments. Marmot proposes a solution that makes search techniques applicable in object-oriented and component-based embedded real-time system development. This solution is based on built testing artifacts and on the adaptation of search-based testing strategies to object and component technologies. We demonstrate the applicability of the Marmot performance evaluation strategy in a development project for an autonomous vehicle.