SlideShare a Scribd company logo
1 of 42
Download to read offline
ISWIM For Testing
  – A Model Driven
      Approach

        Tony Clark

      tony.clark@tvu.ac.uk
http://itcentre.tvu.ac.uk/~clark




                                   1
Overview
• A Requirement for Constraints:
  – Telecomms
  – Aerospace
  – Business Migration
  – Information Systems, SOA
• ISWIM Constraint Representation
• ISWIM for testing
• Conclusion
                                    2
Modelling with Constraints




                             3
Telecomms




            4
Network Models




Check configurations based
on properties of devices and
network components.


                                5
Aerospace



          Message Bus




Integrated Modular Avionics (IMA)
                                    6
IMA Models



             Check configurations
             of IMA components
             that must satisfy
             requirements of
             navigation modes.




                              7
Payload Configurations




                         8
Business Processes




                     9
Restructuring A Company
                                   Restructure
                                   Company

           Produce                                          Implement
           Plans                                            Plans
                          Develop            Ditch
Produce                                                              Reorganize
                          Plans              Unprofitable
BizRep                                                               products
          Produce                   Produce Customers
          Restructuring             Operating
          Plan                      Plan



                                                 Check sequences of company
                                                 snapshots – do they satisfy the
                                                 business goals?



                          © Xactium Ltd. 2007                             10
Web Services and SOA




        © Ltd. 2007    11
Information Systems




      © Xactium Ltd. 2007   12
ISWIM Constraint Representation




                              13
Constraints
• What not to be: OCL, Java.
• Visual language (why?), with examples:
  – Simple state.
  – Variables.
  – And/Or/Not
  – Quantification
  – Predicates.


                                           14
Snapshots
• Objects, slots and links.
• Context must be given:
  – Parameters
  – Root object
  – Self in state machine.
  – Observations in goals.
• Conjunction of contents.
• Negation.
                              15
Snapshots as Constraints




not c.business_report.terminal and
c.restructuring_plan.addresses = c.business_report



                                                     16
Sharing via Identifiers
 (separation of concerns)




                            17
Negation




… but not ...




                           18
Unknowns Tied Together




      … same as …



                         19
Links Over Collections




                         20
Universal Quantification




                           21
Existential Quantification




                             22
Snapshot Checking Machine




                            23
Syntax Model




               24
An Execution Machine




       © Xactium Ltd. 2007   25
Machine Transitions




                      26
Auxiliary Machine Defs




                         27
An Implementation –
ISWIM for Model Driven Testing




                                 28
Testing Architecture
                 C

                                                            A
                     Model             Interface
                                                                Program
                 (XMF-Mosaic)              (XML)

                                       B



           E
                                D
 Display             Test                                       Testing
Test Cases           Cases                                      Engine
                      (XML)
  (HTML)
                                                            G


                                                                          H
               Test cases include:
  F            • Static Scenarios                                Test
                                               Display
               • Dynamic Scenarios              Test            Reports
                                                                  (XML)
Program        • Invariants                    Reports
               • Pre/Post Conditions               (HTML)

               • State Machines                                               29
                                                     I
A sales system keeps info on customers, accounts and their orders.
                                                                               30
Customer ids (CID) are unique, but custotheir mer 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.




                                        31
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.

                                                32
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,
SomeContacts   configuration.

               The scenario can be exported in XML and
               recreated as implementation data. 33
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

                                                34
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                           35
                              AllCIDsUnique
different people.
addContact(String id,String info)




  Pre-condition       Post-condition
                                       36
placeOrder(String id,int items)




           post-condition
                                  37
Export as XML




   © Xactium Ltd. 2007   38
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);

        test.endCall(null);
    }
}                                                                                39
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();
}


                                                              40
Test Results




  © Xactium Ltd. 2007   41
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.

                                         42

More Related Content

Viewers also liked

Iswim for testing
Iswim for testingIswim for testing
Iswim for testingClarkTony
 
Code gen 09 kiss results
Code gen 09   kiss resultsCode gen 09   kiss results
Code gen 09 kiss resultsClarkTony
 
Kiss at oopsla 09
Kiss at oopsla 09Kiss at oopsla 09
Kiss at oopsla 09ClarkTony
 
Dsl tutorial
Dsl tutorialDsl tutorial
Dsl tutorialClarkTony
 
Onward presentation.en
Onward presentation.enOnward presentation.en
Onward presentation.enClarkTony
 
