Download presentation
Presentation is loading. Please wait.
1
ISWIM For Testing – A Model Driven Approach
Tony Clark Xactium © Xactium Ltd. 2007
2
Overview A Requirement for Constraints:
Telecomms Aerospace Business Migration Information Systems, SOA ISWIM Constraint Representation ISWIM for testing Conclusion © Xactium Ltd. 2007
3
Modelling with Constraints
© Xactium Ltd. 2007
4
Telecomms © Xactium Ltd. 2007
5
Network Models Check configurations based on properties of devices and network components. © Xactium Ltd. 2007
6
Aerospace Message Bus Integrated Modular Avionics (IMA)
© Xactium Ltd. 2007
7
IMA Models Check configurations of IMA components that must satisfy requirements of navigation modes. © Xactium Ltd. 2007
8
Payload Configurations
© Xactium Ltd. 2007
9
Business Processes © Xactium Ltd. 2007
10
Restructuring A Company
Restructure Company Produce Plans Implement Plans Produce BizRep Develop Plans Ditch Unprofitable Customers Reorganize products Produce Restructuring Plan Produce Operating Plan Check sequences of company snapshots – do they satisfy the business goals? © Xactium Ltd. 2007
11
Web Services and SOA © Xactium Ltd. 2007
12
Information Systems © Xactium Ltd. 2007
13
ISWIM Constraint Representation
© Xactium Ltd. 2007
14
Constraints What not to be: OCL, Java.
Visual language (why?), with examples: Simple state. Variables. And/Or/Not Quantification Predicates. © Xactium Ltd. 2007
15
Snapshots Objects, slots and links. Context must be given:
Parameters Root object Self in state machine. Observations in goals. Conjunction of contents. Negation. © Xactium Ltd. 2007
16
Snapshots as Constraints
not c.business_report.terminal and c.restructuring_plan.addresses = c.business_report © Xactium Ltd. 2007
17
Sharing via Identifiers (separation of concerns)
© Xactium Ltd. 2007
18
Negation … but not ... © Xactium Ltd. 2007
19
Unknowns Tied Together
… same as … © Xactium Ltd. 2007
20
Links Over Collections
© Xactium Ltd. 2007
21
Universal Quantification
© Xactium Ltd. 2007
22
Existential Quantification
© Xactium Ltd. 2007
23
Snapshot Checking Machine
© Xactium Ltd. 2007
24
Syntax Model © Xactium Ltd. 2007
25
An Execution Machine © Xactium Ltd. 2007
26
Machine Transitions © Xactium Ltd. 2007
27
Auxiliary Machine Defs
© Xactium Ltd. 2007
28
An Implementation – ISWIM for Model Driven Testing
© Xactium Ltd. 2007
29
Testing Architecture Model Interface Program Test Cases Display
(XMF-Mosaic) Interface (XML) A Program B E D Test Cases (XML) Display Test Cases (HTML) Testing Engine G H Test cases include: Static Scenarios Dynamic Scenarios Invariants Pre/Post Conditions State Machines F Display Test Reports (HTML) Test Reports (XML) Program © Xactium Ltd. 2007 I
30
A sales system keeps info on customers, their accounts and their orders.
Customer ids (CID) are unique, but customer information may be distributed. © Xactium Ltd. 2007
31
Model Browser A model is constructed that shows the structure and behaviour of the application. The model could be extracted from an implementation or could be constructed by hand or could be constructed from another modelling tool. The example shows the classes extracted from a Java application. © Xactium Ltd. 2007
32
Test Specification Each class may have:
Static scenarios defining typical configurations of instances. These may be positive and negative examples. Invariants defining conditions that must hold true at all times. Each operation may have specifications defining: Precondition defining an expectation of the method. Postcondition defining a corresponding guarantee if the precondition is satisfied. © Xactium Ltd. 2007
33
Static Scenarios A static scenario defines a collection of objects that conforms to the model. The tool will support the construction of the scenarios by completing slots and links where possible. Types of values can be checked by the tool. The scenario represents an implementation independent definition of application data. It might represent a correct, or an illegal, configuration. The scenario can be exported in XML and recreated as implementation data. SomeContacts © Xactium Ltd. 2007
34
Example Invariant For any sales system, With a contacts database,
For each known person p, It is not the case, That the customer id value is EMPTY. NoEmptyCID © Xactium Ltd. 2007
35
Another Invariant For any sales system, With a contacts database,
For each known person p1, With an id x, It is not the case that, There is a known person p2, With the id x, Where p1 and p2 are different people. © Xactium Ltd. 2007 AllCIDsUnique
36
addContact(String id,String info)
Pre-condition Post-condition © Xactium Ltd. 2007
37
placeOrder(String id,int items)
post-condition © Xactium Ltd. 2007
38
Export as XML © Xactium Ltd. 2007
39
Modify Source (or use class loader)
public class SalesSystem { ContactsDB contactsDB = new ContactsDB(); OrderSystem orderSystem = new OrderSystem(); public void addContact(String CID,String info) { JTest test = JTest.startCall("test/SalesSystem","addContact",this,CID,info); if(legal(CID)) contactsDB.addContact(CID,info); test.endCall(null); } public void placeOrder(String CID,int amount) { JTest test = JTest.startCall("test/SalesSystem","placeOrder",this,CID,amount); orderSystem.placeOrder(CID,amount); © Xactium Ltd. 2007
40
A Test Harness public static void main(String[] args) {
SalesSystem sales = (SalesSystem)JTest.build("test/SalesSystem", "SomeContacts"); JTest.startRecording("C:/testResults.xml"); JTest.checkInv("test/SalesSystem", sales); sales.addContact("PERSON1","Fred is a sales manager."); System.out.println(); sales.placeOrder("PERSON1",10); JTest.stopRecording(); } © Xactium Ltd. 2007
41
Test Results © Xactium Ltd. 2007
42
Conclusion Constraints occur everywhere in modelling
Constraints can be expressed as snapshots (ISWIM). Constraints can be executed in various ways to suit the solution. ISWIM-constraints can be implemented as a tool for model driven testing. © Xactium Ltd. 2007
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.