C IT L AB : a Laboratory for Combinatorial Interaction Testing Angelo Gargantini Università di Bergamo - Italy Joint work.

Slides:



Advertisements
Similar presentations
.NET Technology. Introduction Overview of.NET What.NET means for Developers, Users and Businesses Two.NET Research Projects:.NET Generics AsmL.
Advertisements

Introducing JavaScript
IAAnalyzer: Towards a Model-Driven Modeling and Analysis Framework for C ONNECT(ors) Massimo Tivoli, University of L’Aquila (UNIVAQ)
Programming Paradigms and languages
Elevator Simulator DSL Project Presented by Miguel Garzón and Stéphane Leblanc 1.
Tutorial 12: Enhancing Excel with Visual Basic for Applications
Chapter 5: Elementary Data Types Properties of types and objects –Data objects, variables and constants –Data types –Declarations –Type checking –Assignment.
Chapter 10.
Interpreter for ZOOM-I Andrew Deren Initial Presentation - SE690 5/30/03
1 Introducing Collaboration to Single User Applications A Survey and Analysis of Recent Work by Brian Cornell For Collaborative Systems Fall 2006.
Working with JavaScript. 2 Objectives Introducing JavaScript Inserting JavaScript into a Web Page File Writing Output to the Web Page Working with Variables.
Eclipse[10] MIPSinEclipse. Overview Goal: To provide a friendly development environment for CS students programming in MIPS (particularly CS33 at UCLA),
UML CASE Tool. ABSTRACT Domain analysis enables identifying families of applications and capturing their terminology in order to assist and guide system.
Chapter 3 Program translation1 Chapt. 3 Language Translation Syntax and Semantics Translation phases Formal translation models.
Overview of Software Requirements
Whole Platform Tesi di Dottorato di: RICCARDO SOLMI Università degli Studi di Bologna Facoltà di scienze matematiche, fisiche e naturali Corso di Dottorato.
Describing Syntax and Semantics
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
Generative Programming. Generic vs Generative Generic Programming focuses on representing families of domain concepts Generic Programming focuses on representing.
Visualization By: Simon Luangsisombath. Canonical Visualization  Architectural modeling notations are ways to organize information  Canonical notation.
CSC 8310 Programming Languages Meeting 2 September 2/3, 2014.
Chapter 9 Introduction to ActionScript 3.0. Chapter 9 Lessons 1.Understand ActionScript Work with instances of movie clip symbols 3.Use code snippets.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
Introduction to High-Level Language Programming
A novel approach to modeling Zvezdan Protić, Tom Verhoeff, Mark van den Brand.
1 Chapter One A First Program Using C#. 2 Objectives Learn about programming tasks Learn object-oriented programming concepts Learn about the C# programming.
Language Evaluation Criteria
PROGRAMMING LANGUAGES The Study of Programming Languages.
REFACTORING Lecture 4. Definition Refactoring is a process of changing the internal structure of the program, not affecting its external behavior and.
C++ Code Analysis: an Open Architecture for the Verification of Coding Rules Paolo Tonella ITC-irst, Centro per la Ricerca Scientifica e Tecnologica
1 A Web Specific Language for Content Management Systems Viðar Svansson, Roberto E. Lopez-Herrejon Computing Laboratory University of Oxford.
1 Extending Java And Developing DSLs With Open Source Language Workbench JetBrains MPS Konstantin Solomatov JetBrains Lead Developer for JetBrains MPS.
Chapter 1 Introduction Dr. Frank Lee. 1.1 Why Study Compiler? To write more efficient code in a high-level language To provide solid foundation in parsing.
Copyright © 2012 Pearson Education, Inc. Publishing as Pearson Addison-Wesley C H A P T E R 6 Value- Returning Functions and Modules.
Software Requirements Presented By Dr. Shazzad Hosain.
Alignment of ATL and QVT © 2006 ATLAS Nantes Alignment of ATL and QVT Ivan Kurtev ATLAS group, INRIA & University of Nantes, France
Building Tools by Model Transformations in Eclipse Oskars Vilitis, Audris Kalnins, Edgars Celms, Elina Kalnina, Agris Sostaks, Janis Barzdins Institute.
1 Module Objective & Outline Module Objective: After completing this Module, you will be able to, appreciate java as a programming language, write java.
Introduction Algorithms and Conventions The design and analysis of algorithms is the core subject matter of Computer Science. Given a problem, we want.
XP Tutorial 10New Perspectives on Creating Web Pages with HTML, XHTML, and XML 1 Working with JavaScript Creating a Programmable Web Page for North Pole.
Domain-Specific Development Stuart Kent, Senior Program Manager, DSL Tools, Visual Studio Team System, Microsoft.
Generative Programming. Automated Assembly Lines.
ISBN Chapter 3 Describing Semantics -Attribute Grammars -Dynamic Semantics.
CIS-165 C++ Programming I CIS-165 C++ Programming I Bergen Community College Prof. Faisal Aljamal.
XP Tutorial 10New Perspectives on HTML and XHTML, Comprehensive 1 Working with JavaScript Creating a Programmable Web Page for North Pole Novelties Tutorial.
Eclipse 24-Apr-17.
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,
Domain Specific Models John D. McGregor M13S1. Tool development Eclipse is an environment intended as a basis for building software engineering tools.
LanguageLab A Meta-modelling Environment Terje Gjøsæter and Andreas Prinz, University of Agder, Norway SDL Forum 2015, Berlin, Germany.
The Interpreter Pattern (Behavioral) ©SoftMoore ConsultingSlide 1.
Interfaces and Inner Classes
® IBM Software Group © 2007 IBM Corporation Module 1: Getting Started with Rational Software Architect Essentials of Modeling with IBM Rational Software.
Cross Language Clone Analysis Team 2 February 3, 2011.
Presented by: Elena C. Ciobanu Mihai V. Ciobanu Kuntal Ghosh
1. 2 Purpose of This Presentation ◆ To explain how spacecraft can be virtualized by using a standard modeling method; ◆ To introduce the basic concept.
Concepts and Realization of a Diagram Editor Generator Based on Hypergraph Transformation Author: Mark Minas Presenter: Song Gu.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
CSCI 161 Lecture 3 Martin van Bommel. Operating System Program that acts as interface to other software and the underlying hardware Operating System Utilities.
Execution ways of program References: www. en.wikipedia.org/wiki/Integrated_development_environment  You can execute or run a simple java program with.
XP Tutorial 10New Perspectives on HTML, XHTML, and DHTML, Comprehensive 1 Working with JavaScript Creating a Programmable Web Page for North Pole Novelties.
1 Budapest University of Technology and Economics Department of Measurement and Information Systems Budapest University of Technology and Economics Fault.
Visual Programming Borland Delphi. Developing Applications Borland Delphi is an object-oriented, visual programming environment to develop 32-bit applications.
Programming Languages Concepts Chapter 1: Programming Languages Concepts Lecture # 4.
Some of the utilities associated with the development of programs. These program development tools allow users to write and construct programs that the.
Introduction to Algorithm. What is Algorithm? an algorithm is any well-defined computational procedure that takes some value, or set of values, as input.
M&CML: A Monitoring & Control Specification Modeling Language
SysML v2 Formalism: Requirements & Benefits
Productivity Tools Extensions to NetBeans IDE that make life easier
QVT Operational 1.0 Ganymede Simultaneous Release Graduation Review
Subject Name: SOFTWARE ENGINEERING Subject Code:10IS51
Presentation transcript:

