© LogicaCMG 2006. All rights reserved Erik Altena Jos van Rooyen Leon Wolters Towards a Keyword-Driven Test Presentation Format using TestFrame.

Slides:



Advertisements
Similar presentations
Programming Languages for End-User Personalization of Cyber-Physical Systems Presented by, Swathi Krishna Kilari.
Advertisements

Comparing TTCN-3 and TTCN-2 TTCN-3 User Conference May 3 rd -May 5 th,2004 Sophia Antipolis.
Test Case Management and Results Tracking System October 2008 D E L I V E R I N G Q U A L I T Y (Short Version)
The Use of TTCN-3 for Software Testing Ina Schieferdecker FOKUS, Berlin
Key-word Driven Automation Framework Shiva Kumar Soumya Dalvi May 25, 2007.
TTCN-3 Test Case Generation from arbitrary traces Capture & Replay Bogdan Stanca-Kaposta & Theofanis Vassiliou-Gioles (Testing Technologies)
IEC Substation Configuration Language and Its Impact on the Engineering of Distribution Substation Systems Notes Dr. Alexander Apostolov.
From Natural Language Requirements to Executable Models of Software Components.
1 Introduction to Software Engineering Lecture 42 – Communication Skills.
Copyright © 2004, GemStone Systems Inc. All Rights Reserved. A Capstone with GemStone David Whitlock October 25, 2004.
COMP205 Comparative Programming Languages Part 1: Introduction to programming languages Lecture 3: Managing and reducing complexity, program processing.
 2006 Pearson Education, Inc. All rights reserved Introduction to Classes and Objects.
1 An Introduction to Visual Basic Objectives Explain the history of programming languages Define the terminology used in object-oriented programming.
Introduction to Software Testing
“GENERIC SCRIPT” Everything can be automated, even automation process itself. “GENERIC SCRIPT” Everything can be automated, even automation process itself.
Jos van Rooyen Erik Altena Leon Wolters TTCN-3 in the Financial Domain.
SpecFlow & Gherkin Behavior Driven Development. Definitions Behavior Driven Development SpecFlow Structure Gerkin Demo Agenda.
1 1 Roadmap to an IEPD What do developers need to do?
CSC 8310 Programming Languages Meeting 2 September 2/3, 2014.
Chapter 6– Artifacts of the process
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14Slide 1 Design with Reuse l Building software from reusable components.
Programming Languages and Paradigms Object-Oriented Programming.
 2003 Prentice Hall, Inc. All rights reserved. 1 Introduction to Classes and Objects Outline Introduction Classes, Objects, Member Functions and Data.
A. Mednonogov / Helsinki University of Technology / Conformance Testing of CORBA Services Using TTCN / / Page 1 Conformance Testing of CORBA Services.
© 2012 WIPRO LTD | 1 Version 1.0a, 23 rd April 2012 TTCN-3 Users Conference Practical integration of TTCN-3 with Robot test automation framework.
Zhonghua Qu and Ovidiu Daescu December 24, 2009 University of Texas at Dallas.
© 2012 LogiGear Corporation. All Rights Reserved Robot framework.
1 Copyright ©2004 TAC. 2 T-WorMS Adding Sanity to Your Process Jamie L. Mitchell CTO TAC.
Capture and Replay Often used for regression test development –Tool used to capture interactions with the system under test. –Inputs must be captured;
OHTO -99 SOFTWARE ENGINEERING LECTURE 5 Today: - An overview to OO Analysis and OO Design - Introduction of Assignment 2.
2nd TTCN-3 User Conference, June The TTCN-3 Metamodel – A Basis for Tool Integration Ina Schieferdecker TU Berlin/Fraunhofer Fokus Hajo Eichler,
Exploring an Open Source Automation Framework Implementation.
© Copyright 2011 John Wiley & Sons, Inc.
Lecture 1 Introduction Figures from Lewis, “C# Software Solutions”, Addison Wesley Richard Gesick.
1 Introduction to Classes and Objects Chapter 3 Introduction to Classes and Objects Chapter 3.
Test Automation For Web-Based Applications Portnov Computer School Presenter: Ellie Skobel.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
A – TEAM Automation Framework A-TEAM. LOGIN CREATE INDEMNITY CLAIM SET RESERVE UPDATE INDEMNITY CLAIM MAKE PAYMENT Demonstration.
Chapter 4 Introduction to Classes, Objects, Methods and strings
Introduction to c++ programming - object oriented programming concepts - Structured Vs OOP. Classes and objects - class definition - Objects - class scope.
Chapter 5 System Modeling. What is System modeling? System modeling is the process of developing abstract models of a system, with each model presenting.
Yu, et al.’s “A Model-Driven Development Framework for Enterprise Web Services” In proceedings of the 10 th IEEE Intl Enterprise Distributed Object Computing.
Object-Oriented Programming: Classes and Objects Chapter 1 1.
TTCN-3 Testing and Test Control Notation Version 3.
CONTROL-M Training At Global Online Trainings IND: Skype: Global.onlinetrainings USA:
Software test automation with UML2.0 TestingProfile & TTCN-3 Maili Markvardt.
Page 1 Hitachi Ltd. – FhI FOKUS TTCN-3 User Conference, June 2005 MDA based approach for generation of TTCN-3 test specifications Hideto Ogawa, Hitachi.
XML-based Representation of Test Cases for Distributed Systems Alexander Kraas 7. October 2008.
IS 350 Course Introduction. Slide 2 Objectives Identify the steps performed in the software development life cycle Describe selected tools used to design.
Data Virtualization Tutorial: Introduction to SQL Script
Object-Oriented Programming: Classes and Objects
TTCN CONFORMANCE TEST SUITE TTCN-3 Part 1 & Part 9 STF 487 MILESTONE 2
Mastering UML with Rational Rose 2002
Software Testing With Testopia
Extension Package: Behaviour Types
Data Virtualization Tutorial: JSON_TABLE Queries
Service-centric Software Engineering
Introduction to Software Testing
TDL: The ETSI Test Description Language
Course: Module: Lesson # & Name Instructional Material 1 of 32 Lesson Delivery Mode: Lesson Duration: Document Name: 1. Professional Diploma in ERP Systems.
TDL: The ETSI Test Description Language
Typical Workflow - today
Implementing the Standardised Mapping of TDL to TTCN-3
Experience with the process automation at SORS
Using Customer feedback for Automated Test-suite
On the notion of Variability in Software Product Lines
Classes CS 21a: Introduction to Computing I
Chapter 5 Architectural Design.
TDL: The ETSI Test Description Language
Presentation transcript:

