Testing of Embedded Software
Duration: 2 days
Number of participants: recommended optimum 15, maximum 25
The primary goal of this course is to give the participant the skills necessary to systematically plan, develop and implement test cases for software in embedded and real-time computer systems. This is a very practical, results-oriented course that will provide knowledge and skills that can be applied immediately. This course examines the activities and methods involved in systematically testing for errors, flaws, faults and failures in embedded and real-time software as it undergoes development.
The class begins with a presentation of the main concepts and principles for systematic testing of embedded systems software. General techniques are touched upon quickly, including equivalence partitioning, boundary value testing, and code coverage criteria. Emphasis is placed on uniquely embedded testing issues such as flaws in interfacing, multitasking and timing, rather than on general data processing issues.
The class continues with an examination of approaches important in embedded software testing, such as input/protocol testing, state machine model testing, testing of functional pair interactions, and simulation of unexpected interactions with the world outside the embedded system. High-level testing approaches are discussed for advanced stages of system development and integration, including security testing, stress testing and independent verification and validation. Disciplined techniques and tools are presented to support these approaches.
Participants are asked to do detailed exercises on many of the techniques presented, so that the concepts and methods taught are reinforced and absorbed into the participant’s arsenal of testing skills.
This course is not a general course about software testing, but rather it is highly focused on the testing of embedded, time-constrained, resource-constrained software. Multitasking and real-time operating system (RTOS) testing issues will be emphasized if relevant for course participants.
This course is intended for practicing real-time and embedded systems software testers, designers,
developers and quality engineers who have responsibility for testing, planning and implementing
the software for embedded and real-time computer systems.
Course participants are expected to have some background in coding for real-time and embedded
systems. It would be helpful, although it is not required, for course participants to have some
familiarity with at least one RTOS. This knowledge can be gained at one of our introductory courses
“Introduction to Embedded Systems and Software” or “Introduction to Real-Time Operating
Additional knowledge useful for attendees of this course can be obtained at the co-requisite advanced
course “Debugging Real-Time Software”. Both courses can be combined in a 3-day format named
“Embedded Software Testing and Debugging Masterclass”.
The course is based on lectures, discussions, example software testing scenarios and classroom