Leap isec 2011
Leap isec 2011Leap isec 2011
Leap isec 2011ClarkTony
 
Filmstrip testing
Filmstrip testingFilmstrip testing
Filmstrip testingClarkTony
 

Viewers also liked (8)

UML01
UML01UML01
UML01
 
Iswim for testing
Iswim for testingIswim for testing
Iswim for testing
 
Code gen 09 kiss results
Code gen 09   kiss resultsCode gen 09   kiss results
Code gen 09 kiss results
 
Kiss at oopsla 09
Kiss at oopsla 09Kiss at oopsla 09
Kiss at oopsla 09
 
Dsl tutorial
Dsl tutorialDsl tutorial
Dsl tutorial
 
Onward presentation.en
Onward presentation.enOnward presentation.en
Onward presentation.en
 
Leap isec 2011
Leap isec 2011Leap isec 2011
Leap isec 2011
 
Filmstrip testing
Filmstrip testingFilmstrip testing
Filmstrip testing
 

Similar to Iswim for testing

Iswim for testing
Iswim for testingIswim for testing
Iswim for testingClarkTony
 
Best practices for building and deploying predictive models over big data pre...
Best practices for building and deploying predictive models over big data pre...Best practices for building and deploying predictive models over big data pre...
Best practices for building and deploying predictive models over big data pre...Kun Le
 
Finance Trading in The Cloud - AWS Michigan Meetup
Finance Trading in The Cloud - AWS Michigan MeetupFinance Trading in The Cloud - AWS Michigan Meetup
Finance Trading in The Cloud - AWS Michigan MeetupEric Detterman
 
Developing and Visualizing Live Model Queries
Developing and Visualizing Live Model QueriesDeveloping and Visualizing Live Model Queries
Developing and Visualizing Live Model QueriesZoltán Ujhelyi
 
Simulink Stateflow workshop
 Simulink Stateflow workshop Simulink Stateflow workshop
Simulink Stateflow workshopMATLABISRAEL
 
Project P erts2012
Project P erts2012Project P erts2012
Project P erts2012AdaCore
 
Accelerated test case - Anish bhanu
Accelerated test case - Anish bhanuAccelerated test case - Anish bhanu
Accelerated test case - Anish bhanuRoopa Nadkarni
 
RDz for DevOps Webcast Series: Implementing Continuous Integration with RDz
RDz for DevOps Webcast Series: Implementing Continuous Integration with RDzRDz for DevOps Webcast Series: Implementing Continuous Integration with RDz
RDz for DevOps Webcast Series: Implementing Continuous Integration with RDzSusan Yoskin
 
Rit 8.5.0 virtualization training slides
Rit 8.5.0 virtualization training slidesRit 8.5.0 virtualization training slides
Rit 8.5.0 virtualization training slidesDarrel Rader
 
Service Testing & Virtualization in an Enterprise Environments
Service Testing & Virtualization in an Enterprise EnvironmentsService Testing & Virtualization in an Enterprise Environments
Service Testing & Virtualization in an Enterprise EnvironmentsDevOps for Enterprise Systems
 
Close encounters in MDD: when Models meet Code
Close encounters in MDD: when Models meet CodeClose encounters in MDD: when Models meet Code
Close encounters in MDD: when Models meet Codelbergmans
 
Tips for Developing and Testing IBM HATS Applications
Tips for Developing and Testing IBM HATS ApplicationsTips for Developing and Testing IBM HATS Applications
Tips for Developing and Testing IBM HATS ApplicationsStrongback Consulting
 
External should that be a microservice
External should that be a microserviceExternal should that be a microservice
External should that be a microserviceRohit Kelapure
 
Methodology of enterprise application capacity planning by real life examples
Methodology of enterprise application capacity planning by real life examplesMethodology of enterprise application capacity planning by real life examples
Methodology of enterprise application capacity planning by real life examplesLeonid Grinshpan, Ph.D.
 
RapidMiner: Performance Validation And Visualization
RapidMiner:  Performance Validation And VisualizationRapidMiner:  Performance Validation And Visualization
RapidMiner: Performance Validation And VisualizationRapidmining Content
 
RapidMiner: Performance Validation And Visualization
RapidMiner: Performance Validation And VisualizationRapidMiner: Performance Validation And Visualization
RapidMiner: Performance Validation And VisualizationDataminingTools Inc
 
