Generating test cases specifications for BPEL compositions of web services using SPIN José García-Fanjul, Javier Tuya, and Claudio de la Riva Pointner.

Slides:



Advertisements
Similar presentations
Access control for geospatial information objects using/extending the eXtensible Access Control Markup Language Andreas Matheus, Technische Universität.
Advertisements

SJS SDI_141 Design of Statistical Investigations Stephen Senn 14 Case Control Studies.
Session 141 Comparative Emergency Management Session 14 Slide Deck.
Auto-Generation of Test Cases for Infinite States Reactive Systems Based on Symbolic Execution and Formula Rewriting Donghuo Chen School of Computer Science.
Web Service Composition Prepared by Robert Ma February 5, 2007.
Chapter 19 – Service-oriented Architecture
Advanced Information Systems Laboratory Department of Computer Science and Systems Engineering Müesteraner GI-Tage 03 GIS COTS.
Discrete Mathematics Lecture 3
MSc IT UFCE8K-15-M Data Management Prakash Chatterjee Room 2Q18
Copyright © 2008 Cengage Learning Understanding Generalist Practice, 5e, Kirst-Ashman/Hull 137.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 31 Slide 1 Service-centric Software Engineering 1.
CS 245Notes 141 CS 245: Database System Principles Notes 14: Coping with Limited Capabilities of Sources Hector Garcia-Molina.
CS 267: Automated Verification Lecture 8: Automata Theoretic Model Checking Instructor: Tevfik Bultan.
Formalization of Health Information Portability and Accountability Act (HIPAA) Simon Berring, Navya Rehani, Dina Thomas.
CS 290C: Formal Models for Web Software Lecture 3: Verification of Navigation Models with the Spin Model Checker Instructor: Tevfik Bultan.
Budapest University of Technology and EconomicsDagstuhl 2004 Department of Measurement and Information Systems 1 Towards Automated Formal Verification.
Java Script Session1 INTRODUCTION.
CS 290C: Formal Models for Web Software Lecture 4: Implementing and Verifying Statecharts Specifications Using the Spin Model Checker Instructor: Tevfik.
Formal verification in SPIN Karthikeyan Bhargavan, Davor Obradovic CIS573, Fall 1999.
/ PSWLAB P ROMELA Semantics from “THE SPIN MODEL CHECKER” by G. J. Holzmann Presented by Hong,Shin 5 th Oct :021PROMELA Semantics.
© 2011 Carnegie Mellon University SPIN: Part /614 Bug Catching: Automated Program Verification Sagar Chaki April 21, 2014.
Computer Science 101 Overview of Algorithms. Example: Make Pancakes Prepare batter Beat 2 eggs Add 1 tablespoon of brown sugar Add 1 cup of milk Add 2.
The Spin Model Checker Promela Introduction Nguyen Tuan Duc Shogo Sawai.
1 Spin Model Checker Samaneh Navabpour Electrical and Computer Engineering Department University of Waterloo SE-464 Summer 2011.
An Automata-based Approach to Testing Properties in Event Traces H. Hallal, S. Boroday, A. Ulrich, A. Petrenko Sophia Antipolis, France, May 2003.
Generation of Conformance Test Suites for Compositions of Web Services Using Model Checking José García-Fanjul, Claudio de la Riva and Javier Tuya University.
Web Ontology Language for Service (OWL-S). Introduction OWL-S –OWL-based Web service ontology –a core set of markup language constructs for describing.
An Overview of Web Service Standards Tevfik Bultan Department of Computer Science University of California, Santa Barbara.
Model Checking. Used in studying behaviors of reactive systems Typically involves three steps: Create a finite state model (FSM) of the system design.
Visual Formal Methods R J Walters. Introduction Motivation The Language The tools An example Conclusion.
1 Carnegie Mellon UniversitySPINFlavio Lerda SPIN An explicit state model checker.
IBM WebSphere survey Kristian Bisgaard Lassen. University of AarhusIBM WebSphere survey2 Tools  WebSphere Application Server Portal Studio Business Integration.
Business Process Orchestration
Developing Verifiable Concurrent Software Tevfik Bultan Department of Computer Science University of California, Santa Barbara
BPEL (Business Process Execution Language)
Guide To UNIX Using Linux Third Edition
Automata and Formal Lanugages Büchi Automata and Model Checking Ralf Möller based on slides by Chang-Beom Choi Provable Software Lab, KAIST.
System-Level Types for Component-Based Design Paper by: Edward A. Lee and Yuhong Xiong Presentation by: Dan Patterson.
Cheng/Dillon-Software Engineering: Formal Methods Model Checking.
Timed UML State Machines Ognyana Hristova Tutor: Priv.-Doz. Dr. Thomas Noll June, 2007.
Introduction to Software Testing Chapter 9.4 Model-Based Grammars Paul Ammann & Jeff Offutt
Module 14: WCF Send Adapters. Overview Lesson 1: Introduction to WCF Send Adapters Lesson 2: Consuming a Web Service Lesson 3: Consuming Services from.
BPEL4WS (Business Process Execution Language for Web Services) Nirmal Mukhi Component Systems Department IBM Research.
Web services sub-team report CPPA June ’02 F2F Reston, Virginia.
1 The CeNTIE project is supported by the Australian Government through the Advanced Networks Program of the Department of Communications, Information Technology.
CS6133 Software Specification and Verification
An Ontological Framework for Web Service Processes By Claus Pahl and Ronan Barrett.
The GOOD the BAD the UGLY WS-CDL: the GOOD the BAD the UGLY.
95-843: Service Oriented Architecture 1 Master of Information System Management Service Oriented Architecture Lecture 7: BPEL Some notes selected from.
Temporal Logic Model-checking with SPIN
Course: COMS-E6125 Professor: Gail E. Kaiser Student: Shanghao Li (sl2967)
ODS – Introduction to Web Services and BPEL Vakgroep Informatietechnologie Web Services & BPEL Design of Distributed Software.
/ PSWLAB S PIN Search Optimization from “THE SPIN MODEL CHECKER” by G. Holzmann Presented by Hong,Shin 23 th Nov SPIN Search.
Modelling and Analysis of Time-related Properties in Web Service Compositions Raman KazhamiakinParitosh K. PandyaMarco Pistore
Software Systems Verification and Validation Laboratory Assignment 4 Model checking Assignment date: Lab 4 Delivery date: Lab 4, 5.
Compilation of XSLT into Dataflow Graphs for Web Service Composition Peter Kelly Paul Coddington Andrew Wendelborn.
Today’s Agenda  Quiz 4  Temporal Logic Formal Methods in Software Engineering1.
SE 548 Process Modelling WEB SERVICE ORCHESTRATION AND COMPOSITION ÖZLEM BİLGİÇ.
Review A program is… a set of instructions that tell a computer what to do. Programs can also be called… software. Hardware refers to… the physical components.
1 Seminar on SOA Seminar on Service Oriented Architecture BPEL Some notes selected from “Business Process Execution Language for Web Services” by Matjaz.
Business Process Execution Language (BPEL) Pınar Tekin.
Sabri Kızanlık Ural Emekçi
Formal verification in SPIN
Web Ontology Language for Service (OWL-S)
Service-centric Software Engineering
Service-centric Software Engineering 1
Introduction to Software Planning and Design
A Refinement Calculus for Promela
CSE 503 – Software Engineering
Presentation transcript:

