A Framework for Automated and Composable Testing of Component-based Services Miguel A. Jiménez, Ángela Villota, Norha M. Villegas, Gabriel Tamura, Laurence.

Slides:



Advertisements
Similar presentations
Testing Workflow Purpose
Advertisements

Programming Paradigms Introduction. 6/15/2005 Copyright 2005, by the authors of these slides, and Ateneo de Manila University. All rights reserved. L1:
Architecture Representation
Towards Self-Testing in Autonomic Computing Systems Tariq M. King, Djuradj Babich, Jonatan Alava, and Peter J. Clarke Software Testing Research Group Florida.
Software Quality Assurance Plan
1 Software Testing and Quality Assurance Lecture 13 - Planning for Testing (Chapter 3, A Practical Guide to Testing Object- Oriented Software)
Key-word Driven Automation Framework Shiva Kumar Soumya Dalvi May 25, 2007.
2004 Cross-Platform Automated Regression Test Framework Ramkumar Ramalingam, Rispna Jain IBM Software Labs, India.
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
Automated creation of verification models for C-programs Yury Yusupov Saint-Petersburg State Polytechnic University The Second Spring Young Researchers.
An Automata-based Approach to Testing Properties in Event Traces H. Hallal, S. Boroday, A. Ulrich, A. Petrenko Sophia Antipolis, France, May 2003.
Informatics 43 – May 7, Restatement of Goals for Testing Want to verify software’s correctness  Need to test  Need to decide on test cases  No.
Train Control Language Teaching Computers Interlocking By: J. Endresen, E. Carlson, T. Moen1, K. J. Alme, Haugen, G. K. Olsen & A. Svendsen Synthesizing.
Automated Analysis and Code Generation for Domain-Specific Models George Edwards Center for Systems and Software Engineering University of Southern California.
Software Reuse Building software from reusable components Objectives
1/18 CS 693/793 Lecture 09 Special Topics in Domain Specific Languages CS 693/793-1C Spring 2004 Mo, We, Fr 10:10 – 11:00 CH 430.
An Object-Oriented Architecture Supporting Web Application Testing Presented By: Bhavdeep Singh.
1 Software Testing and Quality Assurance Lecture 15 - Planning for Testing (Chapter 3, A Practical Guide to Testing Object- Oriented Software)
Generative Programming. Generic vs Generative Generic Programming focuses on representing families of domain concepts Generic Programming focuses on representing.
Introduction to Software Testing
Understanding of Automation Framework A Storehouse of Vast Knowledge on Software Testing and Quality Assurance.
© 2006, Cognizant Technology Solutions. All Rights Reserved. The information contained herein is subject to change without notice. Automation – How to.
NYC Technology Forum Introduction to Test Automation 11/2/07 All rights reserved Not to be reproduced without permission Bill Rinko-Gay Solutions Director,
QoS-enabled middleware by Saltanat Mashirova. Distributed applications Distributed applications have distinctly different characteristics than conventional.
Spectra Software Defined Radio Products Applying Model Driven Design, Generative Programming, and Agile Software Techniques to the SDR Domain OOPSLA '05.
Introduction to the Enterprise Library. Sounds familiar? Writing a component to encapsulate data access Building a component that allows you to log errors.
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14Slide 1 Design with Reuse l Building software from reusable components.
Yu SunUniversity of Alabama at Birmingham PAR Works Jeff Gray University of Alabama Montpellier, France July 3rd, 2013 This research is supported.
Sumant Tambe, et. al LEESA DSPD 2008 An Embedded Declarative Language for Hierarchical Object Structure Traversal Sumant Tambe* Aniruddha Gokhale Vanderbilt.
RUP Implementation and Testing
Software Models (Cont.) 9/22/2015ICS 413 – Software Engineering1 -Component-based software engineering -Formal Development Model.
XML in Development of Distributed Systems Tooling Programming Runtime.
Software Component Technology and Component Tracing CSC532 Presentation Developed & Presented by Feifei Xu.
02/10/2015 Page 1 R. Theeuws Siemens Atea Filename: CBD_ervaring Werkgroep Component Based Developments Ervaring CBD.
Unified Modeling Language, Version 2.0
2nd TTCN-3 User Conference, June The TTCN-3 Metamodel – A Basis for Tool Integration Ina Schieferdecker TU Berlin/Fraunhofer Fokus Hajo Eichler,
Testing Workflow In the Unified Process and Agile/Scrum processes.
Model-Driven Analysis Frameworks for Embedded Systems George Edwards USC Center for Systems and Software Engineering
4.2.1 Programming Models Technology drivers – Node count, scale of parallelism within the node – Heterogeneity – Complex memory hierarchies – Failure rates.
Generic API Test tool By Moshe Sapir Almog Masika.
Generative Programming. Automated Assembly Lines.
CSE 303 – Software Design and Architecture LECTURE 4.
INRIA - LaBRICharles Consel Jan-06 1 Domain-Specific Software Engineering Charles Consel Phoenix Research Group LaBRI /INRIA-Futurs January 2006.
Roles in Software Development using Domain Specific Modelling Languages Holger Krahn, Bernhard Rumpe, Steven Völkel Software Systems Engineering Technische.
Software Product Line Material based on slides and chapter by Linda M. Northrop, SEI.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Unified Modeling Language. Object Oriented Methods ► What are object-oriented (OO) methods?  OO methods provide a set of techniques for analyzing, decomposing,
The basics of the programming process The development of programming languages to improve software development Programming languages that the average user.
Weaving a Debugging Aspect into Domain-Specific Language Grammars SAC ’05 PSC Track Santa Fe, New Mexico USA March 17, 2005 Hui Wu, Jeff Gray, Marjan Mernik,
OOPSLA workshop on Domain-Specific Visual Languages 1 Juha-Pekka Tolvanen, Steven Kelly, Jeff Gray, Kalle Lyytinen.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Advanced Software Development Karl Lieberherr CSG 260 Fall Semester
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 15. Review Interaction-Oriented Software Architectures – MVC.
Concepts and Realization of a Diagram Editor Generator Based on Hypergraph Transformation Author: Mark Minas Presenter: Song Gu.
Component Design Elaborating the Design Model. Component Design Translation of the architectural design into a detailed (class-based or module- based)
Quality Assurance in the Presence of Variability Kim Lauenroth, Andreas Metzger, Klaus Pohl Institute for Computer Science and Business Information Systems.
Dynamic Testing.
T EST T OOLS U NIT VI This unit contains the overview of the test tools. Also prerequisites for applying these tools, tools selection and implementation.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
A service Oriented Architecture & Web Service Technology.
Topic 4: Distributed Objects Dr. Ayman Srour Faculty of Applied Engineering and Urban Planning University of Palestine.
Design Engineering 1. Analysis  Design 2 Characteristics of good design 3 The design must implement all of the explicit requirements contained in the.
Software Engineering (CSI 321)
The Development Process of Web Applications
Recall The Team Skills Analyzing the Problem
Introduction to Software Testing
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Managing the Test Process CS 4501 / 6501 Software Testing
Presentation transcript:

