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

 


Help: OASIS Mailing Lists Help | MarkMail Help

sca-assembly message

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


Subject: Assembly Test SC - Minutes of Meeting 10th December



Attendees:
Simon Holdsworth
Bryan Aupperle
Mike Edwards
Plamen Pavlov
Eric Wells
Anish Karmarkar
Dave Booz

1. Roll Call
2. Appointment of scribe
3. Agenda bashing
4. Discuss Test Design documents
5. Discuss Example Test artifacts
6. Adjourn


Scribe: Mike Edwards

Item 4: Test Assertions document:
SCA_Assembly_Test_Assertions_01.doc
anish: http://www.oasis-open.org/apps/org/workgroup/sca-assembly-testing/email/archives/200811/msg00003.html

Discussion of the idea of linking the testcases to the Test Assertions
anish: i was going to make a similar comment: having a list of test associated with the assertion would be useful
Mike E: On the other hand, it can get difficult to maintain documents if the lists are in two places.
The Test Assertions have a link back to the conformance points in the Specifications, but there are no links
in the spec to the Test Assertions.  There is a Testcases document - that should be the document that links the
testcases to the Test Assertions - and that would be the only place where the link is described.
Possibly the documents could be extracted to a pair of database tables and simple database queries used to
connect up tests to the assertions and to the spec.

Mike E: I'd like to divide up the work for the Test Assertions into chunks based on spec sections and ask for
volunteers to do one chunk each.

anish: +1 to divide-and-conquer


Item 5: Example Test Artifacts
anish: http://www.oasis-open.org/apps/org/workgroup/sca-assembly-testing/email/archives/200812/msg00003.html

Base testcase client - used to start the SCA application & to initiate the tests and check results -
extended by other testcases:

BaseTest.java
@Before
   public void setUp() throws Exception {
   startContribution();
   }

   @After
   public void tearDown() throws Exception {
   stopContribution();
   }


Tuscany specific code (needs replacing for each runtime) for starting application:

protected void startContribution() throws Exception {
   // Tuscany specific code which starts the contribution holding the test
       launcher = NodeLauncher.newInstance();
       node = launcher.createNode(testConfiguration.getComposite(),
                          new Contribution(testConfiguration.getTestName(), getContributionURI()));
       System.out.println("SCA Node API ClassLoader: " + node.getClass().getClassLoader());
       node.start();
   } // end method startContribution


Test configuration data (describes the application, its inputs and outputs):

protected TestConfiguration getTestConfiguration() {
   TestConfiguration config = new TestConfiguration();
   config.testName = "ASM_0001";
   config.input = "request";
   config.output = config.testName + " " + config.input + " invoked ok";
   config.composite = "Test_ASM_0001.composite";
   config.testServiceName = "TestClient";
   config.testClass = ASM_0001_Client.class;
   config.serviceInterface = TestInvocation.class;
   return config;
   }



Test invocation:

public String invokeTest( String input ) {

   TestInvocation service = (TestInvocation) getService( testConfiguration.getServiceInterface(),
     testConfiguration.getTestServiceName() );    
   
   return service.invokeTest( input );
   } // end method invokeTest


An extended Java test client:

public class Test_ASM_0002 extends BaseTest {


   protected TestConfiguration getTestConfiguration() {
   TestConfiguration config = new TestConfiguration();
   config.testName = "ASM_0002";
   config.input = "request";
   config.output = config.testName + " " + config.input + " service1 operation1 invoked";
   config.composite = "Test_ASM_0002.composite";
   config.testServiceName = "TestClient";
   config.testClass = ASM_0002_Client.class;
   config.serviceInterface = TestInvocation.class;
   return config;
   }
   
} // end class Test_ASM_0002


A composite is the SCA application under test:
Test_ASM_0001.composite

<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
          targetNamespace="
http://oasis/tests"
          xmlns:sample="
http://oasis/tests"
          name="TEST_ASM_0001">
         
   <component name="TestClient">
      <implementation.java class="test.ASM_0001_Client"/>
      <service name="TestInvocation">
         <interface.java interface="test.TestInvocation"/>
         <binding.sca/>
         <binding.ws/>
      </service>
   </component>


A second application:

Test_ASM_0002.composite
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
          targetNamespace="
http://oasis/tests"
          xmlns:sample="
http://oasis/tests"
          name="TEST_ASM_0002">
         
   <component name="TestClient">
      <implementation.java class="test.ASM_0002_Client"/>
         <service name="TestInvocation">
            <interface.java interface="test.TestInvocation"/>
         </service>
         <reference name="reference1" target="TestComponent1/Service1" />
         <property name="testName">ASM_0002</property>
   </component>


   <component name="TestComponent1">
      <implementation.java class="test.service1Impl"/>
      <service name="Service1">
         <interface.java interface="test.Service1"></interface.java>
      </service>
   </component>

</composite>


Bryan: "TestClient" in the composite is a poor name
Choose "TestGateway" instead to make it clear what that component is doing
ie providing a route for the external client into the SCA application

Discussion of the idea from Anish & Scott for doing the high level application using
<implementation.composite/> rather than <implementation.java/>
...and then having implementation technology specific second level composites

Anish - keeping service interfaces simple (simple ping stuff) is a good idea
Complex datatypes are probably not necessary since the spec makes few normative statements about them

Dave B: Testing of callbacks and of conversational services is more complex, but the interfaces can be kept simple
Testing of Bindings is tricky - if it involves the question of checking the messages on the wire.

Anish - one possibility is to stick at the level of APIs that uses the protocol concerned
- eg APIs that access SOAP headers, or the JMS headers

Mike E: Yes, I agree - that's a good idea

Mike E: There is a JAX-WS client that I have been building
- that is completely outside SCA.  Could be adapted eg to JMS APIs


COB

Yours,  Mike.

Strategist - Emerging Technologies, SCA & SDO.
Co Chair OASIS SCA Assembly TC.
IBM Hursley Park, Mail Point 146, Winchester, SO21 2JN, Great Britain.
Phone & FAX: +44-1962-818014    Mobile: +44-7802-467431  
Email:  mike_edwards@uk.ibm.com





Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU








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