OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

ebxml-iic message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]


Subject: [ebxml-iic] Latest Abstract Test Suite Format for review/ Monday'sconf call


To Jacques and all,

   I have followed up on Jacques recommendation of using a modified XPath 
syntax to describe both XML message manipulation and query as well as MIME 
header construction and query.

   I've attached a ZIP file of the test suite XML file, along with an XSLT 
stylesheet and schema for test document.  Please unzip into a directory on 
a windows machine, and bring up the file 
"ebxml_ms_20_abstract_testsuite.xml" in your IE browser.  If you have the 
proper MSXML parser installed, you should see a nice HTML table displaying 
the new format.  Below is a description of the Abstract Test Table:

******************************************************************************************************************************************************************************************

The purpose of this is to provide a unified syntax for test case 
representation in an  abstract sense only.  The goal is also to further 
simplify the current Abstract Test Suite table, so that any test developer 
could understand what is required to unambiguously constrct a test case.  I 
believe that this syntax has done that.

How these test would actually be described and implemented for actual 
testing would be left up to the test driver implementer.

I believe that I have accurately described both message construction as 
well as query with these first 70+ test descriptions.  I use the modified 
XPath syntax to describe MIME header containers as elements, and header 
values as attributes.  Since SOAP and ebXML messages are nested inside of 
MIME containers, we could describe both message query and manipulation of 
content relative to the MIME container that we are searching for or 
constructing.

We know that the SOAP MIME container is first container in the MIME 
message, and all other references to payloads can be done via Content-ID or 
Content-Location. We have a "context" for referencing sub-elements and 
attributes of our MIME container, as well as referencing the "parent" 
element ( in this case the main MIME header of the message ).  We could 
even search messages across TestCases in our "virtual persistent store" if 
we include an additional higher "parent" element called <TestCaseMessage 
id="myTestCaseId">

In any event, PutMessage and GetMessage operations/methods always 
create/search for a <MIME:Container> element ( or elements ) 
respectively.  They would, in an abstract sense, generate or return a 
"NodeList" that other methods could act upon.   All subsequent "child" 
operations, such as <ebTest:ConformanceCondition> or <ebTest:PreCondition> 
elements describe their search path  "relative" to that <MIME:Container> 
element.

The differences between our modified XPath syntax for query vs. 
modification is quite subtle.  The assignment operator for modification is 
"=".   The comparison operator for query is "==".  The test writer is 
further aided in differentiating the syntax by the use of the <GetMessage> 
and <PutMessage> operation names ( signifying query vs. 
construction/modification).

A NodeList ( in most cases a single node, or returned <MIME:Container> 
element ) is selected by using the modified XPath syntax.  Searching ( in a 
<GetMessage> operation )  uses a relative path description to select MIME 
messages from the abstract  "persistent store" of returned MIME messages 
for a particular test case.

If  we are doing message construction ( a <PutMessage> operation ), the 
NodeList is a single element that uses the same syntax to create a 
<MIME:Container> element for either the SOAP/ebXML message or a MIME 
message payload.  The "and" operator aggregates the assignment operations 
for that particular <MIME;Container> and its sub-elements.

The only difference in syntax between message construction <PutMessage> and 
message query <GetMessage> syntax is the use of the equivalence operators 
"=" and "==" respectively.  All other semantics (e.g use of the "and" to 
indicate aggregation ) remain the same.

Syntax to express the <Precondition> and <ConformanceCondition> operations 
follow the same modified XPath rules, with the additional requirement that 
their "path" must be "relative" to the <MIME:Container> element described 
in the <PutMessage> or <GetMessage> parent element.

Parameters ( passed into an XML processor ) are represented with the 
"$"symbol preceeding them.  These represent dynamically created values that 
are passed into the message construction or message query processor to be 
used in comparison or assignment operations.  Values like "MessageId", 
"ConversationId" and others would most likely be "autogenerated" by a Test 
Driver, and as such, are not specified for these test cases.

I agree with Jacques, that from an "abstract" sense, this is a more 
understandable syntax to use to describe tests.    Actually, if one 
implemented a test driver that reformatted MIME headers and their values 
"from" and "to" XML, and a "persistent store" of ebXML messages is 
represented, say in an XML database, then this abstract test suite could in 
fact be used to construct and drive actual tests.

At the very least though, it can be viewed as a non-ambiguous description 
of conformance tests for ebXML MS v2.0, that could be implemented by anyone 
however they see fit.

( If the interoperability folks would like, I would be happy to attempt to 
describe their interop tests in this format. ).

All of this is now coded in XML.  The attached HTML document is a 
transformation to aid in viewability/understandability.

If this format is acceptable to the IIC, then I can begin describing the 
remaining test cases against our test requirements.  You see that many test 
cases are not described in the current document.

I have not described all tests in the table due to questions about their 
validity or limitation in adequately describing the tests.  This is an 
issue that we will need to address once the list is completed, but these 
remaining test cases have not been resolved.

Also of note:  I needed less than 5 CPA descriptors in constructing these 
tests ( very few modifications, I believe, would be necessary to a 
"base_cpa" to execute these first 100 tests.

Comments?

Mike

Attachment: ebXML_Abstract_Test_Suite.zip
Description: Zip archive



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]


Powered by eList eXpress LLC