A Framework for Automated and Composable Testing of Component-based Services Miguel A. Jiménez, Ángela Villota, Norha M. Villegas, Gabriel Tamura, Laurence Duchien Icesi University (Colombia) - University of Lille (France) MESOCA Victoria, Canada

Service Motivation Service providerService integrator Service Composed Service 1/30 Composed Service

Motivation Composed services must provide minimum quality guarantees. Testers must develop, compose, and execute service tests. This process is error prone due to: ●Analysis by hand of services to test ●High number of valid service-assembly configurations ●Tests are not usually reusable, composable, nor traceable 2/30

Outline Testing Challenges in Software Services The PaSCAni Framework - Testing Specification - Translation and Execution Models Composing Tests with PaSCAniThe PaSCAni ArchitectureEvaluationConclusion and Future Work 3/30

Testing Challenges in Software Services Test Specification and Expressiveness 1 Composability 2 Traceability and Logging 3 4/30

Test Specification and Expressiveness No adequate languages for specifying SCA tests, with appropriate (domain-specific): ●Syntax and semantics ●Power of expressiveness ●Efficiency ●Level of abstraction 5/30

Composability Lack of languages, frameworks, integrated tools to support test composability and reuse, cost-effectively. 6/30

Traceability and Logging Need for specifying composable tests with automated and standard traceability and logging mechanisms. ●Trace information: between sub-tests and service invocations, and tests results. ● Logging: record information about the sub-test results. 7/30

The PaSCAni Framework 8/30

PaSCAni assists human testers in: The PaSCAni Framework ●Describing the system to be tested ●Specifying and executing test modules with the corresponding test cases and strategies Two parts: DSL and a component & service analyzer 9/30

DSL for Test Specification ●PaSCAni’s main unit for specifying tests: the test module: Dependencies 1 System structure 2 Test cases 3 Test strategy 4 Appropriate Syntax and Semantics for Specifying Service Tests (challenge 1) 10/30

