SlideShare a Scribd company logo
1 of 56
Automated Test Design with TTCN-3TTCN-3 User Conference Beijing, June 8th 2010 ConformiqTutorial
Conformiq, Inc Founded in 1998 Privately held World locations: Saratoga, CA, USA (HQ) Helsinki, Finland (R&D) Stockholm, Sweden (Nordic) Munich, Germany (EU) Hyderabad, India throughour partner
Tutorial Outline	 Automated Test Design Why Automated Test Design? Conformiq Designer Conformiq Designer and TTCN-3 SIP Example Walkthrough
Automated Test Design
Challenges of Manual Test Design ,[object Object],Can result in product defects ,[object Object],Cause additional test development work ,[object Object],Cause extra development and maintenance costs ,[object Object],Can result in untested features ,[object Object],Cause high cost for test suite maintenance
Manual DesignManual & AutomaticExecution Evolution of Test Design Experiment and test manually Write report Collect test cases Write test scripts Run scripts for regression testing Manual Design Automatic Execution Design testsfrom specification Write test scripts Run scripts for initial testing Automated Design Automatic Execution Writea model of specification Design tests and derive test scripts automatically
What is Model-Based Testing?
Automated Test Design Model Based Testing (MBT) An ”umbrella” of approaches that can be used to generate tests from models Automated Test Design (ATD) An approach that uses system model driven MBT to design, document, and implement tests Enables Faster test development Improved test quality Wider test coverage & guaranteed requirement coverage Cost-effective test maintenance Earlier test validation & detection of specificatoin defects Independence from test execution environment
Integration of Automated Test Design System Model Test Generation  Test Execution Engine Test Script Test Adaptation System Under Test Test execution engine and adaptation can be reused “as is”!
Why Automated Test Design?
Manual vs. Automated Test Design Write test cases Run tests Design tests WaterfallManual Run Conformiq CQ Designer! Run tests Write model Waterfall  Automated Agile  Automated time Find and Fix more defects sooner
Productivity Improvement 1X Manual test design 5X Automated Test Design in initial deployment 10–20X Automated Test Design in subsequent tested product iterations Source: average results from customer benchmarks
10–20X Elaborated Higher test quality The same model is the source of all tests easier to maintain Models are easier to review and communicate than test scripts Model components are easier to reuse, share and compose than test cases which are ”snapshots” 10–20X Automated Test Design in subsequent tested product iterations
Lessdefects found by customer +400% productivity increasein test design(average of customer benchmarks) More available resources Shorterturnaround time Fasterintegration process Productivity Improvement as an Enabler
Basic Benchmarking Method
Conformiq Designer
ATD with Conformiq Designer Reads in system models and coverage criteria Automatically designs test input and expected output data and timer handling Renders automatically generated tests in chosen output format Imports models from 3rd party tools Integrated into Eclipse
The System Model… Describes the correct (expected) operation of the IUT Should be kept as abstract as testing objectives Specified using Conformiq Modeling Language (QML) Is processed as an object-oriented computer program
ConformiqModelingLanguage(QML) SystemBlock QML Model UML Diagrams Java-likeAction Language
From the System Model to the ”Black Box” Synthesized Environment Synthesis Real System System  Model
Coverage Criteria supported by CQ Designer
Test inputs Expected test outputs Test timings Sequence charts Executable test cases Traceability matrices Test dependency matrices Conformiq Designer Features Mathematically Generates Other Features Modeling in UML and Java-like notation Multiple, fully customizable output formats Import of UML diagrams from 3rd party tools Interactive workbench Integrated in Eclipse® framework
Conformiq Designer Applicability Performance Testing Usability Testing
Conformiq Designer and
Conformiq and TTCN-3 Conformiq Designer ships with an out-of-the-boxTTCN-3 generator Starting with Conformiq Designer 4.2 support for import of TTCN-3 types and constants for model specification Company has provided support for TTCN-3 generationsince 2002 Active in ETSI’s Technical Committee Methods for Testing and Specification (TC MTS) Home of TTCN-3
Experiences with TTCN-3 Tools MessageMagic(Elvior) Titan (Ericsson proprietary) See T. Funke’s presentation at SQC 2009 General Test Runner (GTR) (Huawei proprietary) See X. Gao’s paper at TESTCOM 2008 TTworkbench(TestingTech) Tau Tester (Telelogic) Now part of IBM’s offering
Why Combine CQ Designer with TTCN-3? Benefits for TTCN-3 users: ,[object Object]
Consistent test design and quality
Guaranteed requirement coverage
More efficient test suite maintenance
Easier test artefact review, reuse and sharing
Reuse existing test execution platformsBenefits for Conformiq Designer users: ,[object Object]
Application and test tool independent
Well known and accepted in industry
Automatic test execution,[object Object]
A closer look at the TTCN-3 Test Cases TTCN-3 Harness (manuallywritten) TTCN-3 Test SystemInterface (existing) Conformiq DesignerGenerated TTCN-3Test Cases TestAdaptation
A Test Harness Implementation Example Conformiq Designer generates TTCN-3 function calls (in test case) The function is implemented by the TTCN-3 Harness f_send_SIPRequest_to_netIn( c_SIPRequest15 ); // Finalize and transform SIP request to TTCN-3 type  // structure if different from the one used by model function f_send_SIPRequest_to_netIn( in SIPRequestp_req ) runs on CQ_MTC { var TTCN3_SIP_Request v_TTCNReq; v_TTCNReq:= f_prepare_send_SIPRequest( p_req);   netIn.send( v_TTCNReq); }
Test Harness - Preparation before Sending functionf_prepare_send_SIPRequest ( in SIPRequestp_req ) runs on CQ_MTC return TTCN3_SIP_Request { // 1. Finalize headers p_req.callId := f_send_add_nonce_to_callId( p_req.callId ); p_req.CSeq   := f_send_add_nonce_to_cSeq( p_req.Cseq ); p_req.from_  := f_send_add_nonce_to_from_tag( p_req.from_ ); // 2. Replace CQ Designer generated symbolic values in headers    // with values at runtime p_req.via    := f_send_restore_via_branch( p_req.via );   p_req.to_    := f_send_restore_to_tag( p_req.to_ ); // transform from abstract to TTCN-3 type structure if needed return f_SIPRequest_transform2t3( p_req );  }
Test Harness - Preparation after Receiving functionf_prepare_and_match_SIPRequest ( in SIPRequestp_expReq,in TTCN3_SIP_Request p_rcvTTCNReq )  runs on CQ_MTC returnSIPRequest { // 1. transform from TTCN-3 to abstract type structure if needed varSIPRequestv_rcvReq := f_SIPRequest_transform2cq( p_rcvTTCNReq ); // 2. Store key values later needed in sending and replace     //    them with “generated values" for matching.    v_rcvReq.via := f_recv_store_via_branch( v_expReq.via,v_rcvReq.via );    v_rcvReq.to_ := f_recv_store_to_tag( v_expReq.to_, v_rcvReq.to_ ); // 3. For matching purposes replace runtime header information v_rcvReq.callId := f_recv_remove_nonce_from_callId( v_rcvReq.callId ); v_rcvReq.CSeq   := f_recv_remove_nonce_from_cSeq( v_rcvReq.Cseq ); v_rcvReq.from_  := f_recv_remove_nonce_from_from( v_rcvReq.from_ ); returnv_rcvReq; }
Testing of a SIP User Agent Client: a Walkthrough
Testing of a SIP User Agent Task: Test basic call functionality of a SIP User Agent Client Basis: Create system model directly from IETF RFC 3261 “SIP: Session Initiation Protocol” System Under Test:A normal phone or a soft client
SIP User Agent and its Environment Make a call to... SIP User Agent Server User Network User Interfaced SUT Network Interface SIP User Agent Client SIP Proxy
Tested Functionality Call establishment (“SIP INVITE”) Call termination (“SIP BYE”) caller-initiated callee-initiated Call cancelation (“SIP CANCEL”) Timers re-transmission transaction
Modeled Requirements The SIP User Agent Client must: Establish a session with SIP ACK request Terminate a session with SIP BYE request Confirm a SIP BYE request with a SIP 200 OK response Re-send an SIP INVITE request after timeout A Terminate an SIP INVITE request after timeout B Re-send a SIP BYE request after timeout E Re-send SIP CANCEL request after timeout E Terminate a SIP BYE request after timeout F Terminate a SIP CANCEL request after timeout F
The Modeled System Interface UserOutput: ”ringing”, ”call ended””call established”,”timeout” UserInput: ”call”, ”hang up”, ”cancel” SIPRequest: ”BYE” SIPResponse: “180 Ringing”, ”200 OK”, ”486 Busy Here”, ”487 Request Terminated” UI SIP User Agent Client Network SIPRequest: “ACK”, “BYE”, ”CANCEL”, ”INVITE” SIPResponse: ”200 OK”
QML System Block and Message Definition system {     Inbound  userIn  : UserInput;     Outbound userOut : UserOutput;     Inbound  netIn   : SIPResponse, SIPRequest;     Outbound netOut  : SIPResponse, SIPRequest; } record SIPRequest { SIPRequestLinestartLine; HeaderFieldCallIdcallId; HeaderFieldContact contact; HeaderFieldCSeqcSeq; HeaderFieldFrom from; HeaderFieldMaxForwardsmaxForwards; HeaderFieldTo to; HeaderFieldVia via;     String msgbody; }
The Statechart Diagram
Statechart Example: Call initiation
Example for Java-like QML Action Language ,[object Object],protected void sendInvite() { // initialize state variables this.localTag = ""; this.remoteTag = ""; // build SIP INVITE request with default values theINVITE = getRequestBase("INVITE", getSystemGeneratedValue());// store from tag for later use localTag = theINVITE.from.tag;// set contact header and message body values theINVITE.contact.address = "sip:" + getCallerSipUri(); theINVITE.body = getSystemGeneratedValue(); netOut.send(theINVITE);   } ,[object Object]
System generated values are symbolic values which need to be managed at runtime by TTCN-3 harness,[object Object]
Loading the Model
Generating Tests from Models
Results: Coverage Editor
Results: Requirements Traceability Matrix
Results: Test Case List
Results: Abstract Test Case View

More Related Content

What's hot

What's hot (20)

SDLC ITS MODEL AND SOFTWARE TESTING
SDLC ITS MODEL AND SOFTWARE TESTING SDLC ITS MODEL AND SOFTWARE TESTING
SDLC ITS MODEL AND SOFTWARE TESTING
 
Yacc
YaccYacc
Yacc
 
Quality Testing and Agile at Salesforce
Quality Testing and Agile at Salesforce Quality Testing and Agile at Salesforce
Quality Testing and Agile at Salesforce
 
Sentiment analysis
Sentiment analysisSentiment analysis
Sentiment analysis
 
System Programming Overview
System Programming OverviewSystem Programming Overview
System Programming Overview
 
Introduction to Compiler
Introduction to CompilerIntroduction to Compiler
Introduction to Compiler
 
Getting up to speed with MirrorMaker 2 | Mickael Maison, IBM and Ryanne Dolan...
Getting up to speed with MirrorMaker 2 | Mickael Maison, IBM and Ryanne Dolan...Getting up to speed with MirrorMaker 2 | Mickael Maison, IBM and Ryanne Dolan...
Getting up to speed with MirrorMaker 2 | Mickael Maison, IBM and Ryanne Dolan...
 
Compiler Construction introduction
Compiler Construction introductionCompiler Construction introduction
Compiler Construction introduction
 
Direct linking loaders
Direct linking loadersDirect linking loaders
Direct linking loaders
 
Two pass Assembler
Two pass AssemblerTwo pass Assembler
Two pass Assembler
 
Exactly-once Stream Processing with Kafka Streams
Exactly-once Stream Processing with Kafka StreamsExactly-once Stream Processing with Kafka Streams
Exactly-once Stream Processing with Kafka Streams
 
Yacc (yet another compiler compiler)
Yacc (yet another compiler compiler)Yacc (yet another compiler compiler)
Yacc (yet another compiler compiler)
 
Type Checking(Compiler Design) #ShareThisIfYouLike
Type Checking(Compiler Design) #ShareThisIfYouLikeType Checking(Compiler Design) #ShareThisIfYouLike
Type Checking(Compiler Design) #ShareThisIfYouLike
 
Three address code generation
Three address code generationThree address code generation
Three address code generation
 
Unit 2
Unit 2Unit 2
Unit 2
 
Language translator
Language translatorLanguage translator
Language translator
 
Loader
LoaderLoader
Loader
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
 
Lecture 14 requirements modeling - flow and behavior
Lecture 14   requirements modeling - flow and  behaviorLecture 14   requirements modeling - flow and  behavior
Lecture 14 requirements modeling - flow and behavior
 
Shell scripting
Shell scriptingShell scripting
Shell scripting
 

Viewers also liked

Frameworks for the web
Frameworks for the webFrameworks for the web
Frameworks for the web
netfuel
 
物流設施規劃
物流設施規劃物流設施規劃
物流設施規劃
shuling721
 
UAE Recruitment Services
UAE Recruitment ServicesUAE Recruitment Services
UAE Recruitment Services
waqasuddin01
 

Viewers also liked (20)

“Create Tests Automatically? It’s possible!” Practical Model-Based Testing
“Create Tests Automatically? It’s possible!” Practical Model-Based Testing“Create Tests Automatically? It’s possible!” Practical Model-Based Testing
“Create Tests Automatically? It’s possible!” Practical Model-Based Testing
 
Automated Test Case Generation and Execution from Models
Automated Test Case Generation and Execution from ModelsAutomated Test Case Generation and Execution from Models
Automated Test Case Generation and Execution from Models
 
Steps towards model-based, inference-driven SOA Testing
Steps towards model-based, inference-driven SOA TestingSteps towards model-based, inference-driven SOA Testing
Steps towards model-based, inference-driven SOA Testing
 
DF CAGNY 2010
DF CAGNY 2010DF CAGNY 2010
DF CAGNY 2010
 
[mobidays] Km report7月《移动游戏市场的老千》
[mobidays] Km report7月《移动游戏市场的老千》[mobidays] Km report7月《移动游戏市场的老千》
[mobidays] Km report7月《移动游戏市场的老千》
 
【Mobidays】KM-Report 2016年12月
【Mobidays】KM-Report 2016年12月【Mobidays】KM-Report 2016年12月
【Mobidays】KM-Report 2016年12月
 
[Mobidays]KM Report 2016年10月
[Mobidays]KM Report 2016年10月[Mobidays]KM Report 2016年10月
[Mobidays]KM Report 2016年10月
 
Frameworks for the web
Frameworks for the webFrameworks for the web
Frameworks for the web
 
Cloud ran wp_tfs_nse_ae
Cloud ran wp_tfs_nse_aeCloud ran wp_tfs_nse_ae
Cloud ran wp_tfs_nse_ae
 
KA international
KA internationalKA international
KA international
 
物流設施規劃
物流設施規劃物流設施規劃
物流設施規劃
 
UAE Recruitment Services
UAE Recruitment ServicesUAE Recruitment Services
UAE Recruitment Services
 
White wave Strategy Presentation
White wave Strategy PresentationWhite wave Strategy Presentation
White wave Strategy Presentation
 
Agile Leadership
Agile LeadershipAgile Leadership
Agile Leadership
 
Automatic Test Case Generation
Automatic Test Case GenerationAutomatic Test Case Generation
Automatic Test Case Generation
 
PEP 2010 Cagny
PEP 2010 CagnyPEP 2010 Cagny
PEP 2010 Cagny
 
CKF
CKFCKF
CKF
 
Proyectalis - Agile Course V 14.0
Proyectalis - Agile Course V 14.0Proyectalis - Agile Course V 14.0
Proyectalis - Agile Course V 14.0
 
"Lean IT in a nutshell" by Régis Medina, lean coach
"Lean IT in a nutshell" by Régis Medina, lean coach"Lean IT in a nutshell" by Régis Medina, lean coach
"Lean IT in a nutshell" by Régis Medina, lean coach
 
Breathtaking Pepsi
Breathtaking PepsiBreathtaking Pepsi
Breathtaking Pepsi
 

Similar to Conformiq Tutorial

ESEconf2011 - Hanin Makram: "Embedding Performance into Continuous Integratio...
ESEconf2011 - Hanin Makram: "Embedding Performance into Continuous Integratio...ESEconf2011 - Hanin Makram: "Embedding Performance into Continuous Integratio...
ESEconf2011 - Hanin Makram: "Embedding Performance into Continuous Integratio...
Aberla
 
Rhapsody Software
Rhapsody SoftwareRhapsody Software
Rhapsody Software
Bill Duncan
 
Maximizing Efficiency Using Simulation
Maximizing Efficiency Using SimulationMaximizing Efficiency Using Simulation
Maximizing Efficiency Using Simulation
jason_cov
 
How_to_create_modular_microservice_test_projects.pdf
How_to_create_modular_microservice_test_projects.pdfHow_to_create_modular_microservice_test_projects.pdf
How_to_create_modular_microservice_test_projects.pdf
skimorod
 
ICS ENGINEER CV WITH IMAGE (doc)
ICS ENGINEER CV WITH IMAGE (doc)ICS ENGINEER CV WITH IMAGE (doc)
ICS ENGINEER CV WITH IMAGE (doc)
Vijayakumar Kumar
 

Similar to Conformiq Tutorial (20)

OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
 
Test Automation Frameworks Final
Test Automation Frameworks   FinalTest Automation Frameworks   Final
Test Automation Frameworks Final
 
ESEconf2011 - Hanin Makram: "Embedding Performance into Continuous Integratio...
ESEconf2011 - Hanin Makram: "Embedding Performance into Continuous Integratio...ESEconf2011 - Hanin Makram: "Embedding Performance into Continuous Integratio...
ESEconf2011 - Hanin Makram: "Embedding Performance into Continuous Integratio...
 
Rhapsody Software
Rhapsody SoftwareRhapsody Software
Rhapsody Software
 
Simple tools to fight bigger quality battle
Simple tools to fight bigger quality battleSimple tools to fight bigger quality battle
Simple tools to fight bigger quality battle
 
Maximizing Efficiency Using Simulation
Maximizing Efficiency Using SimulationMaximizing Efficiency Using Simulation
Maximizing Efficiency Using Simulation
 
GNAT Pro User Day: QGen: Simulink® static verification and code generation
GNAT Pro User Day: QGen: Simulink® static verification and code generationGNAT Pro User Day: QGen: Simulink® static verification and code generation
GNAT Pro User Day: QGen: Simulink® static verification and code generation
 
QGen GNAT Industrial User Day
QGen GNAT Industrial User DayQGen GNAT Industrial User Day
QGen GNAT Industrial User Day
 
Funambol Automated Tests for SyncML Clients
Funambol Automated Tests for SyncML ClientsFunambol Automated Tests for SyncML Clients
Funambol Automated Tests for SyncML Clients
 
How_to_create_modular_microservice_test_projects.pdf
How_to_create_modular_microservice_test_projects.pdfHow_to_create_modular_microservice_test_projects.pdf
How_to_create_modular_microservice_test_projects.pdf
 
Tdd,Ioc
Tdd,IocTdd,Ioc
Tdd,Ioc
 
Best Way to Prepare for the ISTQB Technical Test Analyst (CTAL-TTA) Certifica...
Best Way to Prepare for the ISTQB Technical Test Analyst (CTAL-TTA) Certifica...Best Way to Prepare for the ISTQB Technical Test Analyst (CTAL-TTA) Certifica...
Best Way to Prepare for the ISTQB Technical Test Analyst (CTAL-TTA) Certifica...
 
20070925 03 - La qualimétrie en environnement industriel (Schneider automation)
20070925 03 - La qualimétrie en environnement industriel (Schneider automation)20070925 03 - La qualimétrie en environnement industriel (Schneider automation)
20070925 03 - La qualimétrie en environnement industriel (Schneider automation)
 
Project P Open Workshop
Project P Open WorkshopProject P Open Workshop
Project P Open Workshop
 
Automated Requirements-Based Testing for Medical Device Software
Automated Requirements-Based Testing for Medical Device SoftwareAutomated Requirements-Based Testing for Medical Device Software
Automated Requirements-Based Testing for Medical Device Software
 
Tech Days 2015: Model Based Development with QGen
Tech Days 2015: Model Based Development with QGenTech Days 2015: Model Based Development with QGen
Tech Days 2015: Model Based Development with QGen
 
Continuous Performance Testing
Continuous Performance TestingContinuous Performance Testing
Continuous Performance Testing
 
GlobalLogic Test Automation Online TechTalk “Test Driven Development as a Per...
GlobalLogic Test Automation Online TechTalk “Test Driven Development as a Per...GlobalLogic Test Automation Online TechTalk “Test Driven Development as a Per...
GlobalLogic Test Automation Online TechTalk “Test Driven Development as a Per...
 
Architecting Design Development Test Request System in Aras
Architecting Design Development Test Request System in ArasArchitecting Design Development Test Request System in Aras
Architecting Design Development Test Request System in Aras
 
ICS ENGINEER CV WITH IMAGE (doc)
ICS ENGINEER CV WITH IMAGE (doc)ICS ENGINEER CV WITH IMAGE (doc)
ICS ENGINEER CV WITH IMAGE (doc)
 

Recently uploaded

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
panagenda
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Recently uploaded (20)

Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
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
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
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
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
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...
 
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
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
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
 
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, ...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 

Conformiq Tutorial

  • 1. Automated Test Design with TTCN-3TTCN-3 User Conference Beijing, June 8th 2010 ConformiqTutorial
  • 2. Conformiq, Inc Founded in 1998 Privately held World locations: Saratoga, CA, USA (HQ) Helsinki, Finland (R&D) Stockholm, Sweden (Nordic) Munich, Germany (EU) Hyderabad, India throughour partner
  • 3. Tutorial Outline Automated Test Design Why Automated Test Design? Conformiq Designer Conformiq Designer and TTCN-3 SIP Example Walkthrough
  • 5.
  • 6. Manual DesignManual & AutomaticExecution Evolution of Test Design Experiment and test manually Write report Collect test cases Write test scripts Run scripts for regression testing Manual Design Automatic Execution Design testsfrom specification Write test scripts Run scripts for initial testing Automated Design Automatic Execution Writea model of specification Design tests and derive test scripts automatically
  • 8. Automated Test Design Model Based Testing (MBT) An ”umbrella” of approaches that can be used to generate tests from models Automated Test Design (ATD) An approach that uses system model driven MBT to design, document, and implement tests Enables Faster test development Improved test quality Wider test coverage & guaranteed requirement coverage Cost-effective test maintenance Earlier test validation & detection of specificatoin defects Independence from test execution environment
  • 9. Integration of Automated Test Design System Model Test Generation Test Execution Engine Test Script Test Adaptation System Under Test Test execution engine and adaptation can be reused “as is”!
  • 11. Manual vs. Automated Test Design Write test cases Run tests Design tests WaterfallManual Run Conformiq CQ Designer! Run tests Write model Waterfall Automated Agile Automated time Find and Fix more defects sooner
  • 12. Productivity Improvement 1X Manual test design 5X Automated Test Design in initial deployment 10–20X Automated Test Design in subsequent tested product iterations Source: average results from customer benchmarks
  • 13. 10–20X Elaborated Higher test quality The same model is the source of all tests easier to maintain Models are easier to review and communicate than test scripts Model components are easier to reuse, share and compose than test cases which are ”snapshots” 10–20X Automated Test Design in subsequent tested product iterations
  • 14. Lessdefects found by customer +400% productivity increasein test design(average of customer benchmarks) More available resources Shorterturnaround time Fasterintegration process Productivity Improvement as an Enabler
  • 17. ATD with Conformiq Designer Reads in system models and coverage criteria Automatically designs test input and expected output data and timer handling Renders automatically generated tests in chosen output format Imports models from 3rd party tools Integrated into Eclipse
  • 18. The System Model… Describes the correct (expected) operation of the IUT Should be kept as abstract as testing objectives Specified using Conformiq Modeling Language (QML) Is processed as an object-oriented computer program
  • 19. ConformiqModelingLanguage(QML) SystemBlock QML Model UML Diagrams Java-likeAction Language
  • 20. From the System Model to the ”Black Box” Synthesized Environment Synthesis Real System System Model
  • 21. Coverage Criteria supported by CQ Designer
  • 22. Test inputs Expected test outputs Test timings Sequence charts Executable test cases Traceability matrices Test dependency matrices Conformiq Designer Features Mathematically Generates Other Features Modeling in UML and Java-like notation Multiple, fully customizable output formats Import of UML diagrams from 3rd party tools Interactive workbench Integrated in Eclipse® framework
  • 23. Conformiq Designer Applicability Performance Testing Usability Testing
  • 25. Conformiq and TTCN-3 Conformiq Designer ships with an out-of-the-boxTTCN-3 generator Starting with Conformiq Designer 4.2 support for import of TTCN-3 types and constants for model specification Company has provided support for TTCN-3 generationsince 2002 Active in ETSI’s Technical Committee Methods for Testing and Specification (TC MTS) Home of TTCN-3
  • 26. Experiences with TTCN-3 Tools MessageMagic(Elvior) Titan (Ericsson proprietary) See T. Funke’s presentation at SQC 2009 General Test Runner (GTR) (Huawei proprietary) See X. Gao’s paper at TESTCOM 2008 TTworkbench(TestingTech) Tau Tester (Telelogic) Now part of IBM’s offering
  • 27.
  • 30. More efficient test suite maintenance
  • 31. Easier test artefact review, reuse and sharing
  • 32.
  • 33. Application and test tool independent
  • 34. Well known and accepted in industry
  • 35.
  • 36. A closer look at the TTCN-3 Test Cases TTCN-3 Harness (manuallywritten) TTCN-3 Test SystemInterface (existing) Conformiq DesignerGenerated TTCN-3Test Cases TestAdaptation
  • 37. A Test Harness Implementation Example Conformiq Designer generates TTCN-3 function calls (in test case) The function is implemented by the TTCN-3 Harness f_send_SIPRequest_to_netIn( c_SIPRequest15 ); // Finalize and transform SIP request to TTCN-3 type // structure if different from the one used by model function f_send_SIPRequest_to_netIn( in SIPRequestp_req ) runs on CQ_MTC { var TTCN3_SIP_Request v_TTCNReq; v_TTCNReq:= f_prepare_send_SIPRequest( p_req); netIn.send( v_TTCNReq); }
  • 38. Test Harness - Preparation before Sending functionf_prepare_send_SIPRequest ( in SIPRequestp_req ) runs on CQ_MTC return TTCN3_SIP_Request { // 1. Finalize headers p_req.callId := f_send_add_nonce_to_callId( p_req.callId ); p_req.CSeq := f_send_add_nonce_to_cSeq( p_req.Cseq ); p_req.from_ := f_send_add_nonce_to_from_tag( p_req.from_ ); // 2. Replace CQ Designer generated symbolic values in headers // with values at runtime p_req.via := f_send_restore_via_branch( p_req.via ); p_req.to_ := f_send_restore_to_tag( p_req.to_ ); // transform from abstract to TTCN-3 type structure if needed return f_SIPRequest_transform2t3( p_req ); }
  • 39. Test Harness - Preparation after Receiving functionf_prepare_and_match_SIPRequest ( in SIPRequestp_expReq,in TTCN3_SIP_Request p_rcvTTCNReq ) runs on CQ_MTC returnSIPRequest { // 1. transform from TTCN-3 to abstract type structure if needed varSIPRequestv_rcvReq := f_SIPRequest_transform2cq( p_rcvTTCNReq ); // 2. Store key values later needed in sending and replace // them with “generated values" for matching. v_rcvReq.via := f_recv_store_via_branch( v_expReq.via,v_rcvReq.via ); v_rcvReq.to_ := f_recv_store_to_tag( v_expReq.to_, v_rcvReq.to_ ); // 3. For matching purposes replace runtime header information v_rcvReq.callId := f_recv_remove_nonce_from_callId( v_rcvReq.callId ); v_rcvReq.CSeq := f_recv_remove_nonce_from_cSeq( v_rcvReq.Cseq ); v_rcvReq.from_ := f_recv_remove_nonce_from_from( v_rcvReq.from_ ); returnv_rcvReq; }
  • 40. Testing of a SIP User Agent Client: a Walkthrough
  • 41. Testing of a SIP User Agent Task: Test basic call functionality of a SIP User Agent Client Basis: Create system model directly from IETF RFC 3261 “SIP: Session Initiation Protocol” System Under Test:A normal phone or a soft client
  • 42. SIP User Agent and its Environment Make a call to... SIP User Agent Server User Network User Interfaced SUT Network Interface SIP User Agent Client SIP Proxy
  • 43. Tested Functionality Call establishment (“SIP INVITE”) Call termination (“SIP BYE”) caller-initiated callee-initiated Call cancelation (“SIP CANCEL”) Timers re-transmission transaction
  • 44. Modeled Requirements The SIP User Agent Client must: Establish a session with SIP ACK request Terminate a session with SIP BYE request Confirm a SIP BYE request with a SIP 200 OK response Re-send an SIP INVITE request after timeout A Terminate an SIP INVITE request after timeout B Re-send a SIP BYE request after timeout E Re-send SIP CANCEL request after timeout E Terminate a SIP BYE request after timeout F Terminate a SIP CANCEL request after timeout F
  • 45. The Modeled System Interface UserOutput: ”ringing”, ”call ended””call established”,”timeout” UserInput: ”call”, ”hang up”, ”cancel” SIPRequest: ”BYE” SIPResponse: “180 Ringing”, ”200 OK”, ”486 Busy Here”, ”487 Request Terminated” UI SIP User Agent Client Network SIPRequest: “ACK”, “BYE”, ”CANCEL”, ”INVITE” SIPResponse: ”200 OK”
  • 46. QML System Block and Message Definition system { Inbound userIn : UserInput; Outbound userOut : UserOutput; Inbound netIn : SIPResponse, SIPRequest; Outbound netOut : SIPResponse, SIPRequest; } record SIPRequest { SIPRequestLinestartLine; HeaderFieldCallIdcallId; HeaderFieldContact contact; HeaderFieldCSeqcSeq; HeaderFieldFrom from; HeaderFieldMaxForwardsmaxForwards; HeaderFieldTo to; HeaderFieldVia via; String msgbody; }
  • 49.
  • 50.
  • 57. Results: Test Steps and Test Data
  • 58. Results: Test Case Dependency Matrix
  • 59. Rendering the Tests as TTCN-3
  • 60. TTCN-3 Test Case CQ Designer Test Case View Rendered TTCN-3 Test Case testcase tc_12() runs on CQ_MTC systemMyTSI { var float v_last_timeout := 0.0; var default v_cq_default_ref; f_start_test_case(); v_cq_default_ref:= activate(a_cq_default()); f_send_UserInput_to_userIn(m_UserInput92); t_cq_timer.start((0.0 - v_last_timeout) + mp_timeout_slack); f_receive_SIPRequest_from_netOut(m_expectedSIPRequest93); t_cq_timer.stop; v_lastTimeout := 0.0; f_send_SIPResponse_to_netIn(m_SIPResponse94); t_cq_timer.start((0.0 - v_last_timeout) + mp_timeout_slack); f_receive_UserOutput_from_userOut(m_expectedUserOutput95); t_cq_timer.stop; v_lastTimeout := 0.0; f_send_SIPResponse_to_netIn(c_SIPResponse96); t_cq_timer.start((0.0 - v_last_timeout) + mp_timeout_slack); f_receive_SIPRequest_from_netOut(m_expectedSIPRequest97); t_cq_timer.stop; v_lastTimeout := 0.0; log(“requirement: 13.2.2.4 2xx Response/UAC core establishes session with ACK”) ... }
  • 61. TTCN-3 Test Data Message Data in CQ Designer Rendered TTCN-3 message template SIPRequest m_SIPRequest93 := { startLine := { method := "INVITE", requestURI := "sip:100@127.0.0.1:5061" }, callId := { callId := "#SYSTEM_GENERATED_1_" }, contact := { addr := "sip:150@127.0.0.1:5062" }, cSeq := { sequenceNumber := "#SYSTEM_GENERATED_2_", requestMethod := "INVITE" }, from_ := { addr := "sip:150@127.0.0.1:5061", tag := "#SYSTEM_GENERATED_3_" }, maxForwards := 70, ... }
  • 62. Conclusions System model driven Automated Test Design offers significant gains in productivity Faster test development and improved test quality Wider test coverage and guaranteed requirement coverage Cost-effective maintenance Earlier test validation & detection of specification defects Independence from test execution environments By combining Conformiq Designer with TTCN-3 you get the best of both worlds: All the benefits of Automated Test Design A well-defined and standardized environment for test execution
  • 63. Q&A
  • 64. Contact Information Jani Koivulainen Director, Customer Success jani.koivulainen@conformiq.com +358408654351 http://www.conformiq.com