Price 4,228 ILS


Course Overview

Testing and debugging real time systems requires a number of additional skills over testing the more regular development systems. In this course, the participant is introduced to the world of real time from the point of view of the tester. After summarizing the features of real time systems and testing, the course explains real time software testing and debugging considerations, especially in the light of different real time programming languages and operating systems. The course also looks (briefly) at real time hardware testing.

Who should attend?

Testing personnel who need to test real time systems. Programmers who write real time systems.


Course 3601, “Quality Assurance Lifecycle”, or equivalent. Course 3101, “Understand Software Engineering”, is an advantage. Experience in real time development is an advantage.

Course Outline:

1. Introduction
• Testing and real time

2. Real Time Overview
• Real Time: Hard RT, Soft RT
• Embedded
• Application domain
• Requirements & restrictions
• Programming Paradigms
– Reactive – Interrupt driven
– Concurrency
– Synchronization
– Communication
• Features and kernel

3. Testing Overview
• Writing test documents (STP, STD, STR)
• Building test cases
• Unit testing
• Integration testing
• Acceptance testing
• Statistical testing
• Fault tolerance
• Software reliability, availability and maintainability
• Designing for testing
• Design Reviews

4. Debugging Real Time Software is Special
• Traditional debugging is not enough
• Predictability and non-predictability
• The need for special techniques
• Hardware development
• Real time schedulers
• Interrupts
• Threads, processes and tasks
• Resource access and sharing

5. Typical Real-Time Bugs
• Stack overflows
• Race conditions
• Deadlocks, lockouts and starvations
• Timing and performance problems
• Re-entrancy conditions
• New or updated hardware
• Compiler optimization6.Techniques 
• Fault injection
• Using stubs
• Using trace and monitors
• Multitasking
• Interrupts
• Timing and clocks
• Memory restrictions
• Performance: response, load and stress
• Simulators and modeling languages7. Real Time Languages and Debugging
• The need for real time languages
• C and POSIX
• Real time Java8. Real Time Debugging Tools
• The need
• Different types
• Logic Analyzers
• Post mortem debugging

9. Testing Hardware
• Real time I/O interfaces
• Modeling languages such as VHDL, SystemC
• Hardware stubs

10. Summary