Generating test cases specifications for BPEL compositions of web services using SPIN José García-Fanjul, Javier Tuya, and Claudio de la Riva Pointner Stefan Pointner StefanAK Softwaretechnologie 1 WS 2013/141

Contents Introduction Specification of web services compositions with BPEL Overview of the generation of test cases specifications Transforming BPEL specifications into PROMELA Using SPIN to generate test case specifications Conclusion AK Softwaretechnologie 1 WS 2013/142Pointner Stefan

Introduction Web as a Commercial Channel Certain exchange protocol XML Software with XML as Input and Output XML based Web Services Distributed Asynchronous Platform independent Low coupled Pointner StefanAK Softwaretechnologie 1 WS 2013/143

Introduction Compositions of Web Services Business Process Execution Language (BPEL) Testing Web Services Asynchronous behavior Distribution Availability Lack of user Interface Pointner StefanAK Softwaretechnologie 1 WS 2013/144

Specification of WS with BPEL XML-Documents Declarations Specifications Declarations Partners Variables Specification Basic Activities (Assign, Invoke, Receive) Structured Activities (Sequence, Flow, While) Pointner StefanAK Softwaretechnologie 1 WS 2013/145

BPEL Example Pointner StefanAK Softwaretechnologie 1 WS 2013/146

<variable name="riskAssessment" messageType="asns:riskAssessmentMessage"/> [...] [...] [...]... Pointner StefanAK Softwaretechnologie 1 WS 2013/147

<invoke name="invokeAssessor" partner="assessor" portType="asns:riskAssessmentPT" operation="check" inputVariable="request" outputVariable="riskAssessment"> <source linkName="assess-to-setMessage" transitionCondition= "bpws:getVariableData(riskAssessment, risk)=low"/> <source linkName="assess-to-approval" transitionCondition=" bpws:getVariableData(riskAssessment, risk)!=low"/> [...] Pointner StefanAK Softwaretechnologie 1 WS 2013/148

