The most basic definition is that a high availability system is required to be operational for long periods of time.

Downtime is not acceptable; therefore, a high-availability system is designed in a way that its operation is not affected by scheduled maintenance, batch processing windows, etc. Even unplanned downtime can be unacceptable; which is usually addressed by redundancy within the architecture.

The key to successfully testing high-availability systems is to operate a mature quality assurance environment and good practise testing processes.