SlideShare a Scribd company logo
Model driven
developing
and
Model based checking:
applying together
Sergey M. Staroletov
assistant professor
Altai State Technical University
Barnaul, Russia
Tools, methods and program analysis conference (TMPA-2014), Kostroma
MDD and MBT
Model based developing(MDD) – is a
modern technology to develop software
firstly focuses on the model
developing, not on algorithmic and
computation concepts
Achievements: UML, classes, patterns,
CASE-tools
Model based testing(MBT) – technology
of software testing based on
comparation the model and system
under test during the work, generation
test cases by the model, and reflection
the system to the model for studying its
properties.
Achievements: no such known in
the software engineering area
Problems
● Programs are going to be hard to explain
and test
● Concurrent and distributive programs: no
shared state, no checking the whole
system logic
● No one community chosen methodology in
testing based on model creation
● Good progress in verification (MBC) area
● Needs to bridge together program
modeling, testing and verification
Our tasks
● Create model to describe a modern logic
of interoperable multi-component
concurrent program
● Create methods of how user can make the
model when he has some system or how
to create the system if user has the model
● Create methods how to dynamically and
statically test the system with using the
model
● Create demo software
Development process
User
Code
Model
Create model by the code
Create code by the model
Code+model
Dynamic testing Static analysis
Bugs
Model correction
Code fixing
How to describe the model
Has code been
already
written to the time
of model creation?
Inject a model description into
the code by hand or with using
IDE addition
Implement state-based system
with logic on the basis of our
extended finite automaton
Yes No
Code creation
Model injection
Better to refactor
that to
the second case
Model editing
System skeleton
classes
generation
Write actual system
code in the states
Three-tier model
● Third tier: complex automaton, models
high lever of the interoperation
● Second tier: extended finite automaton
● First tier – state as a sequence of code
lines
The model
* Graph Theory Techniques in Model-Based Testing. Harry Robinson
● We can start as a finite automaton
● Then add things we are going to model and test
● Automaton can model each component of the
complex system (no global state)
Tier 2 model migration
● Needs to do automaton ↔ object oriented
relation
● We used to create extended automaton
description as a theoretic-set description
with complex transition functions
● Then we moved to automaton descriptions
as states, transitions and operations
● This model easily refers into object-
oriented classes
Modeling basis
We are staying in a state. We can
Make transition to another state
Or apply a operation
Create a thread
Wait a thread
(with some probability)
Send a message
Wait for a message
Block a common resource
Unblock a common resource
Model migration and
descriprion
Model based developing
● “Switch technology”
● User uses our provided classes to make
inter-operational part of the system and to
describe the model
● And writes the code for states which does
actual system behavior
● Approach like the same is used now in
Microsoft Workflow Foundation
Dynamic testing
● How to test dynamic system by hand?
● “Printf injection” paradigm
A(); ↔ A(); printf(“n A() done”);
B(); ↔ B(); printf(“n B() done”);
C(); ↔ C(); printf(“n C() done”);
● Then collect state trace in one place and
check it
Dynamic testing
● Our approach is to use global server
● Which collects data from all components
● Data about all model events is sent by the
code
- that preprocessor inserts to a code in the
places of model description
- in our classes which user used by the
model skeleton
● Server collects the global state and checks
model violations
Dynamic testing
● We can check:
- state visiting, transitions, events by the
model
- message sending and receiving
- thread creation and joining
- resource handling
● Server produces:
- state trace
- message chart diagram
- dynamic model probabilities calculation
Static verification
● In the start of research we used to apply
some algorithms (graphs theory, NY street
sweeper, resource waiting graphs, etc)
Than it was abandoned as:
● Now we do all the checking by using Spin
verifier integrated into our system
● The goal is to map our model to Promela
code and create LTL predicates
Static verification
● Problem: programmers/testers do not like
to use such tools as Spin
● Our approach is to hide Promela/Spin
interface and use it as a backend
● Potentially we can use other verificators
and/or methods
● Model transformation is done for most
common checkings that satisfy our tasks
Static verification
Statemachine, probabilities, threading, messaging are done as Promela
language code snippets that is being generated from our model.
Our software
Our software
● Works as an IDE extension (VS, Eclipse)
● Ability to create and check model
description for the system
● Set of classes that can be used as a
skeleton for interoperable state based
system
● Dynamic and static checking use
methods we described in this work
integrated into an IDE.
Using in the education
process
● Problem:
teach student not to write code first but
model first
● Students thinks about some
interoperation system in a real world and
try to model it (systems like fast-food cafe,
wedding, paying for the flat, buying the
gadgets, the field of dreams TV show,...)
● Then implement it as IPC based app and
network app and check the correctness
Model driven
developing
and
Model based checking:
applying together
Q/A session
Tools, methods and program analysis conference (TMPA-2014), Kostroma

