[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: RE: [ebxml-iic] call today...+ comments
Jacques, My comments below [MIKE3] .. plus… Here is the latest schema, with a
few more suggestions for minimalizing scripting even more. Of note: 1) Rather than have a separate
<SetPayload> operation, why not have a single “unified” <SetPart> operation, that can
either construct a message envelope, or a message payload.. since they use exactly the same syntax
already? I’ve attached a schema
diagram illustrating the suggested changes. 2) Han Kim
Ngo (our implementer here at NIST) pointed out that there may be situations
where multiple <Split>s reference the same <Thread> , and that the Test Driver would now
know which one is referenced in the corresponding <Join>.. therefore we
recommend an “instanceId” attribute for each <Thread> that is
<Split>..so that <Join>s refer to the appropriate
<Thread>. e.g. <Split> <ThreadRef
name=”Thread_01” instanceId=”Thread_01_01”> </Split> …. … <Split> <ThreadRef
name=”Thread_01” instanceId=”Thread_01_02”> </Split> … … <Join> <ThreadRef
name=”Thread_01” instanceId=”Thread_01_01”> </Join> Comments? Mike -----Original
Message----- Next call: Agenda: 1. Test Framework 1.1 technical: [MIKE] – One way to do that is to have the
Test Driver simply “infer” that, if a <Mutator> element is not present in
the script, then the Test Driver must interpret the <Declaration>, and
use its API to generate the message (i.e. not rely on an XSL or Xupdate engine
to create the message). Role of XSLT. [MIKE3] –
The latest use case examples I believe satisfy those particular use cases. I do not think that we have adequately
examined BPSS requirements yet unless we begin with a “base” BPSS instance
document and parse/transform it into Test Cases. I believe that a basic “Test Service” like that used for MS
testing would help us do conformance testing on a BSI.
[MIKE3] – We’ve
addressed this in the test framework schema. Please see the attached schema diagram, illustrating a
recursive split based upon a <TestAssertion> boolean result. 2.
Test Framework 1.1 spec:
[MIKE3] – This
is not something normally found in a Test Framework specification. I think however, that it should be
clearly stated what components are necessary for a particular type of testing. There are certainly optional features
of the Test Framework that someone does not need to implement if they are never
going to use them. For example, Registry
testing will never require the implementation of a Test Service at all. A2A conformance testing also does not need to implement a Test
Service. Also, an
implementer may use Xupdate as their <Mutator> instead of XSLT in their
Test Driver. Implementation of
only one of these technologies will preclude the use of test suites using the
other. This should be clearly
stated in the specification. Perhaps we
should add a section describing a matrix of what components and technologies
are needed for the different types of testing.
[MIKE3] – We
currently have an optional SOAP binding specified for RPC operations
(initiator, notify ). Because
there are many packages for messaging, specifying a normative binding for a
message may be difficult. But if
we do specify them , I believe they should be a normative part of the appendix. Jacques --------------- SOme comments on
previous mail (use case #2, #3): [MIKE] We
use
<WhenTrue><Split><ThreadRef="thread_02"/></Split</WhenTrue> [MIKE] - I was
trying to follow the semantics of workflow, however if you are saying that we
can simply have a <Thread> without having to enclose it in a
<Split>, that would be fine (i.e. it would be considered a
"synchronous" execution of a <Thread> by default. [JD]: I wouldn't
give it any different semantics than the embedded form... [MIKE3] –
OK. Will do that. thread_02 needs
to wait 300sec before doing the check. [JD]: Not here
Mike: remember that there is a subtle difference between (a) sleep(300) and (b)
stepDuration=300. In (a), the error thread will catch everything that will have
occurred within the 300
sec (will make sure no error message occurred). In (b), as soon as the
GetMessage [MIKE3] –
I modified the script so that if //*[ErrorList] is found in the <Filter> the
Test Case fails on this condition any time within the 300 second StepDuration.
The Test Driver will continue to poll on the Message Store until 300 seconds
has completed or it matches the XPath <Filter>… So this will accomplish the
same thing as a <Sleep>… but yes a <Sleep> could be used as
well. But using stepDuration is
more efficient.. since you don’t have to idly wait 300 seconds… Please see latest for test use case #2 the thread proceeds, and completes on
"continue",
[MIKE3] –
This would work as well [MIKE2] -
Actually, we can generate "erroneous" messages using a MIME API as
well (supplying erroneous MIME header content). [JD]: OK, these
would be "well-formed" errors. That will be sufficient in many [MIKE3]- We’ve
modified the schema to have a <Header> element that can be any name/value
MIME header pair. This would allow
API level manipulation of message content for MIME. [MIKE] (example
below) [MIKE3] –
We could.. but it really doesn’t save us anything. In fact, it is more limiting in what types of characters are
permitted for “value”.
[MIKE] –
Perhaps I should change the name from MessageHeader. In fact we did that, and simply call it <Header>. I don’t want to call it
<MimeHeader> since that is so implementation specific.. but that is what
we are talking about. A <Header>
is a generic attribute to be assigned to a message envelope… or a message
payload.
|
test_framework_v1.1_schema.jpg
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]