automatic generation of platform independent built-in contract testers
DESCRIPTION
Helton Souza Lima Franklin Ramalho Patricia Machado Everton Alves Grupo de Métodos Formais - GMF. Automatic Generation of Platform Independent Built-in Contract Testers. Brazilian Symposium on Software Components, Architectures and Reuse – SBCARS Campinas - SP. Introduction The problem. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Automatic Generation of Platform Independent Built-in Contract Testers](https://reader035.vdocuments.us/reader035/viewer/2022062423/56814627550346895db33515/html5/thumbnails/1.jpg)
August/2007
Helton Souza LimaSBCARS
1
Automatic Generation of Platform Independent Built-in Contract Testers
Helton Souza Lima
Franklin Ramalho
Patricia Machado
Everton Alves
Grupo de Métodos Formais - GMF
Brazilian Symposium on Software Components, Architectures and Reuse – SBCARS
Campinas - SP
![Page 2: Automatic Generation of Platform Independent Built-in Contract Testers](https://reader035.vdocuments.us/reader035/viewer/2022062423/56814627550346895db33515/html5/thumbnails/2.jpg)
August/2007
Helton Souza LimaSBCARS
2
IntroductionThe problem
• Component-Based Development
• High quality reusable software
• Reliable components = well tested components
• Model Based Testing
• Tests are in conformance to the specification
• Tests are constructed as soon as specifications
• Automatic Model Based Testing
• Changes on models are instantly reflected on the tests
• Tests are more reliable – no human interference
• Problem:
• We need tests fully and automatically generated from models and with a high reliability and reusability
![Page 3: Automatic Generation of Platform Independent Built-in Contract Testers](https://reader035.vdocuments.us/reader035/viewer/2022062423/56814627550346895db33515/html5/thumbnails/3.jpg)
August/2007
Helton Souza LimaSBCARS
3
• To achieve these benefits we need:
• (1) A component-based methodology
• (2) The methodology should deals with models
• (3) A model-based testing method inside the methodology
• (4) An approach able to make the testing method automatic
IntroductionThe solution
![Page 4: Automatic Generation of Platform Independent Built-in Contract Testers](https://reader035.vdocuments.us/reader035/viewer/2022062423/56814627550346895db33515/html5/thumbnails/4.jpg)
August/2007
Helton Souza LimaSBCARS
4
Our SolutionMoBIT
• MoBIT (Model-driven Built-In contract Testers)• (1) and (2): The component and model-based methodology: KobrA
• (3): Model-based testing method inside KobrA: BIT
• (4): The approach to build the automatic BIT method: MDE
![Page 5: Automatic Generation of Platform Independent Built-in Contract Testers](https://reader035.vdocuments.us/reader035/viewer/2022062423/56814627550346895db33515/html5/thumbnails/5.jpg)
August/2007
Helton Souza LimaSBCARS
5
BackgroundThe approach
• MDE (Model-Driven Engineering)•New approach of software development
•Focus on models (UML and OCL models)
•Steps:
•Build the models in conformance to meta-models
•Create the transformation rules between pairs of meta-models
•Use engines to process the transformations among source and target models
•Benefits:
•Maximize software reuse (including between different platforms)
•Speed-up software development
![Page 6: Automatic Generation of Platform Independent Built-in Contract Testers](https://reader035.vdocuments.us/reader035/viewer/2022062423/56814627550346895db33515/html5/thumbnails/6.jpg)
August/2007
Helton Souza LimaSBCARS
6
BackgroundThe methodology
• KobrA•Three foundations:
•Component-based – modularity
•Product-line – reuse
•Model-Driven – UML models
•Simple
•Minimal set of concepts
•Systematic
•Methodological
•Prescriptive
•Step-wise process
•Flexible
•Wide range of circumstances
•Scalable
•Large and small systems
KobrA
Component-based Development (CBD)
Model-DrivenArchitecture (MDA)
1
2
3
Product-LineEngineering (PLE)
![Page 7: Automatic Generation of Platform Independent Built-in Contract Testers](https://reader035.vdocuments.us/reader035/viewer/2022062423/56814627550346895db33515/html5/thumbnails/7.jpg)
August/2007
Helton Souza LimaSBCARS
7
BackgroundThe testing method
• BIT (Built-In contract Testing)• Standard testing method inside KobrA methodology
• Functional testing
• Based on behavior models defined in KobrA
• Client-Server integration testing
• Component-based
• Step-by-step method
• Defines a standard structure to perform tests on the server
• Based on the behavior and interfaces specified in the models
• Our goal is make this method an automatic step
![Page 8: Automatic Generation of Platform Independent Built-in Contract Testers](https://reader035.vdocuments.us/reader035/viewer/2022062423/56814627550346895db33515/html5/thumbnails/8.jpg)
August/2007
Helton Souza LimaSBCARS
8
Our SolutionMoBIT
• MoBIT • Another term: Model-Driven Testing (MDT)
• Is an automatic MBT approach
• In conformance to the MDE principles
•meta-models, models and transformations
• Tests infrastructure is generated through the transformations
• After the rules are implemented, there is no cost to generate the tests
• An architecture was created…
![Page 9: Automatic Generation of Platform Independent Built-in Contract Testers](https://reader035.vdocuments.us/reader035/viewer/2022062423/56814627550346895db33515/html5/thumbnails/9.jpg)
August/2007
Helton Souza LimaSBCARS
9
MoBIT Architecture
• Follows the MDE general architecture
• Meta-models and models:
• Development and Testing
• Horizontal and vertical transformations – refinements
• This work focus on:
• CIM-PIM to CITM-PITM
• From structural and behavioral diagrams
• To structural diagrams refined with BIT concepts
![Page 10: Automatic Generation of Platform Independent Built-in Contract Testers](https://reader035.vdocuments.us/reader035/viewer/2022062423/56814627550346895db33515/html5/thumbnails/10.jpg)
August/2007
Helton Souza LimaSBCARS
10
BIT Profile
• UML extension mechanism: adds specific semantic to UML elements
• A set of stereotypes
• Each one corresponds to a BIT concept
![Page 11: Automatic Generation of Platform Independent Built-in Contract Testers](https://reader035.vdocuments.us/reader035/viewer/2022062423/56814627550346895db33515/html5/thumbnails/11.jpg)
August/2007
Helton Souza LimaSBCARS
11
BIT Profile
•Creates the client and the server•Configures the connection between them
![Page 12: Automatic Generation of Platform Independent Built-in Contract Testers](https://reader035.vdocuments.us/reader035/viewer/2022062423/56814627550346895db33515/html5/thumbnails/12.jpg)
August/2007
Helton Souza LimaSBCARS
12
BIT Profile
•A component of the system•Can be either a client or a server
![Page 13: Automatic Generation of Platform Independent Built-in Contract Testers](https://reader035.vdocuments.us/reader035/viewer/2022062423/56814627550346895db33515/html5/thumbnails/13.jpg)
August/2007
Helton Souza LimaSBCARS
13
BIT Profile
•A class with testing purposes
![Page 14: Automatic Generation of Platform Independent Built-in Contract Testers](https://reader035.vdocuments.us/reader035/viewer/2022062423/56814627550346895db33515/html5/thumbnails/14.jpg)
August/2007
Helton Souza LimaSBCARS
14
BIT Profile
•Association between a client and a server
![Page 15: Automatic Generation of Platform Independent Built-in Contract Testers](https://reader035.vdocuments.us/reader035/viewer/2022062423/56814627550346895db33515/html5/thumbnails/15.jpg)
August/2007
Helton Souza LimaSBCARS
15
BIT Profile
•Association between the Context and a client or a server
![Page 16: Automatic Generation of Platform Independent Built-in Contract Testers](https://reader035.vdocuments.us/reader035/viewer/2022062423/56814627550346895db33515/html5/thumbnails/16.jpg)
August/2007
Helton Souza LimaSBCARS
16
BIT Profile
•Operation with testing purposes
![Page 17: Automatic Generation of Platform Independent Built-in Contract Testers](https://reader035.vdocuments.us/reader035/viewer/2022062423/56814627550346895db33515/html5/thumbnails/17.jpg)
August/2007
Helton Souza LimaSBCARS
17
BIT Profile
•A set of <<Testing>> operations
![Page 18: Automatic Generation of Platform Independent Built-in Contract Testers](https://reader035.vdocuments.us/reader035/viewer/2022062423/56814627550346895db33515/html5/thumbnails/18.jpg)
August/2007
Helton Souza LimaSBCARS
18
BIT Profile
•Sets the server to a specific state
![Page 19: Automatic Generation of Platform Independent Built-in Contract Testers](https://reader035.vdocuments.us/reader035/viewer/2022062423/56814627550346895db33515/html5/thumbnails/19.jpg)
August/2007
Helton Souza LimaSBCARS
19
BIT Profile
•Informs if the server is in a specific state
![Page 20: Automatic Generation of Platform Independent Built-in Contract Testers](https://reader035.vdocuments.us/reader035/viewer/2022062423/56814627550346895db33515/html5/thumbnails/20.jpg)
August/2007
Helton Souza LimaSBCARS
20
Transformations
• From CIM-PIM• Source meta-model: class
diagram and behavioral state machine diagram
• To CITM-PITM• Target meta-model: class
diagram annotated with the BIT profile
• Reuse UML metamodels
• Transformation Language: ATL
• Atlas Transformation Language
• Framework: ATL-DT • Eclipse integrated
• Two different clauses
• from
• to
![Page 21: Automatic Generation of Platform Independent Built-in Contract Testers](https://reader035.vdocuments.us/reader035/viewer/2022062423/56814627550346895db33515/html5/thumbnails/21.jpg)
August/2007
Helton Souza LimaSBCARS
21
Case Study
• The Library System
![Page 22: Automatic Generation of Platform Independent Built-in Contract Testers](https://reader035.vdocuments.us/reader035/viewer/2022062423/56814627550346895db33515/html5/thumbnails/22.jpg)
August/2007
Helton Souza LimaSBCARS
22
Case Study
• Identifying the source elements (from)
•The <<Context>>
from cont:UML2!Class(cont.extension->exists(e | e.ownedExtension.stereotype.name = 'Context')
)
•The Client
•The Server
•The states of the Server
![Page 23: Automatic Generation of Platform Independent Built-in Contract Testers](https://reader035.vdocuments.us/reader035/viewer/2022062423/56814627550346895db33515/html5/thumbnails/23.jpg)
August/2007
Helton Souza LimaSBCARS
23
Case Study
• Generating the target elements
![Page 24: Automatic Generation of Platform Independent Built-in Contract Testers](https://reader035.vdocuments.us/reader035/viewer/2022062423/56814627550346895db33515/html5/thumbnails/24.jpg)
August/2007
Helton Souza LimaSBCARS
24
Case Study
• Generating the target elements
subc:UML2!Class(superClass <- Set{client},generalization <- genc,name <- 'Testing' + client.name,ownedOperation <- oo,extension <- cExt),
)...
cExt:UML2!Extension(ownedExtension <- cExtEnd),cExtEnd:UML2!ExtensionEnd(type <- cSte),cSte:UML2!Stereotype(name <- 'TestingComponent'),
![Page 25: Automatic Generation of Platform Independent Built-in Contract Testers](https://reader035.vdocuments.us/reader035/viewer/2022062423/56814627550346895db33515/html5/thumbnails/25.jpg)
August/2007
Helton Souza LimaSBCARS
25
Concluding Remarks
• Results• A profile for the BIT method
• A tool with ATL rules:•From pure KobrA structural and behavioral diagrams
•To KobrA structural diagrams fully annotated with BIT concepts
•Implemented as an Eclipse plugin
•Integration with other tools through XMI
![Page 26: Automatic Generation of Platform Independent Built-in Contract Testers](https://reader035.vdocuments.us/reader035/viewer/2022062423/56814627550346895db33515/html5/thumbnails/26.jpg)
August/2007
Helton Souza LimaSBCARS
26
Concluding Remarks
• Discussion• MoBIT realizes MDT
• Flexible approach and architecture•Although KobrA was choosen, another methodology can be incorporated
• Future work•Other UML diagrams and OCL expressions
•Other vertical and horizontal transformations