C IT L AB : a Laboratory for Combinatorial Interaction Testing Angelo Gargantini Università di Bergamo - Italy Joint work with Paolo Vavassori In collaboration with Andrea Calvagna Università di Catania Workshop on Combinatorial Testing ICST 2012 April 17, 2012

user Some open issues in CT user perspective Still missing A common abstract language A common abstract language with a precise semantics for concepts like constraints, seeds … A standard concrete syntax/grammar A standard concrete syntax/grammar or exchange format for tools: to guarantee interoperability Limited assistance in writing the models Limited assistance in writing the models generation tools do not offer any editing capabilities (only a grammar and a parser) and are rarely integrated in any IDE for programming or design. Angelo Gargantini - CitLab: a Laboratory for Combinatorial

researcher Some open issues in CT researcher perspective No standard language  Comparison among tools and algorithms is difficult No standard language  Comparison among tools and algorithms is difficult Conceptual point of view: some features may be supported in an approach but not in another or different meanings Practical: every comparison is quite unreliable since every user must redefine in its own language and tool the examples No help in defining new algorithms and tools No help in defining new algorithms and tools In order to experiment a new test generation algorithm, a researcher should define a proper grammar and a parser, develop the libraries to manipulate the model data, and translate the benchmarks Angelo Gargantini - CitLab: a Laboratory for Combinatorial

