Jump to: navigation, search

Difference between revisions of "Descriptive WSDL Smoke Test Scenarios"

(Schemas)
(Drag & Drop)
Line 72: Line 72:
  
 
==Drag & Drop==
 
==Drag & Drop==
'''Reorder sequences''': in the Design view, right click on a Port Type (the Port type box has a purple circle with a white I) -> Add Operation -> Press the faded gray arrow that appears on the right side of the new Operation (there is a gray arrow for the Input and Output.  Once pressed, the name of the Source and Design view should say, "Inline Schema of [WDLN name]". 
+
# Import the XML Examples: ''New -> Example ... -> Editing and validating XML files''
 
+
# Open ''XMLExamples/PhoneBanking/PhoneBanking.wsdl'' and make sure you're in the ''design'' view
'''Reorder parts''': verify you can drag and drop the input and output for an operation
+
# Locate the ''PhoneBanking'' PortType and its ''getAccountSummary'' operation
 +
# '''Verify''' you can drag & drop to re-order the input and output of the operation
 +
# Save and reopen the file
 +
# '''Verify''' that the changes are persisted
  
 
==Source Editing==
 
==Source Editing==

Revision as of 10:01, 15 June 2009

The smoke tests are organized into three categories: core tests, secondary rotating tests and adhoc tests. In every test run, the goal is to devote 60% of the time to core tests from which every test should be run, 30% to secondary rotating tests from which a tester can pick two or three tests making sure to cover each test at least once in a milestone, and 10% to adhoc test which can be picked randomly.

Core Tests

Every test in this category should be run in every smoke test.

Open and Close Editor

  1. Import the XML Examples: New -> Example ... -> Editing and validating XML files
  2. Open XMLExamples/PhoneBanking/PhoneBanking.wsdl and make sure you're in the design view
  3. Verify you can find PhoneBanking service, a square icon representing the binding and a Port Type named PhoneBanking with four operations.


File Creation & Saving

  1. Import the XML Examples: New -> Example ... -> Editing and validating XML files
  2. File -> New -> Other... -> Web Services -> WSDL to create an new WSDL file: NewWSDLFile.wsdl
  3. Verify the new file is created and opened in the WSDL Editor
  4. Right click on the canvas and select Add Service and add a new service called NewService and add a new PortType named NewPortType as well
  5. Save and close the editor
  6. Reopen the editor and verify that the NewService and NewPortType are persisted.
  7. File -> Save As..., and use the name NewWSDLFileSaveAs.wsdl
  8. Verify the NewWSDLFileSaveAs.wsdl file appear in the navigator
  9. In NewWSDLFileSaveAs.wsdl, add a new service and a new PortType
  10. Close the editor without saving the changes
  11. Reopen the NewWSDLFileSaveAs.wsdl, and verify that the new changes are discarded

Selection Tests

Synchronization between Properties, Design, Source, and Outline views: while conducting the Add/Modify tests, delete tests, and drag & drop tests, observe that these three views are synchronized

Note: if the nodes are collapsed and you add a new child, the node will not automatically expand. Therefore to test synchronization, expand the nodes whenever necessary to verify the synchronization between the Outline and Design view

Add/Modify Tests

For the tests where a new item is added:

  • Verify that the item was successfully added by finding and selecting the item from the Outline view or Design view
  • Whenever possible, modify the name of the item by changing the Name property in the Properties view under General properties

Tests:

  1. Imports: in the Outline view, right click on the Imports node -> Add Import
  2. Schema: in the Outline view, right click on the Types node -> Add Schema
  3. Service: in the Outline view, right click on the Services node -> Add Service
  4. Port: in the Outline view, right click on a created Service -> Add Port -> add a name or use default -> click Finish
  5. Binding: in the Outline view, right click on the Binding node -> Add Binding
  6. Binding content: in the Outline view, right click on a created Binding -> Generate Binding Content... -> select a Port type and protocol -> press Finish. In the Design view, an arrow from the binding to a portType should be created
  7. Port Type: in the Outline view, right click on the Port Type node -> Add Port Type
  8. Operation: in the Outline view, select a created Port Type and right click -> Add Operation
  9. Fault: in the Outline view, select a created Operation (Operations are found in Port Type -> a created Port Type -> Operation) -> Add Fault
  10. Message via Port Type: in the Outline view, select a created Port Type and expand the node until you see two blue arrows representing Input and Output. Right click on the blue arrow pointing right -> Set Message -> New Message... The newly created message will show up in the Messages node. Right click on the blue arrow pointing left -> Set Message -> Existing Message... -> Choose an existing message -> in the Properties view under General properties, the Message property should match the message you chose
  11. Message: in the Outline view, right click on the Messages node -> Add Message
  12. Part: in the Outline view, right click on a created Message -> Add Part
  13. Repeat the same steps for Design View. The UI element to mouseover and right click for each test is highlighted when selected in the Outline view

Delete Tests

For each of the items created in the Add/Modify test, right click on the item or an equivalent item -> Delete

Search & Refactoring

  1. Import the XML Examples: New -> Example ... -> Editing and validating XML files
  2. Open XMLExamples/PhoneBanking/PhoneBanking.wsdl
  3. In the Outline view, right click Port Type -> PhoneBanking and select References -> Project
  4. Verify that there is one reference in PhoneBanking.wsdl
  5. Right click Port Type -> PhoneBanking again and select Refactor -> Rename...'
  6. Check Update references and change the name to PhoneBankingChanged and click Preview ->
  7. Verify that there are two changes in PhoneBanking.wsdl
  8. Click OK and verify that the changes in the preview are applied to the file using the editor. (Hint: can search for PhoneBankingChanged in the file.)

Validation

  1. Import the XML Examples: New -> Example ... -> Editing and validating XML files
  2. Open XMLExamples/PhoneBanking/PhoneBanking.wsdl and switch to source view
  3. Replace <wsdl:portType name="PhoneBanking"> with <wsdl:portType name="PhoneBankingChanged">
  4. Right click on the WSDL file in the Package Explorer and select Validate
  5. Verify that a red X should show up because the WSDL file is invalid
  6. Revert the changes and re-validate
  7. Verify that the X disappears

Secondary Rotating Tests

Two or three tests from this category should be run in every smoke test. Testers should make sure every test should be run at least once in any given milestone.

Drag & Drop

  1. Import the XML Examples: New -> Example ... -> Editing and validating XML files
  2. Open XMLExamples/PhoneBanking/PhoneBanking.wsdl and make sure you're in the design view
  3. Locate the PhoneBanking PortType and its getAccountSummary operation
  4. Verify you can drag & drop to re-order the input and output of the operation
  5. Save and reopen the file
  6. Verify that the changes are persisted

Source Editing

  1. As You Type Validation: as you type validation shows red squiggles for invalid content (no red squiggles see https://bugs.eclipse.org/bugs/show_bug.cgi?id=124911) (if you already tested validation, you should've already tested this)
  2. Content Assist: use CTRL+SPACE in various parts of the WSDL to see the possible entries that can be added
  3. Switching between Design and Source view: make sure changes to the source are reflected in the Design view


Hyperlink Navigation

  1. Referenced components: in the Source View, press F3 or "CTRL+click" over a referenced component. The source editor should go to the referenced component


Extensions

  1. SOAP: in Outline view, select a created Port Type -> click the Extensions properties from the Properties View (the text is currently not showing up, but it is the 3rd button on the vertical tab) -> Add.. -> SOAP -> select an available component to add -> press OK -> click ont he new extension from the Extensions list -> fill in the Extensions details


Schemas

  1. Import the XML Examples: New -> Example ... -> Editing and validating XML files
  2. Open XMLExamples/PhoneBanking/PhoneBanking.wsdl and make sure you're in the design view
  3. Hover your mouse over the arrow next to AccountType
  4. Verify a schema preview popup shows up
  5. Click on the canvas to close to popup (Note: if this doesn't close it, click on the popup to close it.)
  6. Click on the arrow next to AccountType
  7. Verify an external Schema Editor is opened on the file PhoneBanking.xsd showing the AccountType
  8. Go back to the WSDL Editor of PhoneBanking.wsdl
  9. Right click on the PortType PhoneBanking and select Add Operation
  10. Click one of the faded gray arrows that appears on the right side of the new Operation
  11. Verify that an external Schema Editor is opened and its title says Inline Schema of PhoneBanking.wsdl

Preferences

  1. Go to Window -> Preferences -> Web Services -> WSDL Files
  2. In Default Target Namespace, set it to http://myDefaultTNS
  3. Create a new WSDL file named NewWSDLFile.wsdl using File -> New -> Other... -> Web Services -> WSDL
  4. Verify that you can find this attribute targetNamespace="http://myDefaultTNS/NewWSDLFile/" in the <wsdl:definitions> tag

WS-I Compliance

  1. Import the XML Examples: New -> Example ... -> Editing and validating XML files
  2. Open XMLExamples/PhoneBanking/PhoneBanking.wsdl
  3. Create a new WSDL file using the following content:
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="WSIComplianceWSDL"
	targetNamespace="http://www.example.org/WSIComplianceWSDL/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
	xmlns:tns="http://www.example.org/WSIComplianceWSDL/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
	xmlns:http="http://schemas.xmlsoap.org/wsdl/http/">
	<wsdl:types>
		<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
			targetNamespace="http://www.example.org/WSIComplianceWSDL/">
			<xsd:element name="NewOperation">
				<xsd:complexType>
					<xsd:sequence>
 
						<xsd:element name="in" type="xsd:string"></xsd:element>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="NewOperationResponse">
				<xsd:complexType>
					<xsd:sequence>
 
						<xsd:element name="out" type="xsd:string"></xsd:element>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
		</xsd:schema>
	</wsdl:types>
	<wsdl:message name="NewOperationRequest">
		<wsdl:part name="parameters" element="tns:NewOperation"></wsdl:part>
	</wsdl:message>
	<wsdl:message name="NewOperationResponse">
		<wsdl:part name="parameters" element="tns:NewOperationResponse"></wsdl:part>
	</wsdl:message>
	<wsdl:portType name="NewPortType">
		<wsdl:operation name="NewOperation">
			<wsdl:input message="tns:NewOperationRequest"></wsdl:input>
			<wsdl:output message="tns:NewOperationResponse"></wsdl:output>
		</wsdl:operation>
	</wsdl:portType>
	<wsdl:binding name="NewBinding" type="tns:NewPortType">
		<http:binding verb="GET" />
		<wsdl:operation name="NewOperation">
			<http:operation location="/NewOperation" />
			<wsdl:input>
				<http:urlEncoded />
			</wsdl:input>
 
		</wsdl:operation>
	</wsdl:binding>
	<wsdl:service name="NewService">
		<wsdl:port name="NewPort" binding="tns:NewBinding">
 
            <http:address location="http://www.example.org/"/>
        </wsdl:port>
	</wsdl:service>
</wsdl:definitions>
  1. Go to Window -> Preferences -> Service Policies
  2. Set the Compliance Level to Ignore compliance for both WSI AP 1.0 and WSI BP 1.1 SSBP 1.0
  3. Validate the WSDL file, and verify no WS-I warnings appear
  4. Change the Compliance Level to Suggest compliance
  5. Validate the WSDL file again, and verify there are WS-I warnings
  6. Change the Compliance Level to Require compliance
  7. Validate the WSDL file again, and verify there are WS-I errors

Adhoc Tests

Please go to Full WSDL Function Test Scenarios and randomly pick some tests that are not in neither the core tests nor the secondary rotating tests.

Links