SlideShare a Scribd company logo
1 of 42
ISWIM For Testing ā€“ A Model Driven Approach Tony Clark Xactium [email_address] www.xactium.com
Overview ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Modelling with Constraints
Telecomms
Network Models Check configurations based on properties of devices and network components.
Aerospace Message Bus Integrated Modular Avionics (IMA)
IMA Models Check configurations of IMA components that must satisfy requirements of navigation modes.
Payload Configurations
Business Processes
Restructuring A Company Check sequences of company snapshots ā€“ do they satisfy the business goals? Restructure Company Produce Plans Implement  Plans Produce BizRep Develop Plans Produce Restructuring Plan Produce  Operating Plan Ditch Unprofitable Customers Reorganize products
Web Services and SOA
Information Systems
ISWIM Constraint Representation
Constraints ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Snapshots ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Snapshots as Constraints not c.business_report.terminal and c.restructuring_plan.addresses = c.business_report
Sharing via Identifiers (separation of concerns)
Negation ā€¦  but not ...
Unknowns Tied Together ā€¦  same as ā€¦
Links Over Collections
Universal Quantification
Existential Quantification
Snapshot Checking Machine
Syntax Model
An Execution Machine
Machine Transitions
Auxiliary Machine Defs
An Implementation ā€“ ISWIM for Model Driven Testing
Testing Architecture Program Testing  Engine Interface (XML)   Program Display Test  Reports (HTML)   Display Test Cases (HTML)   Model (XMF-Mosaic)   ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],C B A D E F G H I Test Cases (XML) Test Reports (XML)
A sales system keeps info on customers, their accounts and their orders. Customer ids (CID) are unique, but customer information may be distributed.
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.
Test Specification ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
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
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
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. AllCIDsUnique
addContact(String id,String info) Pre-condition Post-condition
placeOrder(String id,int items) post-condition
Export as XML
Modify Source (or use class loader) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
A Test Harness ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Test Results
Conclusion ,[object Object],[object Object],[object Object],[object Object]

More Related Content

Similar to Iswim for testing

Iswim for testing
Iswim for testingIswim for testing
Iswim for testing
ClarkTony
Ā 
Intention Oriented Model Interaction
Intention Oriented Model InteractionIntention Oriented Model Interaction
Intention Oriented Model Interaction
Yasir Karam
Ā 
Aspect-Oriented Programming
Aspect-Oriented ProgrammingAspect-Oriented Programming
Aspect-Oriented Programming
Andrey Bratukhin
Ā 
Intro to AppExchange - Building Composite Apps
Intro to AppExchange - Building Composite AppsIntro to AppExchange - Building Composite Apps
Intro to AppExchange - Building Composite Apps
dreamforce2006
Ā 

Similar to Iswim for testing (20)