© LogicaCMG All rights reserved Erik Altena Jos van Rooyen Leon Wolters Towards a Keyword-Driven Test Presentation Format using TestFrame

2 Agenda Introduction TestFrame method and TTCN-3 TestFrame Language keyword-driven Mapping on TTCN-3 mapping language elements Translation demo the bigger picture Further work future, conclusions

Towards a Keyword-Driven Test Presentation Format using TestFrame 3 WHAT: analysis HOW: automation WHY WHERE WHEN test management Introduction TestFrame is a methodology for structured software testing. Its basic premise is the separation between what to test and how to test it Test analysis (what) is separated from its technical implementation (how) TestFrame methodology for structured testing

Towards a Keyword-Driven Test Presentation Format using TestFrame 4 Introduction Test analysis focuses on the test logic; specified with keywords. Written down in its own TestFrame Language (TFL). Keywords can be reused with different test data. transfer moneydeposit cashwithdraw cash TestFrame Language (TFL) transfer money deposit cash withdraw cash

Towards a Keyword-Driven Test Presentation Format using TestFrame 5 function transfer_money { transfer “ “; from “you”; to “me”; } Introduction TFL is a test tool independent test language. During test automation each keyword receives its technical implementation in the chosen test tool. Processing requires an off-the-shelf or tool-specific TestFrame Engine TestFrame Language (TFL) transfer money deposit cash withdraw cash Test execution tool engine function deposit_cash { deposit “ ”; on account “me”; } function withdraw_cash { withdraw “ ”; from account “you”; }

Towards a Keyword-Driven Test Presentation Format using TestFrame 6 Introduction TestFrame and TTCN-3 are both used for test specification. Each has its strengths… …that suit some domains better than others. When combined they will appeal to more types of testers from more domains. High-level coordination Detailed specification Small core language Large core language User friendly specification format Distributed set-ups

Towards a Keyword-Driven Test Presentation Format using TestFrame 7 Agenda Introduction TestFrame method and TTCN-3 TestFrame Language keyword-driven Mapping on TTCN-3 mapping language elements Translation demo the bigger picture Further work future, conclusions

Towards a Keyword-Driven Test Presentation Format using TestFrame 8 TestFrame Language TestFrame test scripts are usually written in a spreadsheet program. These sheets are translated to tab- delimited text files, called clusters. Clusters are written in TestFrame Language (TFL). clusterTFL_basics authorErik Altena version1.0 Application start applicationHome Bank UserPassword log inEA1234welcome test caseTFB_1 Balance get balance&Keep(start_bal) To accountAmountDescription transfer money ,00 Borrowed transfer money ,88 Rent Balance check balance&startbal - 678,88 log out Close the application manually after failure! Application stop applicationHome Bank