AngularJS for designers and developers
AngularJS for designers and developersAngularJS for designers and developers
AngularJS for designers and developersKai Koenig
 
01.egovFrame Training Book II
01.egovFrame Training Book II01.egovFrame Training Book II
01.egovFrame Training Book IIChuong Nguyen
 

Similar to Iswim for testing (20)

Iswim for testing
Iswim for testingIswim for testing
Iswim for testing
 
Best practices for building and deploying predictive models over big data pre...
Best practices for building and deploying predictive models over big data pre...Best practices for building and deploying predictive models over big data pre...
Best practices for building and deploying predictive models over big data pre...
 
Finance Trading in The Cloud - AWS Michigan Meetup
Finance Trading in The Cloud - AWS Michigan MeetupFinance Trading in The Cloud - AWS Michigan Meetup
Finance Trading in The Cloud - AWS Michigan Meetup
 
Developing and Visualizing Live Model Queries
Developing and Visualizing Live Model QueriesDeveloping and Visualizing Live Model Queries
Developing and Visualizing Live Model Queries
 
Test automation
Test automationTest automation
Test automation
 
Simulink Stateflow workshop
 Simulink Stateflow workshop Simulink Stateflow workshop
Simulink Stateflow workshop
 
Project P erts2012
Project P erts2012Project P erts2012
Project P erts2012
 
Accelerated test case - Anish bhanu
Accelerated test case - Anish bhanuAccelerated test case - Anish bhanu
Accelerated test case - Anish bhanu
 
RDz for DevOps Webcast Series: Implementing Continuous Integration with RDz
RDz for DevOps Webcast Series: Implementing Continuous Integration with RDzRDz for DevOps Webcast Series: Implementing Continuous Integration with RDz
RDz for DevOps Webcast Series: Implementing Continuous Integration with RDz
 
Rit 8.5.0 virtualization training slides
Rit 8.5.0 virtualization training slidesRit 8.5.0 virtualization training slides
Rit 8.5.0 virtualization training slides
 
Service Testing & Virtualization in an Enterprise Environments
Service Testing & Virtualization in an Enterprise EnvironmentsService Testing & Virtualization in an Enterprise Environments
Service Testing & Virtualization in an Enterprise Environments
 
Close encounters in MDD: when Models meet Code
Close encounters in MDD: when Models meet CodeClose encounters in MDD: when Models meet Code
Close encounters in MDD: when Models meet Code
 
Tips for Developing and Testing IBM HATS Applications
Tips for Developing and Testing IBM HATS ApplicationsTips for Developing and Testing IBM HATS Applications
Tips for Developing and Testing IBM HATS Applications
 
External should that be a microservice
External should that be a microserviceExternal should that be a microservice
External should that be a microservice
 
Methodology of enterprise application capacity planning by real life examples
Methodology of enterprise application capacity planning by real life examplesMethodology of enterprise application capacity planning by real life examples
Methodology of enterprise application capacity planning by real life examples
 
RapidMiner: Performance Validation And Visualization
RapidMiner:  Performance Validation And VisualizationRapidMiner:  Performance Validation And Visualization
RapidMiner: Performance Validation And Visualization
 
RapidMiner: Performance Validation And Visualization
RapidMiner: Performance Validation And VisualizationRapidMiner: Performance Validation And Visualization
RapidMiner: Performance Validation And Visualization
 
AngularJS for designers and developers
AngularJS for designers and developersAngularJS for designers and developers
AngularJS for designers and developers
 
01.egovFrame Training Book II
01.egovFrame Training Book II01.egovFrame Training Book II
01.egovFrame Training Book II
 
Coding Naked
Coding NakedCoding Naked
Coding Naked
 

More from ClarkTony

The Uncertain Enterprise
The Uncertain EnterpriseThe Uncertain Enterprise
The Uncertain EnterpriseClarkTony
 
Actors for Behavioural Simulation
Actors for Behavioural SimulationActors for Behavioural Simulation
Actors for Behavioural SimulationClarkTony
 
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 AnalysisClarkTony
 
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 ArchitectureClarkTony
 
Context Aware Reactive Applications
Context Aware Reactive ApplicationsContext Aware Reactive Applications
Context Aware Reactive ApplicationsClarkTony
 
Model Slicing
Model SlicingModel Slicing
Model SlicingClarkTony
 
Patterns 200711
Patterns 200711Patterns 200711
Patterns 200711ClarkTony
 
Kings 120711
Kings 120711Kings 120711
Kings 120711ClarkTony
 