Iswim for testing
Iswim for testingIswim for testing
Iswim for testing
Ā 
Test api
Test apiTest api
Test api
Ā 
Tdd,Ioc
Tdd,IocTdd,Ioc
Tdd,Ioc
Ā 
Divide and-conquer approach towards data analytics testing
Divide and-conquer approach towards data analytics testingDivide and-conquer approach towards data analytics testing
Divide and-conquer approach towards data analytics testing
Ā 
Test Automation Best Practices (with SOA test approach)
Test Automation Best Practices (with SOA test approach)Test Automation Best Practices (with SOA test approach)
Test Automation Best Practices (with SOA test approach)
Ā 
A wrapper for QuantLib and reference data
A wrapper for QuantLib and reference dataA wrapper for QuantLib and reference data
A wrapper for QuantLib and reference data
Ā 
Implementing a data_science_project (Python Version)_part1
Implementing a data_science_project (Python Version)_part1Implementing a data_science_project (Python Version)_part1
Implementing a data_science_project (Python Version)_part1
Ā 
ā€œLights Outā€Configuration using Tivoli Netcool AutoDiscovery Tools
ā€œLights Outā€Configuration using Tivoli Netcool AutoDiscovery Toolsā€œLights Outā€Configuration using Tivoli Netcool AutoDiscovery Tools
ā€œLights Outā€Configuration using Tivoli Netcool AutoDiscovery Tools
Ā 
Entity Framework v2 Best Practices
Entity Framework v2 Best PracticesEntity Framework v2 Best Practices
Entity Framework v2 Best Practices
Ā 
Node.js for enterprise - JS Conference
Node.js for enterprise - JS ConferenceNode.js for enterprise - JS Conference
Node.js for enterprise - JS Conference
Ā 
Net course content
Net course contentNet course content
Net course content
Ā 
Intention Oriented Model Interaction
Intention Oriented Model InteractionIntention Oriented Model Interaction
Intention Oriented Model Interaction
Ā 
Aspect-Oriented Programming
Aspect-Oriented ProgrammingAspect-Oriented Programming
Aspect-Oriented Programming
Ā 
Meet TransmogrifAI, Open Source AutoML That Powers Einstein Predictions
Meet TransmogrifAI, Open Source AutoML That Powers Einstein PredictionsMeet TransmogrifAI, Open Source AutoML That Powers Einstein Predictions
Meet TransmogrifAI, Open Source AutoML That Powers Einstein Predictions
Ā 
Intro to AppExchange - Building Composite Apps
Intro to AppExchange - Building Composite AppsIntro to AppExchange - Building Composite Apps
Intro to AppExchange - Building Composite Apps
Ā 
ELEVATE Paris
ELEVATE ParisELEVATE Paris
ELEVATE Paris
Ā 
Vertical Recommendation Using Collaborative Filtering
Vertical Recommendation Using Collaborative FilteringVertical Recommendation Using Collaborative Filtering
Vertical Recommendation Using Collaborative Filtering
Ā 
Test Automation Frameworks Final
Test Automation Frameworks   FinalTest Automation Frameworks   Final
Test Automation Frameworks Final
Ā 
[WSO2Con Asia 2018] Patterns for Building Streaming Apps
[WSO2Con Asia 2018] Patterns for Building Streaming Apps[WSO2Con Asia 2018] Patterns for Building Streaming Apps
[WSO2Con Asia 2018] Patterns for Building Streaming Apps
Ā 
JPA 2.0
JPA 2.0JPA 2.0
JPA 2.0
Ā 

More from ClarkTony

Context-Aware Content-Centric Collaborative Workflow Management for Mobile De...
Context-Aware Content-Centric Collaborative Workflow Management for Mobile De...Context-Aware Content-Centric Collaborative Workflow Management for Mobile De...
Context-Aware Content-Centric Collaborative Workflow Management for Mobile De...
ClarkTony
Ā 
LEAP A Language for Architecture Design, Simulation and Analysis
LEAP A Language for Architecture Design, Simulation and AnalysisLEAP A Language for Architecture Design, Simulation and Analysis
LEAP A Language for Architecture Design, Simulation and Analysis
ClarkTony
Ā 
A Common Basis for Modelling Service-Oriented and Event-Driven Architecture
A Common Basis for Modelling Service-Oriented and Event-Driven ArchitectureA Common Basis for Modelling Service-Oriented and Event-Driven Architecture
A Common Basis for Modelling Service-Oriented and Event-Driven Architecture
ClarkTony
Ā 
Context Aware Reactive Applications
Context Aware Reactive ApplicationsContext Aware Reactive Applications
Context Aware Reactive Applications
ClarkTony
Ā 
Model Slicing
Model SlicingModel Slicing
Model Slicing
ClarkTony
Ā 
Patterns 200711
Patterns 200711Patterns 200711
Patterns 200711
ClarkTony
Ā 
Kings 120711
Kings 120711Kings 120711
Kings 120711
ClarkTony
Ā 
Iswim for testing
Iswim for testingIswim for testing
Iswim for testing
ClarkTony
Ā 
Kiss at oopsla 09
Kiss at oopsla 09Kiss at oopsla 09
Kiss at oopsla 09
ClarkTony
Ā 
Mcms and ids sig
Mcms and ids sigMcms and ids sig
Mcms and ids sig
ClarkTony
Ā 
Ocl 09
Ocl 09Ocl 09
Ocl 09
ClarkTony
Ā 
Reverse engineering and theory building v3
Reverse engineering and theory building v3Reverse engineering and theory building v3
Reverse engineering and theory building v3
ClarkTony
Ā 
Onward presentation.en
Onward presentation.enOnward presentation.en
Onward presentation.en
ClarkTony
Ā 
Hcse pres
Hcse presHcse pres
Hcse pres
ClarkTony
Ā 
Formalizing homogeneous language embeddings
Formalizing homogeneous language embeddingsFormalizing homogeneous language embeddings
Formalizing homogeneous language embeddings
ClarkTony
Ā 
Filmstrip testing
Filmstrip testingFilmstrip testing
Filmstrip testing
ClarkTony
Ā 
Dsm as theory building
Dsm as theory buildingDsm as theory building
Dsm as theory building
ClarkTony
Ā 
Dsl overview
Dsl overviewDsl overview
Dsl overview
ClarkTony
Ā 

