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

Automation testing strategy, approach & planning
Automation testing  strategy, approach & planningAutomation testing  strategy, approach & planning
Automation testing strategy, approach & planning
SivaprasanthRentala1975
 
Exploratory testing
Exploratory testingExploratory testing
Exploratory testing
Huib Schoots
 

What's hot (20)

Automation testing strategy, approach & planning
Automation testing  strategy, approach & planningAutomation testing  strategy, approach & planning
Automation testing strategy, approach & planning
 
Selecting the Right Automated Testing tool
Selecting the Right Automated Testing tool Selecting the Right Automated Testing tool
Selecting the Right Automated Testing tool
 
Driving Pipeline Automation With Newman and the Postman API
Driving Pipeline Automation With Newman and the Postman APIDriving Pipeline Automation With Newman and the Postman API
Driving Pipeline Automation With Newman and the Postman API
 
Agile Testing Framework - The Art of Automated Testing
Agile Testing Framework - The Art of Automated TestingAgile Testing Framework - The Art of Automated Testing
Agile Testing Framework - The Art of Automated Testing
 
Managing code quality with SonarQube
Managing code quality with SonarQubeManaging code quality with SonarQube
Managing code quality with SonarQube
 
Automation Testing
Automation TestingAutomation Testing
Automation Testing
 
Exploratory testing
Exploratory testingExploratory testing
Exploratory testing
 
Automation testing
Automation testingAutomation testing
Automation testing
 
Transform Software Testing and Quality with the Neotys-Inflectra Platform
Transform Software Testing and Quality with the Neotys-Inflectra PlatformTransform Software Testing and Quality with the Neotys-Inflectra Platform
Transform Software Testing and Quality with the Neotys-Inflectra Platform
 
ISTQB Foundation Level Basic
ISTQB Foundation Level BasicISTQB Foundation Level Basic
ISTQB Foundation Level Basic
 
Testing Your APIs: Postman, Newman, and Beyond
Testing Your APIs: Postman, Newman, and BeyondTesting Your APIs: Postman, Newman, and Beyond
Testing Your APIs: Postman, Newman, and Beyond
 
Test automation within a scrum process
Test automation within a scrum processTest automation within a scrum process
Test automation within a scrum process
 
Requirements prioritization
Requirements prioritizationRequirements prioritization
Requirements prioritization
 
Automated Testing vs Manual Testing
Automated Testing vs Manual TestingAutomated Testing vs Manual Testing
Automated Testing vs Manual Testing
 
Product Quality: Metrics, Verification, Validation, Testing
Product Quality: Metrics, Verification, Validation, TestingProduct Quality: Metrics, Verification, Validation, Testing
Product Quality: Metrics, Verification, Validation, Testing
 
01 tester training - overview
01  tester training - overview01  tester training - overview
01 tester training - overview
 
Cypress Best Pratices for Test Automation
Cypress Best Pratices for Test AutomationCypress Best Pratices for Test Automation
Cypress Best Pratices for Test Automation
 
Introduction to Automation Testing
Introduction to Automation TestingIntroduction to Automation Testing
Introduction to Automation Testing
 
End to end testing - strategies
End to end testing - strategiesEnd to end testing - strategies
End to end testing - strategies
 
Test Automation
Test AutomationTest Automation
Test Automation
 

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

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Recently uploaded (20)

Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
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
 
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
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
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
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
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
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 

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