OGC logo

Annex A - Abstract Test Suite for the Web Processing Service 1.0.0

Guilhem Legal
Geomatys
Quentin Boileau
Geomatys
Revision History
Revision 0.0 2012-04-16
Initial draft.

Overview

This document is an abstract test suite (ATS): a compendium of test assertions applicable to all implementations of the Web Processing Service specification. An ATS provides a basis for developing an executable test suite (ETS) to verify that the implementation under test (IUT) conforms to all relevant functional specifications.

The abstract test cases (assertions) are organized into test groups that correspond to distinct conformance classes or sets of capabilities defined in the WPS v1.0.0 specification [OGC 05-007r7]. The following mandatory (core profile) test groups are defined:

  1. Level 1 (Core) - Provides tests for the core, mandatory operations of the WPS

Source documents

What is tested

Test Data

Namespaces

Schemas


Table of Contents

  1. OWS
  2. General Module
  3. Core Module

1. OWS

Purpose

The OWS test group includes assertions that are common to all OGC Web Service (OWS) implementations. The component test cases shall apply to all services based on the OWS 1.1.0 specification (OGC 06-121r3).

List of Tables

1.1. Content-Type response header
1.2. KVP parameter names
1.3. GetCapabilities request
1.4. GetCapabilities - Exceptions
1.5. GetCapabilities - AcceptVersions parameter
1.6. GetCapabilities - UpdateSequence parameter

Table 1.1. Content-Type response header

Test case identifier OWS.ContentType
Test purpose The Content-Type entity header correctly identifies the media type of the message body.
Test method Check the value of the Content-Type entity header. Pass if the field value correctly identifies the media type of the message body; fail otherwise.
Reference
Test type Capability

Table 1.2. KVP parameter names

Test case identifier OWS.CaseInsensitiveKvpNames
Test purpose Parameter names in a KVP-encoded request are handled in a case-insensitive manner.
Test method Check the handling of parameter names in KVP-encoded requests (GET, POST with "application/x-www-form-urlencoded" content type). Pass if the expected response is produced when upper-, lower-, and mixed-case parameter names are provided; fail otherwise.
Reference
Test type Capability

Table 1.3. GetCapabilities request

Test case identifier OWS.GetCapabilities
Test purpose The GetCapabilities request is implemented.
Test method Verify that the GetCapabilities request is implemented and supports the GET and/or POST method bindings.
Reference
Test type Capability

Table 1.4. GetCapabilities - Exceptions

Test case identifier OWS.GetCapabilities-Exceptions
Test purpose

An exception report is returned in response to any of the following conditions:

  1. missing required request parameter

  2. invalid request parameter value

  3. version negotiation failed

  4. invalid update sequence

  5. an error occurs that prevents successful request processing

Test method Pass if any of the relevant circumstances apply and the response message body contains a valid exception report; fail otherwise.
Reference
Test type Capability

Table 1.5. GetCapabilities - AcceptVersions parameter

Test case identifier OWS.GetCapabilities-AcceptVersions
Test purpose

The response to a GetCapabilities request containing the AcceptVersions parameter must satisfy the applicable assertion:

  1. it contains a complete representation of the capabilities document corresponding to the first supported version in the list;

  2. if no version in the list is supported, it contains an exception with exceptionCode="VersionNegotiationFailed";

  3. if no value is specified or the parameter is not included, it contains the latest available capabilities document.

Test method Verify processing of the AcceptVersion request parameter. Pass if the relevant assertion holds; fail otherwise.
Reference
Test type Capability

Table 1.6. GetCapabilities - UpdateSequence parameter

Test case identifier OWS.GetCapabilities-UpdateSequence
Test purpose

The response to a GetCapabilities request containing the UpdateSequence parameter must satisfy the applicable assertion:

  1. GetCapabilities request is made with an UPDATESEQUENCE parameter set to a value lower than the current update sequence value, returns valid capabilities XML.

  1. GetCapabilities request is made with an UPDATESEQUENCE parameter set to the current update sequence value, returns capabilities XML with only "version" and "update sequence parameter".

Test method Verify processing of the UpdateSequence request parameter. Pass if the relevant assertion holds; fail otherwise.
Reference
Test type Capability

2. General

Purpose

The General test group includes general assertions that relate to all operations of an WPS implementation.

List of Tables

2.1. Invalid Request
2.2. Valid Response
Table 2.1. General - Invalid Request
Test case identifier WPS.General-InvalidRequest
Test purpose

Sending a request that is non-conformant to a schema associated with an WPS operation causes the server to return a valid error report message

Test method Send several test documents that are invalid according to the schemas associated with some of the WPS operations (i.e. the mandatory operations). Pass if the service returns a valid exception message; fail otherwise.
Reference
Test type Capability
Table 2.2. General - Valid Response
Test case identifier WPS.General-ValidResponse
Test purpose

A response entity is schema-valid.