More from ClarkTony (20)

The Uncertain Enterprise
The Uncertain EnterpriseThe Uncertain Enterprise
The Uncertain Enterprise
Ā 
Actors for Behavioural Simulation
Actors for Behavioural SimulationActors for Behavioural Simulation
Actors for Behavioural Simulation
Ā 
Context-Aware Content-Centric Collaborative Workflow Management for Mobile De...
Context-Aware Content-Centric Collaborative Workflow Management for Mobile De...Context-Aware Content-Centric Collaborative Workflow Management for Mobile De...
Context-Aware Content-Centric Collaborative Workflow Management for Mobile De...
Ā 
LEAP A Language for Architecture Design, Simulation and Analysis
LEAP A Language for Architecture Design, Simulation and AnalysisLEAP A Language for Architecture Design, Simulation and Analysis
LEAP A Language for Architecture Design, Simulation and Analysis
Ā 
A Common Basis for Modelling Service-Oriented and Event-Driven Architecture
A Common Basis for Modelling Service-Oriented and Event-Driven ArchitectureA Common Basis for Modelling Service-Oriented and Event-Driven Architecture
A Common Basis for Modelling Service-Oriented and Event-Driven Architecture
Ā 
Context Aware Reactive Applications
Context Aware Reactive ApplicationsContext Aware Reactive Applications
Context Aware Reactive Applications
Ā 
Model Slicing
Model SlicingModel Slicing
Model Slicing
Ā 
Patterns 200711
Patterns 200711Patterns 200711
Patterns 200711
Ā 
Kings 120711
Kings 120711Kings 120711
Kings 120711
Ā 
Iswim for testing
Iswim for testingIswim for testing
Iswim for testing
Ā 
Kiss at oopsla 09
Kiss at oopsla 09Kiss at oopsla 09
Kiss at oopsla 09
Ā 
Mcms and ids sig
Mcms and ids sigMcms and ids sig
Mcms and ids sig
Ā 
Ocl 09
Ocl 09Ocl 09
Ocl 09
Ā 
Reverse engineering and theory building v3
Reverse engineering and theory building v3Reverse engineering and theory building v3
Reverse engineering and theory building v3
Ā 
Onward presentation.en
Onward presentation.enOnward presentation.en
Onward presentation.en
Ā 
Hcse pres
Hcse presHcse pres
Hcse pres
Ā 
Formalizing homogeneous language embeddings
Formalizing homogeneous language embeddingsFormalizing homogeneous language embeddings
Formalizing homogeneous language embeddings
Ā 
Filmstrip testing
Filmstrip testingFilmstrip testing
Filmstrip testing
Ā 
Dsm as theory building
Dsm as theory buildingDsm as theory building
Dsm as theory building
Ā 
Dsl overview
Dsl overviewDsl overview
Dsl overview
Ā 

Recently uploaded

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
Ā 

Recently uploaded (20)

2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
Ā 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
Ā 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
Ā 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Ā 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
Ā 
šŸ¬ The future of MySQL is Postgres šŸ˜
šŸ¬  The future of MySQL is Postgres   šŸ˜šŸ¬  The future of MySQL is Postgres   šŸ˜
šŸ¬ The future of MySQL is Postgres šŸ˜
Ā 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Ā 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
Ā 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Ā 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Ā 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
Ā 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
Ā 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Ā 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
Ā 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Ā 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
Ā 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
Ā 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
Ā 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
Ā 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Ā 

Iswim for testing