Automatic Test Generation from here until the end (of my Phd.) University of Geneva Levi Lúcio SMV & Les Diablerets.

Slides:



Advertisements
Similar presentations
Integration of MBSE and Virtual Engineering for Detailed Design
Advertisements

HL7 V2 Implementation Guide Authoring Tool Proposal
DETAILED DESIGN, IMPLEMENTATIONA AND TESTING Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
SATEL Semi Automatic TEsting Language University of Geneva Levi Lúcio, Didier Buchs M-TOOS, Portland 4/30/2015.
Sequence Diagram Generation & Validation MSE First Presentation Samer Saleh Advisor: Bill Hankley.
Theory of Testing and SATEL. 2 Presentation Structure Theory of testing SATEL (Semi-Automatic TEsting Language) –Test Intentions –SATEL semantics –CO-OPN.
Fall 2007CS 225 Introduction to Software Design Chapter 1.
Object-Oriented Analysis and Design Lecture 10 Implementation (from Schach, “O-O and Classical Software Engineering”)
ECE Synthesis & Verification1 ECE 667 Spring 2011 Synthesis and Verification of Digital Systems Verification Introduction.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
1 Software Testing and Quality Assurance Lecture 30 - Introduction to Software Testing.
SE 555 Software Requirements & Specification Beyond Requirements Based on Weigers Chapter17.
Business Area Analysis Focus: Domain View (selected business area) Goals: –Isolate functions and procedures that allow the area to meet its goals –Define.
SATEL Semi Automatic TEsting Language University of Geneva Levi Lúcio VALID Meeting - Besançon 10/3/06.
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
Testing Components in the Context of a System CMSC 737 Fall 2006 Sharath Srinivas.
CPN’04 UML and Petri Nets for Test Case Generation University of Geneva D.Buchs, L.Lúcio, L.Pedro.
Spring 2009CS 225 Introduction to Software Design Chapter 1.
Principle of Functional Verification Chapter 1~3 Presenter : Fu-Ching Yang.
Introduction to Software Testing
Software Testing & Strategies
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
1 Software Testing Techniques CIS 375 Bruce R. Maxim UM-Dearborn.
Chapter 13 & 14 Software Testing Strategies and Techniques
System/Software Testing
TESTING.
An Introduction to MBT  what, why and when 张 坚
1 UML and Petri Nets for Test Case Generation From Fondue to CO-OPN: (my) first iteration.
CMSC 345 Fall 2000 Unit Testing. The testing process.
1 Software testing. 2 Testing Objectives Testing is a process of executing a program with the intent of finding an error. A good test case is in that.
Introduction to Software Design Chapter 1. Chapter Objectives  To become familiar with the software challenge and the software life cycle  To understand.
Building Tools by Model Transformations in Eclipse Oskars Vilitis, Audris Kalnins, Edgars Celms, Elina Kalnina, Agris Sostaks, Janis Barzdins Institute.
Introduction Algorithms and Conventions The design and analysis of algorithms is the core subject matter of Computer Science. Given a problem, we want.
UML based expert system generation Using Enterprise Architect to model and generate a web-based expert system.
© DATAMAT S.p.A. – Giuseppe Avellino, Stefano Beco, Barbara Cantalupo, Andrea Cavallini A Semantic Workflow Authoring Tool for Programming Grids.
1 Levi Lúcio © A Test Selection Language for CO-OPN Specifications Levi Lúcio, Luis Pedro and Didier Buchs University of Geneva.
Conceptual Modelling – Behaviour
Test Drivers and Stubs More Unit Testing Test Drivers and Stubs CEN 5076 Class 11 – 11/14.
CS 4850: Senior Project Fall 2014 Object-Oriented Design.
1 Context-dependent Product Line Practice for Constructing Reliable Embedded Systems Naoyasu UbayashiKyushu University, Japan Shin NakajimaNational Institute.
A Use Case Primer 1. The Benefits of Use Cases  Compared to traditional methods, use cases are easy to write and to read.  Use cases force the developers.
Introduction to Problem Solving. Steps in Programming A Very Simplified Picture –Problem Definition & Analysis – High Level Strategy for a solution –Arriving.
Secure Systems Research Group - FAU SW Development methodology using patterns and model checking 8/13/2009 Maha B Abbey PhD Candidate.
Software Testing Input Space Partition Testing. 2 Input Space Coverage Four Structures for Modeling Software Graphs Logic Input Space Syntax Use cases.
Requirements Specification. Welcome to Software Engineering: “Requirements Specification” “Requirements Specification”  Verb?  Noun?  “Specification”
CIM LAB MEETING Presentation on UML Rakesh Mopidevi Kwangyeol Ryu.
Ch- 8. Class Diagrams Class diagrams are the most common diagram found in modeling object- oriented systems. Class diagrams are important not only for.
Software Engineering 2004 Jyrki Nummenmaa 1 BACKGROUND There is no way to generally test programs exhaustively (that is, going through all execution.
Comparing model-based and dynamic event-extraction based GUI testing techniques : An empirical study Gigon Bae, Gregg Rothermel, Doo-Hwan Bae The Journal.
Testing OO software. State Based Testing State machine: implementation-independent specification (model) of the dynamic behaviour of the system State:
From Hoare Logic to Matching Logic Reachability Grigore Rosu and Andrei Stefanescu University of Illinois, USA.
Concepts and Realization of a Diagram Editor Generator Based on Hypergraph Transformation Author: Mark Minas Presenter: Song Gu.
Requirement engineering & Requirement tasks/Management. 1Prepared By:Jay A.Dave.
1. Black Box Testing  Black box testing is also called functional testing  Black box testing ignores the internal mechanism of a system or component.
Class Diagrams. Terms and Concepts A class diagram is a diagram that shows a set of classes, interfaces, and collaborations and their relationships.
CSIS 4850: CS Senior Project – Spring 2009 CSIS 4850: Senior Project Spring 2009 Object-Oriented Design.
1 G4UIRoot Isidro González ALICE ROOT /10/2002.
OBJECT-ORIENTED TESTING. TESTING OOA AND OOD MODELS Analysis and design models cannot be tested in the conventional sense. However, formal technical reviews.
SOFTWARE TESTING AND QUALITY ASSURANCE. Software Testing.
SysML and Modelica Integration Working Group Meeting 3/11/09 Peter Fritzson Wladimir Schamai.
Mechanisms for Requirements Driven Component Selection and Design Automation 최경석.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini XVIII. Software Testing.
Requirements Specification
Software Testing.
A Methodology and a Framework for Test Case Generation
Graph Coverage for Specifications CS 4501 / 6501 Software Testing
Chapter 13 & 14 Software Testing Strategies and Techniques
Chapter 13 & 14 Software Testing Strategies and Techniques 1 Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
Presentation transcript:

Automatic Test Generation from here until the end (of my Phd.) University of Geneva Levi Lúcio SMV & Les Diablerets

2 Presentation Plan The overall picture; Ideas I would like to explore in my thesis; Implementation issues; Conclusion.

SMV & Les Diablerets 3 Presentation Plan The overall picture; Ideas I would like to explore in my thesis; Implementation issues; Conclusion.

SMV & Les Diablerets 4 The Overall Picture We do Model-Based test generation :  Given a model (CO-OPN / Fondue) of an SUT…  … we want to generate meaningful tests using that model. Test Cases ModelSUT

SMV & Les Diablerets 5 The Overall Picture (2) Main challenges for a test set:  Coverage of infinite execution paths (loops)  Coverage of infinite input values My predecessors and Didier developed a theory for coping with this problem:  By stating hypotheses about the behavior of the SUT in order to reduce the exhaustive test set;  If the hypotheses hold on the SUT, the final test set will be finite and valid.

SMV & Les Diablerets 6 Test Generation Flow Does P satisfy SP? PSP Test Selection (Hypotheses H Application) Execution of P using T Oracle P satisfies, or not, T! P does not satisfy SPUndefinedP satisfies SP! P satisfies, or not, H Test Set T no inconclusiveyes noyes Correction of P Test Procedure The validity of the tests is decided by executing them against the model prototype!

SMV & Les Diablerets 7 Modeling Language Integration The idea is to integrate the test theory with the CO-OPN language; CO-OPN allows building specifications based on three different kinds of modules:  Algebraic Data Types (Adts) - types + operations  Class modules - state and coordination  Context modules - coordination but no state

SMV & Les Diablerets 8 Presentation Plan The overall picture; Ideas I would like to explore in my thesis; Implementation issues; Conclusion.

SMV & Les Diablerets 9 Presentation Plan The overall picture; Ideas I would like to explore in my thesis; Implementation issues; Conclusion.

SMV & Les Diablerets 10 Test Language The test language is a language for expressing constraints on the operation sequences and operation’s parameters that compose tests; It includes predicates to:  Limit the size and type of the operations’ sequences;  Choose input values from their domain: All values One value One value per equivalence class

SMV & Les Diablerets 11 Test Language Mobile Phone Example A (simple) mobile phone is composed by:  A card containing (among other things) the personal identification number (PIN) to activate the phone. The card gets blocked after 3 wrong attempts at inserting a PIN.  A phone controller holding (among other things) the state of the phone, which can be: Off Standby (waiting for the correct PIN) Idle (ready to receive or make calls) In our specification the user can perform three actions:  Turn on the phone;  Insert a PIN number,  Reset the card when it becomes blocked

SMV & Les Diablerets 12 Test Language Constraints for the Phone Spec ConstraintSet NatelBehaviors; Interface Constraints insertPins; block; reachOn; Body Constraints nWrongPins; Use Boolean; Pin; Axiom [] in nWrongPins; f in nWrongPins => f. HML( ) in nWrongPins; f in nWrongPins, depth(f) HML( ). f. HML( ) in insertPins; depth(f) HML( ). f. HML( ) in block; depth(f) HML( ). f. HML( ) in reachOn; Variables f : HML; m : method; g : gate; End NatelBehaviors; Exported constraints Locally defined constraints Imported Algebric Data Types Variables used in constraint definition Constraints’ Semantics

SMV & Les Diablerets 13 Integration and Unit Testing We always perform Black-box testing… … but it can be done at different levels of the model! Coopn Model - outer context SUT interface Class 1 Class 2 Subsystem Class 3

SMV & Les Diablerets 14 Tests are created Top-Down The engineer starts defining tests for the full system and ends defining tests for the individual classes (refinement) The SUT is tested bottom up by first applying the tests to the individual classes or to the smallest subsystems ModelSUT

SMV & Les Diablerets 15 Test Drivers and Oracles Tools are available to execute tests on Web Pages or Graphic Gui; Could we integrate with Junit (Unit Testing)? TTCN/3 is a solution for integration/system testing… UML 2.0 test profile? A homogeneous solution doesn’t seem to exist - I’m not sure I can tackle this…

SMV & Les Diablerets 16 Testing Fondue Specifications The idea is to translate Fondue into CO- OPN so that the test facilities can be used (Luis’ presentation); Can OCL be translated into CO-OPN behavior? Will the translated model be “testable” with the constraints’ language? Should we already express test intentions at the Fondue level? - are these intentions already present anyway?

SMV & Les Diablerets 17 More ideas… We would like to manage behaviors of the SUT which cannot be calculated in test generation time:  Example: an e-banking application proposes a challenge as part of the authentication mechanism. How do we calculate the reply to the challenge in order to login successfully during the test?  Solution: Introduce the possibility to have “external” functions that will perform calculations in testing time. Predefined “templates” for the constraint language. Example: reach at least one output for each operation in the module’s interface.

SMV & Les Diablerets 18 Presentation Plan The overall picture; Ideas I would like to explore in my thesis; Implementation issues; Conclusion.

SMV & Les Diablerets 19 Presentation Plan The overall picture; Ideas I would like to explore in my thesis; Implementation issues; Technical challenges; Conclusion.

SMV & Les Diablerets 20 Implementation Issues CO-OPN Spec Constraint Modules Semantic explorer: - Java - Prolog Validated tests

SMV & Les Diablerets 21 Implementation Issues (2) Unfortunately the tests cannot be fully calculated syntactically:  Easy to calculate input values for each operation…  But how to calculate the outputs?  Worse, how to calculate inputs in function of outputs? The Java prototype is one solution, but only works “forward”; Prolog works “forward” and “in reverse”…

SMV & Les Diablerets 22 Implementation Issues (3) But… representing the state of a real model in Prolog may be too heavy. Resolution may become too slow! Will it be possible to “reverse” all operations without falling in Prolog resolution traps? Possible solutions:  Implement several resolutions for each of the tackled problems;  Be less ambitious in the constraint language;  Use CLP technology to treat certain types.

SMV & Les Diablerets 23 Implementation Issues Under Thought Generation of object parameters for dynamic OO models; Mechanisms for decomposing CO- OPN’s operations in classes of behavior:  According to CO-OPN’s semantics!

SMV & Les Diablerets 24 Presentation Plan The overall picture; Ideas I would like to explore in my thesis; Implementation issues; Conclusion.

SMV & Les Diablerets 25 Conclusion There are many ideas, but how many of them are feasible in the remaining time? Development is being done now, more experimenting with Prolog and CLP is necessary… I am now focusing on the core of the test generation; Remaining time for issues to be selected.