More Related Content

PDF
TMPA-2015: Towards a Usable Defect Prediction Tool: Crossbreeding Machine Lea...
PDF
TMPA-2015: The Application of Parameterized Hierarchy Templates for Automated...
PDF
TMPA-2017: Regression Testing with Semiautomatic Test Selection for Auditing ...
PPTX
The Use of Static Code Analysis When Teaching or Developing Open-Source Software
PDF
TMPA-2017: A Survey on Model-Based Testing Tools for Test Case Generation
PPTX
White Box Testing
PPTX
Part1 my
PPTX
Implementing TDD in for .net Core applications
TMPA-2015: Towards a Usable Defect Prediction Tool: Crossbreeding Machine Lea...
TMPA-2015: The Application of Parameterized Hierarchy Templates for Automated...
TMPA-2017: Regression Testing with Semiautomatic Test Selection for Auditing ...
The Use of Static Code Analysis When Teaching or Developing Open-Source Software
TMPA-2017: A Survey on Model-Based Testing Tools for Test Case Generation
White Box Testing
Part1 my
Implementing TDD in for .net Core applications

What's hot (19)

PPTX
What not to study for the apcs exam, and other exam tips
PPT
Software Testing - Tool support for testing (CAST) - Mazenet Solution
PDF
Known XML Vulnerabilities Are Still a Threat to Popular Parsers ! & Open Sour...
PDF
Random testing
PPTX
Black box testing
PDF
Model-based Testing: Taking BDD/ATDD to the Next Level
PDF
Tools for static analyses of Java af Hans Søndergaard, ViaUC
PPT
1.qtp basics
PPT
Software testing
PPTX
Automation testing
PDF
Bert Zuurke - A Lean And Mean Approach To Model-Based Testing - EuroSTAR 2010
PDF
TDD in the ABAP world - sitNL 2013 edition
PDF
ABAP Code Retreat Frankfurt 2016: TDD - Test Driven Development
PPTX
ГАННА КАПЛУН «Automatic test data generation» QADay 2019
PDF
Design for Testability
PPT
9781111530532 ppt ch07_passing_primitivetypeasobjects
PPTX
Uft Basics
PDF
Making Your Own Static Analyzer Using Freud DSL. Marat Vyshegorodtsev
PDF
Unit Testing & TDD Training for Mobile Apps
What not to study for the apcs exam, and other exam tips
Software Testing - Tool support for testing (CAST) - Mazenet Solution
Known XML Vulnerabilities Are Still a Threat to Popular Parsers ! & Open Sour...
Random testing
Black box testing
Model-based Testing: Taking BDD/ATDD to the Next Level
Tools for static analyses of Java af Hans Søndergaard, ViaUC
1.qtp basics
Software testing
Automation testing
Bert Zuurke - A Lean And Mean Approach To Model-Based Testing - EuroSTAR 2010
TDD in the ABAP world - sitNL 2013 edition
ABAP Code Retreat Frankfurt 2016: TDD - Test Driven Development
ГАННА КАПЛУН «Automatic test data generation» QADay 2019
Design for Testability
9781111530532 ppt ch07_passing_primitivetypeasobjects
Uft Basics
Making Your Own Static Analyzer Using Freud DSL. Marat Vyshegorodtsev
Unit Testing & TDD Training for Mobile Apps
Ad