Dependencies. Test module. Test strategy. Test cases. SCA Application Structure to Test package org.driso.matrices.strassen.resources; java-import org.driso.matrices.common.*; java-import java.util.Arrays; module StrassenTest { composite strassen = loadComposite("Strassen.composite") providing services { rmi with interface org.driso.matrices.strassen.interfaces.MatricesMultiplicationService } using libraries { "strassen/mcm-strassen.jar", "lib/mcm-common.jar" }; testcase checkCorrectness(int[][] A, int[][] B) using strassen.multiplication {... } control {... } Example: module 11/30

Example: testcase testcase checkCorrectness(int[][] A, int[][] B) using strassen.multiplication { int[][] C = strassen.multiplication.multiply(A, B); int[][] naiveC = MatrixUtils.multiplyUsingNaiveAlgorithm(A, B); Console.log("Correctness ok(?): " + Arrays.deepEquals(C, naiveC)); test correctness = Arrays.deepEquals(C, naiveC) labeled "Multiplication's correctness" message when passed: "The algorithm is well implemented" failed: "Wrong implementation" exception: "An exception has been thrown" inconclusive: "There is no conclusion"; return correctness; } 12/30

Example: test strategy control { String pathA = "/home/user/app/matrices/images/A1"; String pathB = "/home/user/app/matrices/images/A2"; int[][] A = ImageUtils.getImageData(ImageUtils.readImageFromLocalURL(pathA)); int[][] B = ImageUtils.getImageData(ImageUtils.readImageFromLocalURL(pathB)); MatrixUtils mutils = new MatrixUtils(); long classicStrassenTime = exectime mutils.multiplyUsingStrassen(A, B); checkCorrectness(A, B); } 13/30

Translation Model module { composite name = … testcase name() … { … } control { … } Automatic Orchestration of Services for Tracing and Logging Tests and Results (challenge 3) 14/30

Execution Model Defines how a test strategy is executed through the behavior of the generated components and services. Implements the DSL semantics 15/30

The PA SCA NI Architecture 16/30

Composing Tests with PA SCA NI Regression 1 Performance 2 Coverage 3 Import definitions from other test modules Modular scalability Test composition operators: 17/30

Regression Tests After being changed, software artifacts that previously passed known tests should still pass them. Significant at the unit, integration, and system levels. 18/30

Performance Tests Its goal is to verify whether the system meets specified performance requirements such as response time and throughput. Most significant at the system level. 19/30

Coverage Test Evaluation of a software application’s quality depends on: ●the results of the executed tests ●the quality of these tests themselves Coverage test measure the percentage of services that were tested by a set of tests Reusable, Modular-scalable and Composable SCA Tests (challenge 2) 20/30

Evaluation 21/30

Case Study 1 Matrix-chain multiplication problem (as an SPL) ●Strassen ●Block-reduce ●Hybrid multiplication ●N Matrices 22/30

Case Study 2 Online Store Retailer ●Credit card verification ●Address validation 23/30

LOCs PaSCAni vs Manual Coding Effort reduction = 1 – (PaSCAni LOCs / Generated LOCs) Relative Effort Gain 24/30

Relative Effort Gain 25/30

Conclusions 26/30

Conclusions ●Our results show ●PaSCAni: a framework for specifying and executing automated, composable, and traceable tests for service oriented systems. o The applicability of the framework by generating, deploying and executing SCA configurations of composable tests. o The benefits that PaSCAni offer, by saving considerable effort in the testing development process for human testers. 27/30

Conclusions: Testing Challenges ●Test specification and Expressiveness o DSL for specifying testing artifacts ●Composability o Test module imports and composition operators ●Traceability and Logging o Standard trace format and automatic logging 28/30

Future Work Automatic generation of test runtime Additional binding support (e.g. EJB) Integration of the framework to an IDE 29/30

Questions? Thank You! 30/30

Backup slides!

Expressiveness DSLs must be expressive enough to capture all the necessary concepts in the domain. That is, it must semantically support the full generation of test concepts and required component configurations and strategies, automatically.

Economy DSLs must provide the user with appropriate syntax to efficiently express sentences of their domain, and to encapsulate and reuse languages modules.

Adequate level of abstraction DSLs must be effective, that is the notations and abstraction level must be as close to the domain-experts language as possible.

An adequate testing language is required for expressing not only testing functionalities but also how to compose these functionalities and artifacts, at different levels of application. Composability

An example: Strassen algorithm The Strassen algorithm is used for matrix multiplication, it is faster than the standard matrix multiplication algorithm and useful in practice for large matrices.

Implementation 18/24 The PaSCAni compiler was implemented using: ●JLex ●CUP 0.10k ●Google Closure Template tool