- From: Amelia A Lewis <alewis@tibco.com>
- Date: Mon, 02 Jun 2008 11:51:59 -0400
- To: SOAP/JMS (list) <public-soap-jms@w3.org>
- Message-ID: <efa3827efc2d0133fc1385771f2bb342@xerom.na.tibco.com>
This document is intended to satisfy my action from the 27 May 2008 teleconference. Coverage: Test specification implementability. Test specification ambiguity. Test implementation conformance. Test provider conformance. Assumptions: The primary product supplied by this portion of the work is a test suite, with a well-defined interface which implementors may hook. The term "test suite" means, in this document, a collection of test cases (with clear success/failure indicators) and supporting code, tools, and documentation. Testing strategies are designed to localize issues, by testing the same message at multiple points. Minimal code should be supplied. All test cases should work with the same base code. Support for WSDL cannot be required (it could be the test case description language, otherwise). Test cases must have a formal description. Supplied by the working group: Java MessageParser Context (Optionally in Java) WSDL validator XSLT WSDL 1.1 -> SJMSMDL WSDL 2.0 -> SJMSMDL (Optionally in XSLT) WSDL validator XML SJMSMDL schema (Optional?) SJMSTCL schema Test cases (at least SJMSMDL for each message, possibly SJMSTCL or WSDL) Supplied by the tester: Message Producer Message Consumer JMS Provider Descriptions: MessageParser: this Java tool is initialized with a Context data object and a Message. Its role is to generate an XML instance document conforming to the SJMSMDL schema. Context: this Java object contains data not present in a message, as defined by the SOAP/JMS binding specification. For instance, the URI supplied to an implementation, timeToLive, JNDI-related properties, and so on. WSDL Validator: since WSDL support is not required of conforming implementations, the WSDL validator simply validates (or fails to validate) a WSDL containing SOAP/JMS information. Test cases for conformance to the WSDL support functionality verifies that the implementation accepts and rejects the same set of WSDLs. SJMSMDL schema: SOAP over JMS Message Description Language schema. Attached (RELAX-NG compact format, initial draft, known incomplete). This is an XML micro-format describing the content of a Message and (optionally) Context. The MessageParser code produces this as output. Test cases contain an instance conforming to this schema for each message. Tests pass when the generated instance matches the supplied instance. SJMSTCL schema: SOAP over JMS Test Case Language schema. Not clear whether this is needed. If so, it would describe the larger context of a test case, perhaps as guidelines for comparing the supplied versus the generated SJMSMDL instances. Test cases: infinitely expandable without changing code; add a directory containing the necessary bits of XML, and you've got a new test case. Message Producer: the tester is either the working group itself (to verify that conformant messages may be produced) or an implementor. We don't care what their code looks like; it just has to call MessageParser before transmission. MessageConsumer: the tester is either the working group itself (to verify that conformant messages can be consumed) or an implementor. We don't care what their code looks like; it just has to call MessageParser before consumption. JMS Provider: for feasibility testing (by the working group), a null-ish provider may be supplied. It would permit creation of Message (via standard JMS APIs) by a producer; on send it would hand off the message to a consumer (no network transmission). Vendors of JMS may also effectively test provider implementations by verifying that no data has been lost between the MessageParser output prior to, and subsequent to, transmission. Test strategies: Each message in SJMSMDL is marked as "request," "response," or "one-way". Each test case requires that, after production of the message, it be handed off (with an optional Context object) to MessageParser; the output of MessageParser is compared to the supplied message description in the test case, for the outgoing side. For most test case scenarios (except the possible null provider used by the working group), the message then passes over the network, through a JMS provider implementation. On the consuming side, the message (and an optional Context object) must be handed off to a MessageParser, and the output compared with the instance supplied by the test case. The simplest test cases test producer, provider, and consumer with a single message, compared to its definition in the supplied test case documents. More complex test cases test MEP support: one-way (no reply permitted) and request-response (reply required). This is also the area in which testing of fault support must be defined. Test cases must include malformed messages of various sorts, to verify that failure happens when it should. <sjmsmdl.rnc> Amy! -- Amelia A. Lewis Senior Architect TIBCO/Extensibility, Inc. alewis@tibco.com
Attachments
- application/octet-stream attachment: sjmsmdl.rnc
Received on Monday, 2 June 2008 15:52:41 UTC