C IT L AB in brief (Domain Specific) Language abstract language 1.A rich abstract language with a precise formal semantics concrete syntax 2.A concrete syntax with a well defined grammar by XTEXT editor 3.A textual editor integrated in the eclipse IDE A Framework 1.based on the Eclipse Modeling Framework (EMF) which provides tools and run-time support to manipulate combinatorial problems in Java 2.A rich collection of Java utility classes and methods 3.For introducing new test generation algorithms 4.For introducing code translators for importing and exporting models and tests Angelo Gargantini - CitLab: a Laboratory for Combinatorial

A DSL for CIT problems Domain-specific languages (DSLs) are languages tailored to a particular problem domain. They offer substantial gains in expressiveness and ease of use compared with general-purpose programming languages CIT can be considered a specific application domain for which developing a domain-specific language is worthwhile. DSL development is supported by several tools and technologies. Xtext Xtext Angelo Gargantini - CitLab: a Laboratory for Combinatorial Xtext is a framework for development of domain specific languages. It covers all aspects of a complete language infrastructure, from parsers, over linker, compiler or interpreter to fully-blown top- notch Eclipse IDE integration.

.ecore (metamodel) Language project Angelo Gargantini - CitLab: a Laboratory for Combinatorial.xtxt Grammar Generator Constraints Antlr ParserEditor Syntax coloring Manual (required) Manual (optional) Editor Project Generated Java API Language Model Outline Content Assist Template Formatting…

A DOMAIN SPECIFIC LANGUAGE FOR CIT PROBLEMS Angelo Gargantini - CitLab: a Laboratory for Combinatorial

C IT L AB Language in a glance Model Types:... end Parameters:... end Constraints: #... # end Seeds: #... # end TestGoals: #... # end Angelo Gargantini - CitLab: a Laboratory for Combinatorial Parameters Types Constraints Seeds Test goals

Parameters and their types To describe a combinatorial problem would be sufficient to specify the number of variables and their cardinality. CITLAB language forces the designer to name parameters and to specify their types by listing all the values in their domain. Angelo Gargantini - CitLab: a Laboratory for Combinatorial Parameters: Boolean Viewer; Range textLines [ ]; Enumerative display { 16MC 8MC BW }; end 1.Enumerative 1.Enumerative for parameters that can take a value in a set of symbolic constants. 2.Boolean 2.Boolean for parameters that can be either true or false. 3.Numerical 3.Numerical value for parameters that take any value in an integer range. Choice: explicit parameter names to facilitate the modeling of real systems and to ease the specification of constraints and seeds From ACTS

Named Types Types can be defined with their name in the Types section to be used in parameters declaration Instead of an “anonymous” type. Angelo Gargantini - CitLab: a Laboratory for Combinatorial Types: EnumerativeType cameraType { 2MP 1MP NOC }; end Parameters: Enumerative rearCamera : cameraType; Enumerative frontCamera : cameraType;... end Advantages: the use of named parameter types to make more compact and more maintainable the models in case many parameters share the same domain.

Constraints Angelo Gargantini - CitLab: a Laboratory for Combinatorial

Constraints Semantics Angelo Gargantini - CitLab: a Laboratory for Combinatorial

GF vs forbidden combinations Most CIT that support constraints, allow only the use of forbidden combinations or tuples A forbidden combination would be translated in our model as a not statement. a forbidden pair x = a; y = b would be represented # not (x = a and y = b) # Angelo Gargantini - CitLab: a Laboratory for Combinatorial Advantages: Much more compact than forbidden tuples Example: if b {x1 … xn } “a = x => b = xk” would need n-1 forbidden tuples More expressive (whilst in a finite domain …) More similar to the natural language No need to distinguish between implicit and explicit constraints

Seeds The testers can also force the inclusion of their favorite test cases by specifying them as seed tests. They can be tests generated by other criteria Critical complete combinations The seeds must be included in the generated test set without modification CITLAB considers only complete seeds, i.e., seeds that assign a valid value to each parameter # frontCamera==1MP, display==16MC, Viewer=true, rearCamera==2MP, textLines=30 # Partial seeds? Critical partial combination the tester would like to be included in the test suite Angelo Gargantini - CitLab: a Laboratory for Combinatorial

Test Goals Critical situation that must be tested Predicates that must be covered by some tests in GF Test goals can be again in GF (as the constraints): // at least one camera is missing and the display has at least threshold lines ( rearCamera==NOC or frontCamera==NOC) and textLines>=threshold Partial combinations // both rearCamera and frontCamera are NOC and display is 16MC rearCamera==NOC and frontCamera==NOC and display==16MC Remarks: Checking feasibility of test goals is an NP-complete problem, since it can be reduced to a SATisfiability problem Checking if a test covers a test goal is however linear Angelo Gargantini - CitLab: a Laboratory for Combinatorial

