In critical sectors, before deployment, applications and systems must be subjected to intensive testing in order to guarantee that the system and built-in fault-tolerance mechanisms are working as expected. Ensuring the system responds appropriately to unusual or exceptional events requires more than traditional testing. Fault injection is the answer and Xception does it like no other.
Xception is used by space agencies around the world and relies on advanced debugging and performance monitoring hardware features, available in common processors, to inject faults and monitor the activation of errors and their impact on the target system. Xception is able to test systems in exceptional field simulations and worst failure scenarios.
It spots weak points in the system and provides feedback for correction or redesign. Those systems can be evaluated under realistic conditions with minimal intrusiveness and reliable validation of fault tolerance mechanisms.
What is Xception?
Xception is an automated testing suite based on a plug-in environment that currently enables: Robustness/Stress Testing (C and Ada), SCIFI, G-SWFIT and SWIFI.
Why is the Xception approach unique?
Xception uses the advanced debugging and performance monitoring features that exist in most modern processors to inject quite realistic faults, monitoring the activation of these faults and their impact on the target system's behaviour.
How does Xception inject faults?
Faults are injected with minimum interference within the target system workload. Target applications need not to be modified at all - thus, no software traps are inserted and there is no need for an instruction to be executed in special trace mode (instead, the application is executed normally at full speed).
Why is Xception almost non-intrusive?
Typically, for most fault models, only a single instruction runs in single step mode, which makes Xception almost non-intrusive. For instance, the time overhead induced by injecting a fault in the PowerPC 601 version ranges from 1 msec to 5 msec, depending on the fault location. Concerning memory overhead, the Xception IRC (mainly exception handlers) occupies as little as 30 Kbytes.
What events does Xception provide to trigger fault injection activity?
Xception provides a comprehensive set of triggers, including temporal and spatial (both code and data access) fault triggers.
Is there any part of a system that Xception cannot test?
No. Faults injected by Xception can affect any process running on the target system - including the operating system kernel! It is possible to inject faults in applications for which the source code is not available.
Does Xception interfere with the workload application?
Xception ingeniously uses the built-in debugging features of contemporary processors to provide minimum intrusiveness. Fault triggers are implemented using the processor's low-level breakpoint registers and therefore the system may run at full-speed. Xception code only runs upon the triggering of a fault and for a short number of clock cycles. During "normal" system operation, fault-injection code in the target behaves as "dead code".
- Automated fault-injection tool
- Supports product certification (dependability and RAMS)
- Professional environment for performing fault-injection based tests
- Performs fault-injection regression with no effort
- Increases confidence in the product and assures compliance to requirements
- Product Performance, Stability, Reliability, Availability and fault tolerance
- Software Implemented fault injection (SWIFI) with limited intrusion;
- Scan Chain Implemented fault injection (SCIFI) with minimum intrusion
- Fault injection in source code (C and Ada)
- Fault Injection in binary code possible
- Fault Injection in Sparc, PPC and x86 architectures
- Adaptable to other architectures in reasonable time