On Testing Embedded Software
Elsevier Advances in Computers (ADCOM)
For the last few decades, embedded systems have expanded their reach into major aspects of human lives. Starting from small handheld devices (such as smartphones) to advanced automotive systems (such as anti-lock braking systems), the usage of embedded systems has increased at a dramatic pace. Embedded software are specialized software that are intended to operate on embedded devices. In this article, we shall describe the unique challenges associated with testing embedded software. In particular, embedded software are required to satisfy several non-functional constraints, in addition to functionality related constraints. Such non-functional constraints may include (but not limited to), timing/energy-consumption related constrains or reliability requirements. Additionally, embedded systems are often required to operate in interaction with the physical environment, obtaining their inputs from environmental factors (such as temperature or air-pressure). The need to interact with a dynamic, often non-deterministic physical environment, further increases the challenges associated with testing and validation of embedded software. In the past, testing and validation methodologies have been studied extensively. This article, however, explores the advances in software testing methodologies, specifically in the context of embedded software. This article introduces the reader to key challenges in testing non-functional properties of software by means of realistic examples. It also presents an easy-to-follow, classification of existing research work on this topic. Finally, the article is concluded with a review of promising future directions in the area of embedded software testing.
[BC15] Abhijeet Banerjee, Sudipta Chattopadhyay and Abhik Roychoudhury, "On Testing Embedded Software", Elsevier Advances in Computers (ADCOM)