Test method Check the content of the response. Pass if the response is schema-valid; fail otherwise.
Reference
Test type Capability

3. Core

Purpose

The Core test group includes tests for the core, mandatory operations of the WPS. These operations include GetCapabilities, DescribeProcess, and Execute.

List of Tables

3.1. GetCapabilities - KVP Request Parameter Handling
3.2. GetCapabilities - KVP Request Service Parameter Handling
3.3. GetCapabilities - KVP Request Request Parameter Handling
3.4. GetCapabilities - OperationsMetadata Mandatory Operations
3.5. GetCapabilities - Response Contents Valid Process Identifier
3.6. DescribeProcess - Request Invalid Language
3.7. DescribeProcess - Request Invalid Process Identifier
3.8. DescribeProcess - Response Matching Process Identifier
3.9. Execute - Request Invalid Identifier
Table 3.1. GetCapabilities - KVP Request Parameter Handling
Test case identifier WPS.GetCapabilities-KVPRequestParameterHandling
Test purpose The server returns a valid error report message with an exceptionCode of MissingParameterValue when mandatory parameters are missing from the request.
Test method Check that the server returns a valid error report message with an exception code of MissingParameterValue when mandatory parameters are missing from the request. Pass if the server returns a valid error report message with an exception code of MissingParameterValue; fail otherwise.
Reference
Test type Capability
Table 3.2. GetCapabilities - Request service parameter handling
Test case identifier WPS.GetCapabilities-KVPRequestServiceParameterHandling
Test purpose The server returns a valid error report message with an exceptionCode of InvalidParameterValue when the service key value is not WPS.
Test method Check the server returns a valid error report message with an exception code of InvalidParameterValue when the service key value is not WPS. Pass if the server returns a valid error report message with an exception code of InvalideParameterValue; fail otherwise.
Reference
Test type Capability
Table 3.3. GetCapabilities - KVP Request Request Parameter Handling
Test case identifier WPS.GetCapabilities-KVPRequestRequestParameterHandling
Test purpose The server returns a valid error report message with an exceptionCode of OperationNotSupported when the request key value is not GetCapabilities.
Test method Check the server returns a valid error report message with an exceptionCode of OperationNotSupported when the request key value is not WPS. Pass if the server returns a valid error report message with an exception code of OperationNotSupported and a locator equals the oparation name submitted; fail otherwise.
Reference
Test type Capability
Table 3.4. GetCapabilities - OperationsMetadata Mandatory Operations
Test case identifier WPS.GetCapabilities-OperationMetadataMandatoryOperations
Test purpose The OperationsMetadata section lists the mandatory operations of the WPS.
Test method Check that the OperationsMetadata section lists the mandatory operations of the WPS. Pass if assertion holds; fail otherwise.
Reference
Test type Capability
Table 3.5. GetCapabilities - Response Contents Valid Process Identifier
Test case identifier WPS.GetCapabilities-ResponseContentsValidProccesIdentifier
Test purpose If a Process provides the identifier element, then the identifier element must not be empty.
Test method Check if a Process provides the identifier element, then the identifier element must not be empty. Pass if assertions hold; fail otherwise.
Reference
Test type Capability
Table 3.6. DescribeProcess - Request Invalid Language
Test case identifier WPS.DescribeProcess-RequestInvalidLanguage
Test purpose Supplying an invalid Language (not advertised in the capabilities document)the language parameter produces a valid error report message.
Test method Check that supplying an invalid language (not advertised in the capabilities document) for the language produces a valid error report message. Pass if an invalid language produces a valid error report; fail otherwise.
Reference
Test type Capability
Table 3.7. DescribeProcess - Request Invalid Process Identifier
Test case identifier WPS.DescribeProcess-RequestInvalidIdentifier
Test purpose Supplying an invalid process identifier (not advertised in the capabilities document) or no process identifier for the identifier produces a valid error report message.
Test method Check that supplying an invalid Process Identifier (not advertised in the capabilities document) or no Process Identifier for the Identifier produces a valid error report message. Pass if an invalid process identifier or no process identifier produces a valid error report message; fail otherwise.
Reference
Test type Capability
Table 3.8. DescribeProcess - Response Matching ResponseFormat
Test case identifier WPS.DescribeProcess-ResponseMatchingProcessIdentifier
Test purpose The identifier of the response document matches the process identifier specified in the request and is valid according to the response schema.
Test method Check that the identifier of the response document matches the process identifier specified in the request and is valid according to the response schema. Pass if assertion holds; fail otherwise.
Reference
Test type Capability
Table 3.9. Execute - Request Invalid Process Identifier
Test case identifier WPS.Execute-RequestInvalidIdentifier
Test purpose An invalid process identifier in the request produces a valid error message.
Test method Check that an invalid process identifier in the request produces a valid error message. Pass if an invalid process identifier produces a valid error message; fail otherwise.
Reference
Test type Capability