Towards a Keyword-Driven Test Presentation Format using TestFrame 9 TestFrame Language Each test line starts with a keyword. All following fields contain parameters. Test lines without a keyword are ignored or used for parameter names.

Towards a Keyword-Driven Test Presentation Format using TestFrame 10 TestFrame Language Pre-defined keywords for test control: reporting structuring calling subclusters flow-of-control data transfer, etc. Keywords that are user-defined describe the test procedure. reporting structuring user-defined

Towards a Keyword-Driven Test Presentation Format using TestFrame 11 Agenda Introduction TestFrame method and TTCN-3 TestFrame Language keyword-driven Mapping on TTCN-3 mapping language elements Translation demo the bigger picture Further work future, conclusions

Towards a Keyword-Driven Test Presentation Format using TestFrame 12 Mapping on TTCN-3 Basic mapping: text file (cluster) = module test case = test case keyword = function call literal parameter = actual value parameter variable = variable with its definition clusterTFL_basics authorErik Altena version1.0 Application start applicationHome Bank UserPassword log inEA1234welcome test caseTFB_1 Balance get balance&Keep(start_bal) To accountAmountDescription transfer money ,00 Borrowed transfer money ,88 Rent Balance check balance&startbal - 678,88 log out Close the application manually after failure! Application stop applicationHome Bank module TFL_basics { } testcase TFB_1() { } control () { execute(TFB_1()); } } module TFL_basics { testcase TFB_1() { get_balance(); transfer_money(); check_balance(); log_out(); stop_application(); } control () { tfl_header_cluster(); tfl_header_author(); tfl_header_version(); start_application(); log_in(); execute(TFB_1()); } } module TFL_basics { import from Keywords all; testcase TFB_1() { get_balance(); transfer_money(); check_balance(); log_out(); stop_application(); } control () { tfl_header_cluster(); tfl_header_author(); tfl_header_version(); start_application(); log_in(); execute(TFB_1()); } } module TFL_basics { import from Keywords all; testcase TFB_1() { get_balance(); transfer_money(“ ”, “25,00”, “Borrowed); transfer_money(“ ”, “653,88”, “Rent”); check_balance(); log_out(); stop_application(“Home Bank”); } control () { tfl_header_cluster(“TFL_basics”); tfl_header_author(“Erik Altena”); tfl_header_version(“1.0”); start_application(“Home Bank”); log_in(“EA1234”, “welcome”); execute(TFB_1()); } } module TFL_basics { import from Keywords all; testcase TFB_1() { var float start_bal; get_balance(start_bal); transfer_money(“ ”, “25,00”, “Borrowed); transfer_money(“ ”, “653,88”, “Rent”); check_balance(start_bal – 678,88); log_out(); stop_application(“Home Bank”); } control () { tfl_header_cluster(“TFL_basics”); tfl_header_author(“Erik Altena”); tfl_header_version(“1.0”); start_application(“Home Bank”); log_in(“EA1234”, “welcome”); execute(TFB_1()); } }

Towards a Keyword-Driven Test Presentation Format using TestFrame 13 Mapping on TTCN-3 Some challenges: implicit ends of structures no real support for distributed testing implicit data types pre-defined keywords clusters can call each other data transfer explicit data type explicit end support for distr. testing support for distr. testing explicit end implemented in separate module

