Availability Guide for Application Design
Minimizing Programming Errors
Availability Guide for Application Design—525637-004
9-11
High-Level Testing
•
The application continues to operate correctly when a hardware fault occurs.
•
For process-pair applications, correct data is checkpointed so that regardless of
when a failure might occur, the application can correctly continue where it left off.
•
Appropriate error messages and event messages are generated when a failure
occurs.
•
The application operates correctly when failed components become
operational again.
•
The application correctly tolerates transient software faults.
•
The application correctly tolerates file-full faults.
•
The application tolerates suspension and reactivation.
•
Software defects that could bring down the application are tested for.
•
The application behaves as specified during multiple failures or total system failure.
Power-Fail Testing
The HP hardware and system software that has been designed to be fault-tolerant has
been fully tested by HP to withstand power outages. Depending on the type of
outage—loss of A.C. power, accidental disconnection of a power cable, power supply
failure, and so on—the system makes the appropriate response. In the case of a partial
power outage, where possible, the system makes use of its parallel architecture to
keep on running. In the case of a total power outage, the system recovers correctly
when the power is restored.
To ensure that your application responds to power outages in a way that satisfies your
application requirements and, ultimately, your business needs, you need to design
appropriate tests. Does your application respond appropriately when:
•
Power to a specific hardware module fails (processor, controller, communication
subsystem, disk, tape, printer, and so on)?
•
Power to multiple components fails (an entire system cabinet, multiple processors,
multiple controllers, multiple communication subsystem components, and so on)?
•
Power to the entire system is removed and then restored?
Error-Path Testing
It is important to test error paths at this stage in the development cycle. Although a
significant amount of error-path testing should have been done during unit testing and
integration testing, you cannot thoroughly test every path until all the software is
completed.