C IT L AB EDITOR Angelo Gargantini - CitLab: a Laboratory for Combinatorial DEMO

Editor features Syntax Coloring Content Assist Template Proposals Rich Hover Rename Refactoring Quick Fixes Outline Folding Hyperlinks for all Cross References Find References Toggle Comment Mark Occurrences Formatting Angelo Gargantini - CitLab: a Laboratory for Combinatorial

Example, model validation XTEXT provides several levels of validation for the defined language the user can specify additional constraints for the model by providing validation fragments Angelo Gargantini - CitLab: a Laboratory for Combinatorial Example: No seed can violate any constraint Note: checking if a seed violates a constraints is decidable in a linear time

AN EXTENSIBLE FRAMEWORK FOR CIT Angelo Gargantini - CitLab: a Laboratory for Combinatorial

C IT L AB : as a extensible framework Angelo Gargantini - CitLab: a Laboratory for Combinatorial CitLab framework Random generator test generators exporters/importers For the definition and implementation of test generators and a set of exporters/importers to and from other languages Based on the eclipse plugin development environment Goals to foster tools interoperability to favor reuse of artifacts to allow fair comparison Casa exporter gene rator exporter

Extension points and extensions Angelo Gargantini - CitLab: a Laboratory for Combinatorial CitLab accepts new contributions as plugins extension points by defining extension points extensions Contributors add new plugins by implementing extensions Declare the extension in.xml Declare the extension in.xml Implement an Interface Implement an Interface

C IT L AB : extension points Extension PointInterface/Methods TestGeneratorICitLabTestGenerator TestSuite generateTests(Model m, int nWise) boolean acceptConstraints(List c) boolean acceptSeeds(List s) boolean acceptTestGoals(List tg) ExporterICitLabExporter void export(Model m) boolean acceptConstraints(List c) boolean acceptSeeds(List s) boolean acceptTestGoals(List tg) ImporterICitLabImporter Model import(Reader r) TestSuiteExporterICitLabTestSuiteExporter void save(TestSuite ts, String file) Angelo Gargantini - CitLab: a Laboratory for Combinatorial

Using Model to Text or Model to Model MDE approach: a possible way to define importers and exporters is to use Model to Text (M2T) or Model to Model (M2M) transformations For instance, Xtend2 for CASA exporter def toCasaCode(Model sm,int n){ ''' «n» «sm.parameters.size» «FOR param :sm.parameters»«param.getSize» «ENDFOR» ''' } Angelo Gargantini - CitLab: a Laboratory for Combinatorial

Test Suite meta-model and Java utils a simple meta-model for tests and test suites We have developed several classes and methods capable to perform routine tasks like generating all the test requirements for a given strength, checking if a test or a seed violates some constraints checking if a test goal is covered by a given test suite … Angelo Gargantini - CitLab: a Laboratory for Combinatorial

CitLab site and Licence issues All the code is available at CitLab is released under the Eclipse Public License (EPL) an open source software license used by the Eclipse Foundation a business-friendly free software license copyleft but weaker than other, like GNU General Public License (GPL) can use, modify, copy and distribute the work and modified versions, in some cases being obligated to release their own changes CitLab Plugins can be commercial (distribute as binaries) Any modification of the CitLab framework must be open sourced The EPL is approved by the Open Source Initiative (OSI) and is listed as a "free software license" by the Free Software Foundation (FSF). Angelo Gargantini - CitLab: a Laboratory for Combinatorial

Status and Future work Adding new plugins is easy (as student projects) Paolo Vavassori has a part-time contract for 1 year Already implemented Generator Random with seeds support IPO and AETG work in progress Model exporter To CASA (constraints still in progress) Test suite exporter To excel /CSV file New planned features New planned features Language Language, e.g. output for oracles, arrays, … Meta-algorithms Meta-algorithms (like: run 50 times and take the best) postprocessor, Test suite postprocessor, e.g. remove unnecessary test cases Angelo Gargantini - CitLab: a Laboratory for Combinatorial

Objectives and conclusions CitLab Language & editor Establish a CIT “language” with a precise semantics New concepts and constructs? Exchange models and benchmarks CIT “knowledge base” A user friendly textual editor integrated with the eclipse IDE CitLab plugin-based environment defining new generators to foster contributions from new parties making comparison easier and more reliable Angelo Gargantini - CitLab: a Laboratory for Combinatorial