Similar to Model Driven Developing & Model Based Checking: Applying Together (20)

PDF
An online tool for requirements engineering, modeling and verification of dis...
PDF
Unified Modeling Language (UML), Object-Oriented Programming Concepts & Desig...
RTF
PranathiSadhulaAutomationTester
PPT
Rejunevating software reengineering processes
PDF
Machine learning pipeline with spark ml
PPSX
DITEC - Software Engineering
PPT
Presentation Of Mbt Tools
PPTX
Unit 1 sepm process models
DOCX
process models- software engineering
ODP
NASA Formal Methods Symposium
PPT
12 Rational Solo Pruebas 2009
PPTX
Foster - Getting started with Angular
PDF
Slides-Артем Коваль-Cloud-Native MLOps Framework - DataFest 2021.pdf
PPTX
02 fse processmodels
PPTX
L06 Using Design Patterns
PPTX
pccf unit 1 _VP.pptx
PPT
Ooad Overview
PPT
Ooad overview
PPTX
Introduction to Machine Learning for Java Developers
PDF
Ml ops intro session
An online tool for requirements engineering, modeling and verification of dis...
Unified Modeling Language (UML), Object-Oriented Programming Concepts & Desig...
PranathiSadhulaAutomationTester
Rejunevating software reengineering processes
Machine learning pipeline with spark ml
DITEC - Software Engineering
Presentation Of Mbt Tools
Unit 1 sepm process models
process models- software engineering
NASA Formal Methods Symposium
12 Rational Solo Pruebas 2009
Foster - Getting started with Angular
Slides-Артем Коваль-Cloud-Native MLOps Framework - DataFest 2021.pdf
02 fse processmodels
L06 Using Design Patterns
pccf unit 1 _VP.pptx
Ooad Overview
Ooad overview
Introduction to Machine Learning for Java Developers
Ml ops intro session
Ad

More from Iosif Itkin (20)

PDF
Foundations of Software Testing Lecture 4
PPTX
QA Financial Forum London 2021 - Automation in Software Testing. Humans and C...
PDF
Exactpro FinTech Webinar - Global Exchanges Test Oracles
PDF
Exactpro FinTech Webinar - Global Exchanges FIX Protocol
PDF
Operational Resilience in Financial Market Infrastructures
PDF
20 Simple Questions from Exactpro for Your Enjoyment This Holiday Season
PDF
Testing the Intelligence of your AI
PDF
EXTENT 2019: Exactpro Quality Assurance for Financial Market Infrastructures
PDF
ClearTH Test Automation Framework: Case Study in IRS & CDS Swaps Lifecycle Mo...
PPTX
EXTENT Talks 2019 Tbilisi: Failover and Recovery Test Automation - Ivan Shamrai
PDF
EXTENT Talks QA Community Tbilisi 20 April 2019 - Conference Open
PDF
User-Assisted Log Analysis for Quality Control of Distributed Fintech Applica...
PPTX
QAFF Chicago 2019 - Complex Post-Trade Systems, Requirements Traceability and...
PDF
QA Community Saratov: Past, Present, Future (2019-02-08)
PDF
Machine Learning and RoboCop Testing
PDF
Behaviour Driven Development: Oltre i limiti del possibile
PDF
2018 - Exactpro Year in Review
PPTX
Exactpro Discussion about Joy and Strategy
PPTX
FIX EMEA Conference 2018 - Post Trade Software Testing Challenges
PDF
BDD. The Outer Limits. Iosif Itkin at Youcon (in Russian)
Foundations of Software Testing Lecture 4
QA Financial Forum London 2021 - Automation in Software Testing. Humans and C...
Exactpro FinTech Webinar - Global Exchanges Test Oracles
Exactpro FinTech Webinar - Global Exchanges FIX Protocol
Operational Resilience in Financial Market Infrastructures
20 Simple Questions from Exactpro for Your Enjoyment This Holiday Season
Testing the Intelligence of your AI
EXTENT 2019: Exactpro Quality Assurance for Financial Market Infrastructures
ClearTH Test Automation Framework: Case Study in IRS & CDS Swaps Lifecycle Mo...
EXTENT Talks 2019 Tbilisi: Failover and Recovery Test Automation - Ivan Shamrai
EXTENT Talks QA Community Tbilisi 20 April 2019 - Conference Open
User-Assisted Log Analysis for Quality Control of Distributed Fintech Applica...
QAFF Chicago 2019 - Complex Post-Trade Systems, Requirements Traceability and...
QA Community Saratov: Past, Present, Future (2019-02-08)
Machine Learning and RoboCop Testing
Behaviour Driven Development: Oltre i limiti del possibile
2018 - Exactpro Year in Review
Exactpro Discussion about Joy and Strategy
FIX EMEA Conference 2018 - Post Trade Software Testing Challenges
BDD. The Outer Limits. Iosif Itkin at Youcon (in Russian)