Towards a Keyword-Driven Test Presentation Format using TestFrame 14 Mapping on TTCN-3 Mapping clusters on modules gave a problem in clusters calling each other. Module control parts cannot call each other, but functions can. When each module control only calls a control function, these control functions can call each other. module Work { import from Keywords all; import from TestSystemDef all; import from SupportTFL all; ControlFromWork() { tfl_header_cluster(“Work”); tfl_header_author(“Erik Altena”); tfl_header_version(“1.0”); ControlFromGet_coffee(); ControlFromChangeSpreadsheet(); ControlFromLunch(); ControlFromGet_coffee(); ControlFromAttend_meetings(); } control () { ControlFromWork(); } module Attend_meetings { import from Keywords all; import from TestSystemDef all; import from SupportTFL all; testcase Progress runs on PrTC system PrSC { … } ControlFromAttend_meetings() { … execute(Progress()); } control () { ControlFromAttend_meetings(); }

Towards a Keyword-Driven Test Presentation Format using TestFrame 15 Mapping on TTCN-3 TFL additions: explicit ends of structures explicit data type declaration incorporating test system info (extra test case parameters and new pre-defined keywords) clusterTFL_basics authorErik Altena version1.4 Application start applicationHome Bank UserPassword log inEA1234welcome test caseTFB_1HBTCHBSC ComponentRuns onSystem mapselfopPortClientopPortSystem Balance get balance&Keep([float] start_bal) To accountAmountDescription transfer money ,00 Borrowed transfer money ,88 Rent Balance check balance&startbal - 678,88 ComponentRuns onSystem unmapselfopPortClientopPortSystem end test case log out Close the application manually after failure! Application stop applicationHome Bank module TFL_basics { import from Actionwords all; import from TestSystemDef all; import from SupportTFL all; testcase TFB_1() runs on HBTC system HBSC { var float start_bal; map(self:opPortClient, system:opPortSystem); get_balance(start_bal); transfer_money(" ", "25,00", "Borrowed"); transfer_money(" ", "653,88", "Rent"); check_balance(startbal - 678,88); unmap(self:opPortClient, system:opPortSystem); } function ControlFromTFL_basics() { tfl_header_cluster("TFL_basics"); tfl_header_author("Erik Altena"); tfl_header_version("1.4"); start_application("Home Bank"); log_in("EA1234", "welcome"); execute(TFB_1()); log_out(); stop_application("Home Bank"); } control { ControlFromTFL_basics(); }

Towards a Keyword-Driven Test Presentation Format using TestFrame 16 Agenda Introduction TestFrame method and TTCN-3 TestFrame Language keyword-driven Mapping on TTCN-3 mapping language elements Translation demo the bigger picture Further work future, conclusions

Towards a Keyword-Driven Test Presentation Format using TestFrame 17 Translation demonstration TestFrame clusters can automatically be translated into TTCN-3 modules. Pre-defined keywords are provided by including a TFL- module. User-defined keywords have their user-defined function implementation. clusterTFL_basics authorErik Altena version1.4 Application start applicationHome Bank UserPassword log inEA1234welcome test caseTFB_1HBTCHBSC ComponentRuns onSystem mapselfopPortClientopPortSystem Balance get balance&Keep([float] start_bal) To accountAmountDescription transfer money ,00 Borrowed transfer money ,88 Rent Balance check balance&startbal - 678,88 ComponentRuns onSystem unmapselfopPortClientopPortSystem end test case log out Close the application manually after failure! Application stop applicationHome Bank module TFL_basics { import from Actionwords all; import from TestSystemDef all; import from SupportTFL all; testcase TFB_1() runs on HBTC system HBSC { var float start_bal; map(self:opPortClient, system:opPortSystem); get_balance(start_bal); transfer_money(" ", "25,00", "Borrowed"); transfer_money(" ", "653,88", "Rent"); check_balance(startbal - 678,88); unmap(self:opPortClient, system:opPortSystem); } function ControlFromTFL_basics() { tfl_header_cluster("TFL_basics"); tfl_header_author("Erik Altena"); tfl_header_version("1.4"); start_application("Home Bank"); log_in("EA1234", "welcome"); execute(TFB_1()); log_out(); stop_application("Home Bank"); } control { ControlFromTFL_basics(); }

Towards a Keyword-Driven Test Presentation Format using TestFrame 18 Agenda Introduction TestFrame method and TTCN-3 TestFrame Language keyword-driven Mapping on TTCN-3 mapping language elements Translation demo the bigger picture Further work future, conclusions

Towards a Keyword-Driven Test Presentation Format using TestFrame 19 Further work For a complete keyword-driven test presentation format the language mapping must be bi-directional. All TTCN-3 language elements could be supported in the keyword format. A subset however will increase readability. ASN.1 Core Notation IDL XML other types & values Tabular format Graphical format other presentation formats TestFrame Language Keyword format

Towards a Keyword-Driven Test Presentation Format using TestFrame 20 TestFrame test specification is on a higher abstract level. After translation to TTCN-3 and execution, the logging/reporting should have the same higher abstract level. test management test logging component handler codec platform adapter SUT adapter test executable ? Further work

Towards a Keyword-Driven Test Presentation Format using TestFrame 21 Further work TestFrame separates test logic from its technical implementation. TTCN-3 separates test specification from its implementation. Combined, TTCN-3 could separate test logic from technical specification and implementation. test tool test tool implementation specification test logic implementation test logic specificationimplementationtest logic

Towards a Keyword-Driven Test Presentation Format using TestFrame 22 Conclusions TTCN-3 can have a presentation format on a high-level of abstraction. A keyword-driven presentation format would increase re-usability. More work needs to be done on the bi-directional mapping. More work needs to be done on the logging format.

Towards a Keyword-Driven Test Presentation Format using TestFrame 23 Thank you!