Real time applications are time dependent and asynchronous in nature. Time is the new factor that adds complication in testing real time systems. The test cases should be designed so that they consider event handling, timing of data and parallelism of tasks handling the data. Also, the relationship that exists between real time software and hardware can cause testing problems.
An effective strategy for testing a real time system are:
- One should test each task independently and tests are designed and executed for each task. This task testing uncovers errors in logic and function but not timing or behavior.
- The behavior of real time system can be simulated by using system models and this behavior can be examined and it can be served as a basis for test case design.
- Testing shifts to time related errors once errors in individual tasks and in system behavior have been isolated. Asynchronous tasks are tested with different data rates and load to test whether inter task synchronization errors will occur.
- System tests are done to uncover errors at the interface. Generally, real time systems process interrupts therefore, testing and handling of boolean events is essential.
Thursday, August 11, 2011
How to test real-time systems?
Posted by
Sunflower
at
8/11/2011 01:42:00 PM
0
comments
Labels: Applications, Asynchronous, Behavioral, Defects, Design, Errors, Inter task, Interrupts, Real time systems, Software testing, System Testing, Tasks, Test cases, Time
![]() | Subscribe by Email |
|
Thursday, February 10, 2011
Testing for Real-Time Systems - Effective Strategy for testing real time systems
The nature of real time systems is time-dependent and its asynchronous nature. This nature adds a difficult element to the testing mix and that is time. Test case designer need to consider:
- event handling
- timing of the data
- parallelism of the tasks that handle the data
The intimate relationship between real time software and its hardware environment causes testing problems.
An effective four step strategy for testing a real time system are:
Task Testing:
The first step is to test each task independently. Each task has conventional tests designed for them and each task is executed. It helps to uncover errors in logic, function.
Behavioral Testing:
The behavior of a real time system can be simulated using system models created with automated tools. These analysis activities can serve as the basis for the designing of test cases.
Intertask Testing:
Once the task and system related errors are identified, asynchronous tasks that communicate with one another with different data rates and load are tested against errors. Tasks that communicate through a message queue or data store are tested to uncover errors.
System Testing:
System tests are done to uncover errors at the software/hardware interface. Testing the handling of boolean events is essential. The tester develops a list of possible interrupts using state diagram and control specification. Tests that are designed are:
- Interrupt priorities are properly assigned and handled?
- Processing for interrupt is correct?
- Does performance procedure conform to requirements?
- Does high volume of interrupts arriving at critical times create problems in performance?
Posted by
Sunflower
at
2/10/2011 03:33:00 PM
0
comments
Labels: Data, Errors, Event handling, Interrupts, Real, Real time systems, Requirements, Software testing, Steps, Strategy, Tasks, Tests, Time, Timing
![]() | Subscribe by Email |
|