Recently uploaded (20)

PPTX
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
PPTX
Renaissance Architecture: A Journey from Faith to Humanism
PDF
Black Hat USA 2025 - Micro ICS Summit - ICS/OT Threat Landscape
PDF
Pre independence Education in Inndia.pdf
PDF
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
PPTX
master seminar digital applications in india
PDF
01-Introduction-to-Information-Management.pdf
PPTX
PPH.pptx obstetrics and gynecology in nursing
PDF
Abdominal Access Techniques with Prof. Dr. R K Mishra
PDF
VCE English Exam - Section C Student Revision Booklet
PDF
Module 4: Burden of Disease Tutorial Slides S2 2025
PDF
STATICS OF THE RIGID BODIES Hibbelers.pdf
PDF
Sports Quiz easy sports quiz sports quiz
PDF
Complications of Minimal Access Surgery at WLH
PDF
O5-L3 Freight Transport Ops (International) V1.pdf
PDF
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
PDF
Insiders guide to clinical Medicine.pdf
PPTX
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
PDF
Anesthesia in Laparoscopic Surgery in India
PDF
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
Renaissance Architecture: A Journey from Faith to Humanism
Black Hat USA 2025 - Micro ICS Summit - ICS/OT Threat Landscape
Pre independence Education in Inndia.pdf
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
master seminar digital applications in india
01-Introduction-to-Information-Management.pdf
PPH.pptx obstetrics and gynecology in nursing
Abdominal Access Techniques with Prof. Dr. R K Mishra
VCE English Exam - Section C Student Revision Booklet
Module 4: Burden of Disease Tutorial Slides S2 2025
STATICS OF THE RIGID BODIES Hibbelers.pdf
Sports Quiz easy sports quiz sports quiz
Complications of Minimal Access Surgery at WLH
O5-L3 Freight Transport Ops (International) V1.pdf
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
Insiders guide to clinical Medicine.pdf
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
Anesthesia in Laparoscopic Surgery in India
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf

Model Driven Developing & Model Based Checking: Applying Together

  • 1. Model driven developing and Model based checking: applying together Sergey M. Staroletov assistant professor Altai State Technical University Barnaul, Russia Tools, methods and program analysis conference (TMPA-2014), Kostroma
  • 2. MDD and MBT Model based developing(MDD) – is a modern technology to develop software firstly focuses on the model developing, not on algorithmic and computation concepts Achievements: UML, classes, patterns, CASE-tools Model based testing(MBT) – technology of software testing based on comparation the model and system under test during the work, generation test cases by the model, and reflection the system to the model for studying its properties. Achievements: no such known in the software engineering area
  • 3. Problems ● Programs are going to be hard to explain and test ● Concurrent and distributive programs: no shared state, no checking the whole system logic ● No one community chosen methodology in testing based on model creation ● Good progress in verification (MBC) area ● Needs to bridge together program modeling, testing and verification
  • 4. Our tasks ● Create model to describe a modern logic of interoperable multi-component concurrent program ● Create methods of how user can make the model when he has some system or how to create the system if user has the model ● Create methods how to dynamically and statically test the system with using the model ● Create demo software
  • 5. Development process User Code Model Create model by the code Create code by the model Code+model Dynamic testing Static analysis Bugs Model correction Code fixing
  • 6. How to describe the model Has code been already written to the time of model creation? Inject a model description into the code by hand or with using IDE addition Implement state-based system with logic on the basis of our extended finite automaton Yes No Code creation Model injection Better to refactor that to the second case Model editing System skeleton classes generation Write actual system code in the states
  • 7. Three-tier model ● Third tier: complex automaton, models high lever of the interoperation ● Second tier: extended finite automaton ● First tier – state as a sequence of code lines
  • 8. The model * Graph Theory Techniques in Model-Based Testing. Harry Robinson ● We can start as a finite automaton ● Then add things we are going to model and test ● Automaton can model each component of the complex system (no global state)
  • 9. Tier 2 model migration ● Needs to do automaton ↔ object oriented relation ● We used to create extended automaton description as a theoretic-set description with complex transition functions ● Then we moved to automaton descriptions as states, transitions and operations ● This model easily refers into object- oriented classes
  • 10. Modeling basis We are staying in a state. We can Make transition to another state Or apply a operation Create a thread Wait a thread (with some probability) Send a message Wait for a message Block a common resource Unblock a common resource
  • 12. Model based developing ● “Switch technology” ● User uses our provided classes to make inter-operational part of the system and to describe the model ● And writes the code for states which does actual system behavior ● Approach like the same is used now in Microsoft Workflow Foundation
  • 13. Dynamic testing ● How to test dynamic system by hand? ● “Printf injection” paradigm A(); ↔ A(); printf(“n A() done”); B(); ↔ B(); printf(“n B() done”); C(); ↔ C(); printf(“n C() done”); ● Then collect state trace in one place and check it
  • 14. Dynamic testing ● Our approach is to use global server ● Which collects data from all components ● Data about all model events is sent by the code - that preprocessor inserts to a code in the places of model description - in our classes which user used by the model skeleton ● Server collects the global state and checks model violations
  • 15. Dynamic testing ● We can check: - state visiting, transitions, events by the model - message sending and receiving - thread creation and joining - resource handling ● Server produces: - state trace - message chart diagram - dynamic model probabilities calculation
  • 16. Static verification ● In the start of research we used to apply some algorithms (graphs theory, NY street sweeper, resource waiting graphs, etc) Than it was abandoned as: ● Now we do all the checking by using Spin verifier integrated into our system ● The goal is to map our model to Promela code and create LTL predicates
  • 17. Static verification ● Problem: programmers/testers do not like to use such tools as Spin ● Our approach is to hide Promela/Spin interface and use it as a backend ● Potentially we can use other verificators and/or methods ● Model transformation is done for most common checkings that satisfy our tasks
  • 18. Static verification Statemachine, probabilities, threading, messaging are done as Promela language code snippets that is being generated from our model.
  • 20. Our software ● Works as an IDE extension (VS, Eclipse) ● Ability to create and check model description for the system ● Set of classes that can be used as a skeleton for interoperable state based system ● Dynamic and static checking use methods we described in this work integrated into an IDE.
  • 21. Using in the education process ● Problem: teach student not to write code first but model first ● Students thinks about some interoperation system in a real world and try to model it (systems like fast-food cafe, wedding, paying for the flat, buying the gadgets, the field of dreams TV show,...) ● Then implement it as IPC based app and network app and check the correctness
  • 22. Model driven developing and Model based checking: applying together Q/A session Tools, methods and program analysis conference (TMPA-2014), Kostroma