Heartbeat Test Plan

This page documents the heartbeat (aka linux-ha) test plan.

Document Control

Maintained online at "DevCorner/TestPlan". URL is: http://wiki.linux-ha.org/DevCorner/TestPlan, or http://linux-ha.org/DevCorner/TestPlan.

Change Control

Maintained automatically by Wiki change tracking system.

I. Introduction

I.A. References/Related Documents

I.B. Line Item

II. Test Plan Overview

The test plan consists running and evaluating the results from of a set of automated tests which are shipped with the Linux-HA software, plus a set of manually performed GUI tests, as docmented in section VII.

There are two suites of tests which ship with Linux-HA:

Each of these tests is simple to run, and simple to evaluate. In addition, BasicSanityCheck does not require any special setup to make it work correctly and runs very quickly (in approximately a minute). cts, on the other hand requires a significant amount of setup before running it, and normally runs for many hours.

We do not yet have a set of automated GUI tests, so they are (for the time being) manual, and described in section 7.

III. Assumptions and Dependencies

III.A. Additional Program Products

III.B. Hardware

BasicSanityCheck can run on any single Linux machine without any special preparation or architectural constraints.

cts, on the other hand, requires three machines to run it on. The tests are controlled from the test monitor machine, and they are run on the other two machines. The Linux-HA package must be installed (in a consistent version) on all three machines. Detailed information about setting up cts is supplied by the cts/README file.

It is highly desirable that the clocks on all the test machines be closely synchronized in order to track down any errors easily.

III.C. General

cts executes in the context of a particular configuration, but does not create different configurations. As a result, it is often desirable to run it once with each of several possible configurations. Most often, the main variant used in the configurations is the value of the auto_failback directive. If two or more configurations are to be considered, one should have auto_failback on and one with it off.

III.D. History

IV. Test Goals and Objectives

The BasicSanityCheck software verifies that many of the major paths in heartbeat andsome associated programs are exercised. This is useful to find problems where the linux-HA software might not be running for reason of some significant platform-related bug.

The cts package is a suite of random tests which eventually run the system through many possible configurations and thoroughly test a configuration with a random sequence of tests chosen from its battery of tests.

IV.A. Hardware and Software Configuration

In order to do any testing, the heartbeat, heartbeat-pils, and heartbeat-stonith packages must all be installed with the version which is to be tested. For the cts tests this means on all three machines. For the BasicSanityCheck test, this means only the single machine to be tested.

Software configuration for the cts tests is complex and is described in detail in the cts README file. This README file can be found at /usr/lib/heartbeat/cts/README. The latest greatest version of the README (which might not match the version you're running) can be found in CVS.

The GUI is a program which can be run on any Linux system with the proper set of libraries installed. It is X-Windows based, so that tester must have access to an X-Windows server to view the results on.

IV.B. Test Approach and Methodology

IV.C. System Operation

??

IV.D. Performance

N/A

IV.E. Standards Compliance

N/A

IV.F. Stress

The CTS tests create significant system stress.

IV.G. Regression

Both tests perform a version of regression testing. The GUI regression tests are described in section VII.

IV.H. Ship Test

N/A

IV.I. Installation Documentation

??

IV.J. Installation/Configuration Test

??

IV.K. Reliability, Availability, and Serviceability

??

IV.L. Usability

N/A

V. Quality Goals

V.A. Goals

All tests should pass with zero errors when properly configured.

V.B. Measurements

Run the tests. If any cts tests fail when a reliable message transport is configured for syslog as described in the README, then this is a bug. If it is configured with UDP transport for syslog, it is possible that certain messages might get lost in a busy networking environment. Then the logs on the original machines can be examined to see if the missing message was actually issued but is missing. This is very difficult unless the system clocks are closely synchronized.

VI. Status Information

VII. Testcase Descriptions

Each CTS test case is described in the file CTStests.py. Each test is a class definition similar to this one:

The tests which are currently in the test suite are described in the CTS page.

This tests DRBD to see if it is maintaining proper integrity of the disk data. This requires that you configure DRBD into your configuration. If you do not, then it will not be run.

GUI Testcase Descriptions

We are developing a set of testcases for manually tests of GUI. These testcases should cover most functions of GUI. GuiTest

VII.A. Naming Conventions

N/A

VII.B. Testcase Location

The BasicSanityCheck script can be found at /usr/lib/heartbeat/BasicSanityCheck. The cts package is located in the /usr/lib/heartbeat/cts directory.

VIII. Functional Coverage Matrix

IX. Approval Criteria

DevCorner/TestPlan (last edited 2006-06-22 05:58:25 by Huang Zhen)