Mcms and ids sig
Mcms and ids sigMcms and ids sig
Mcms and ids sigClarkTony
 
Reverse engineering and theory building v3
Reverse engineering and theory building v3Reverse engineering and theory building v3
Reverse engineering and theory building v3ClarkTony
 
Dsm as theory building
Dsm as theory buildingDsm as theory building
Dsm as theory buildingClarkTony
 
Dsl overview
Dsl overviewDsl overview
Dsl overviewClarkTony
 

More from ClarkTony (18)

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
 
Mcms and ids sig
Mcms and ids sigMcms and ids sig
Mcms and ids sig
 
Ocl 09
Ocl 09Ocl 09
Ocl 09
 
Scam 08
Scam 08Scam 08
Scam 08
 
Reverse engineering and theory building v3
Reverse engineering and theory building v3Reverse engineering and theory building v3
Reverse engineering and theory building v3
 
Hcse pres
Hcse presHcse pres
Hcse pres
 
Dsm as theory building
Dsm as theory buildingDsm as theory building
Dsm as theory building
 
Dsl overview
Dsl overviewDsl overview
Dsl overview
 
Cg 2011
Cg 2011Cg 2011
Cg 2011
 
Ast 09
Ast 09Ast 09
Ast 09
 

Recently uploaded

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 DiscoveryTrustArc
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKJago de Vreede
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
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 Takeoffsammart93
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
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...Martijn de Jong
 
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, ...apidays
 

Recently uploaded (20)

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
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
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
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
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...
 
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, ...
 

Iswim for testing

  • 1. ISWIM For Testing – A Model Driven Approach Tony Clark tony.clark@tvu.ac.uk http://itcentre.tvu.ac.uk/~clark 1
  • 2. Overview • A Requirement for Constraints: – Telecomms – Aerospace – Business Migration – Information Systems, SOA • ISWIM Constraint Representation • ISWIM for testing • Conclusion 2
  • 5. Network Models Check configurations based on properties of devices and network components. 5
  • 6. Aerospace Message Bus Integrated Modular Avionics (IMA) 6
  • 7. IMA Models Check configurations of IMA components that must satisfy requirements of navigation modes. 7
  • 10. Restructuring A Company Restructure Company Produce Implement Plans Plans Develop Ditch Produce Reorganize Plans Unprofitable BizRep products Produce Produce Customers Restructuring Operating Plan Plan Check sequences of company snapshots – do they satisfy the business goals? © Xactium Ltd. 2007 10
  • 11. Web Services and SOA © Ltd. 2007 11
  • 12. Information Systems © Xactium Ltd. 2007 12
  • 14. Constraints • What not to be: OCL, Java. • Visual language (why?), with examples: – Simple state. – Variables. – And/Or/Not – Quantification – Predicates. 14
  • 15. Snapshots • Objects, slots and links. • Context must be given: – Parameters – Root object – Self in state machine. – Observations in goals. • Conjunction of contents. • Negation. 15
  • 16. Snapshots as Constraints not c.business_report.terminal and c.restructuring_plan.addresses = c.business_report 16
  • 17. Sharing via Identifiers (separation of concerns) 17
  • 19. Unknowns Tied Together … same as … 19
  • 25. An Execution Machine © Xactium Ltd. 2007 25
  • 28. An Implementation – ISWIM for Model Driven Testing 28
  • 29. Testing Architecture C A Model Interface Program (XMF-Mosaic) (XML) B E D Display Test Testing Test Cases Cases Engine (XML) (HTML) G H Test cases include: F • Static Scenarios Test Display • Dynamic Scenarios Test Reports (XML) Program • Invariants Reports • Pre/Post Conditions (HTML) • State Machines 29 I
  • 30. A sales system keeps info on customers, accounts and their orders. 30 Customer ids (CID) are unique, but custotheir mer information may be distributed.
  • 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. 31
  • 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. 32
  • 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, SomeContacts configuration. The scenario can be exported in XML and recreated as implementation data. 33
  • 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 34
  • 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 35 AllCIDsUnique different people.
  • 36. addContact(String id,String info) Pre-condition Post-condition 36
  • 37. placeOrder(String id,int items) post-condition 37
  • 38. Export as XML © Xactium Ltd. 2007 38
  • 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); test.endCall(null); } } 39
  • 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(); } 40
  • 41. Test Results © Xactium Ltd. 2007 41
  • 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. 42