Testing

This page documents the tests that were performed on the EODiSP. It describes the testing approach adopted for the EODiSP and presents the traceability matrix that demonstrates how all EODiSP requirements are covered by the proposed testing approach.

Contents

Testing Approach

The EODiSP is delivered with a set of pre-defined tests. In general, these tests are intended to increase users' confidence in the quality of the EODiSP's implementation. Two levels of testing are defined: unit level testing and system level testing.

The EODiSP is designed as a set of object-oriented applications. Its software is therefore organized as a set of cooperating classes. Unit level tests check the implementation of individual classes or of small clusters of tightly coupled classes.

Unit tests are embedded within a regression test suite. This is an application that can run all unit tests in sequence and automatically generates a test report. Unit tests can be run whenever there are doubts about the integrity of the EODiSP software or when modifications have been made to the EODiSP software and it is desired to verify that these modifications do not undermine the EODiSP functionality.

System-level tests exercise the EODiSP as a complete system. They are performed on a fully instantiated EODiSP environment. They must be performed by a human operator following the instructions provided in the EODiSP user manual. The instructions also specify the pass-fail criteria that define whether the test was successful.

The system-level tests were used for the formal acceptance of the EODiSP by the European Space Agency (which funded the initial development of the EODiSP). They are now embedded within the EODiSP User Manual where they serve as a tutorial-like guide on how to use the EODiSP.

It is noted that no integration tests have been defined for the EODiSP. Integration of the various components of the EODiSP is verified through the system-level tests.

Unit-level and system-level tests verify the functionality of the EODiSP against its requirements. In order to ensure completeness of coverage, a traceability matrix defines the link between the EODiSP requirements and the unit- and system-level tests.

Unit-Level Tests

The EODiSP software is implemented in Java. Unit-level tests are therefore naturally implemented using the JUnit Framework.

The JUnit tests are implemented in a set of test classes. Each test class implements the unit tests for a particular target class. Individual tests are implemented in test methods. The following naming conventions are adopted and define the link between a class that is being tested and the JUnit class that is responsible for testing it:

  • The test class is named as follows:

    <TestedClass>Test.java
  • The test methods in a test class are named as follows:

    test<TestedMethod>
  • The test methods in a test class that are aimed at testing the exception raising mechanism are named as follows:

    test<TestedMethod>_<TestedException>

In addition to testing classes, test object classes are sometimes defined to implement support functions for a particular test class (see the book "JUnit in Action" for more details). Test object classes have names like:Test<Class>.java

The JUnit tests can be run automatically and in sequence. Such a run results in the generation of a JUnit test report that describes the outcome of the test. For each EODiSP package, a JUnit test report is available at the following locations:

The Javadoc documentation of the JUnit test classes is available at the following locations:

System-Level Tests

The definition of the system-level tests largely mirrors the definition of the use cases in the EODiSP Requirements page. For each use case defined in the software requirements document, an equivalent test case is defined. Wherever possible, the test cases are kept very close to the associated use case. Since the use cases were used to specify the EODiSP, successful execution of the test cases automatically verifies the correct implementation of the EODiSP specifications.

Additional system-level test cases are also defined to cover features of the EODiSP that are not explicitly covered by the use cases. The full list of system-level test cases is presented in a dedicated page.

Note that, in addition to providing a means to verify the implementation of the EODiSP requirements, the system-level test cases can also be used as a "how-to" guide giving tutorial-like explanations of how to operate the EODiSP.

Traceability Matrix

Traceability information that demonstrats how each EODiSP requirement has been verified either by analysis or through testing is included in the list of EODiSP requirements.