Availability Guide for Application Design

Minimizing Programming Errors
Availability Guide for Application Design525637-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.