Business Process Pointner StefanAK Softwaretechnologie 1 WS 2013/149

Test case specification generation Simple Promela Interpreter – SPIN LTL Formulae used for Property-specification How it works? SPIN searches all possible states within the model Checks whether the properties hold If not gives a Counter Example Generate Test Cases with SPIN Transform Counter Example to Test Cases Process/Protocol Meta Language – PROMELA Describes models of distributed Systems Pointner StefanAK Softwaretechnologie 1 WS 2013/1410

Test case specification generation 1.Composition Under Test (CUT) is transformed into PROMELA 2.Transitions are identified 3.Mapping Transitions onto the Model 4.Transition expressed as LTL Property 5.Run SPIN with the Model and the Input LTL-Properties 6.Generate Test Cases with the produced Counter Example Pointner StefanAK Softwaretechnologie 1 WS 2013/1411

Test case specification generation Pointner StefanAK Softwaretechnologie 1 WS 2013/1412

Transforming BPEL specifications into PROMELA PROMELA also includes BPEL-partners BPEL portTypes transformed to PROMELA message channels chan loanassessor_riskPort_IN = [QLENGTH] of {byte, byte, byte}; Input and Output channel Message Types are declared as typedefs Invoke Activity = ! Receive Activity = ? Pointner StefanAK Softwaretechnologie 1 WS 2013/1413

Transforming BPEL specifications into PROMELA - Example BPEL_loanApprovalPort_OUT! approvalInfo.accept Sends a message containing the variable approvalInfo.accept to channel BPEL_loanApprovalPort_OUT Pointner StefanAK Softwaretechnologie 1 WS 2013/1414

Transforming BPEL specifications into PROMELA – Web Service If the BPEL specification has no reference to the data, it will be given an undefined value If the data is compared to a numerical constant, it will be given the value of the constant, a lower value and a higher third value If the data is discrete, it will be given each of the discrete constants in the BPEL specification and a value different from them, called other Pointner StefanAK Softwaretechnologie 1 WS 2013/1415

Transforming BPEL specifications into PROMELA – Transitions BPEL is modelled in PROMELA transitions are identified in the specification and are mapped within the model Implicit Transitions Invoke Flow While Explicit Transitions Are identified from link constructs Explicitly transitions between activities (with same source or target) Pointner StefanAK Softwaretechnologie 1 WS 2013/1416

Transition expressed as LTL Property Unique Boolean variables tran1, tran2, tran3, … Variable will get true in case of the transition being exercised by the model checker The variable associated with a transition X is always false [] !tranX Test Case stop if the property tranX is false To get to end, change property to: [] ( !tranX || !bpel_ends) Pointner StefanAK Softwaretechnologie 1 WS 2013/1417 Using SPIN to generate test case specifications

LTL property: [] ( !tran1 || !bpel_ends) Example CounterExample for Transition 1, 3, 5: customer: request.amount = 3 customer: BPEL_loanApprovalPort_IN!request bpel: request.amount<4 bpel: tran1 = true bpel: loanassessor_riskAssessmentPort_IN!request assessor: riskAssessment.risk = low assessor: loanassessor_riskAssessmentPort_OUT! riskAssessment bpel: tran3 = true bpel: approvalInfo.accept = yes bpel: tran5 = true bpel: BPEL_loanApprovalPort_OUT!approvalInfo bpel: bpel_ends = true Transformed into TestCase: Input: Customer requests for an amount of 3 (less than four) Input: Assessor sets risk to low Output: reply to Customer is affirmative Pointner StefanAK Softwaretechnologie 1 WS 2013/1418

Using SPIN to generate test case specifications Pointner StefanAK Softwaretechnologie 1 WS 2013/1419 Full transition coverage with three executions: {1, 3, 5} {1, 4, 6} {2, 6}

Conclusion Generate test case specification from BPEL composition of web services Method relies on SPIN Model Checker Repeat execute to get a test suite for transition coverage Independence from the particular implementation, only BPEL specification as input needed Pointner StefanAK Softwaretechnologie 1 WS 2013/1420

Any Questions? José García-Fanjul, Javier Tuya, and Claudio de la Riva. Generating test cases specifications for BPEL compositions of web services using SPIN. In Antonia Bertolino and Andrea Polini, editors, in Proceedings of International Workshop on Web Services Modeling and Testing (WS-MaTe2006), pages 83-94, Palermo, Sicily, ITALY, June 9th Pointner StefanAK Softwaretechnologie 1 WS 2013/1421