Course Description
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.
Prerequisites
This course is intended for practicing real-time and embedded systems software testers, designers, developers andquality 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.
Additional knowledge useful for attendees of this course can be obtained at the co-requisite advanced course
"Debugging Real-Time Software".
Target Group
This course is intended for practicing real-time and embedded systems software designers, software developers, project managers and quality engineers who have responsibility for planning, implementing and debugging the software for real-time and embedded computer systems.