Génération de jeux de test pour les programmes de règles 1 er juillet 2009 ILOG Chair of Software Engineering Freiburg Universität Bruno Berstel

Slides:



Advertisements
Similar presentations
High Resolution studies
Advertisements

Solving Equations with Variables on Both Sides
1 Verification by Model Checking. 2 Part 1 : Motivation.
Chapter 17 Multivariable Calculus.
ANNA RAPPAPORT CONSULTING STRATEGIES FOR A SECURE RETIREMENT SM How Does Retirement Planning Software Handle Post-Retirement Risks? Anna M. Rappaport John.
A f r i d i i m r a n S O L V IN G S Y ST E M S O F E Q U A T I O N S A f r i d i i m r a n
A Randomized Satisfiability Procedure for Arithmetic and Uninterpreted Function Symbols Sumit Gulwani George Necula EECS Department University of California,
Chapter 4 Decision Making
Protein Secondary Structure Prediction Using BLAST and Relaxed Threshold Rule Induction from Coverings Leong Lee Missouri University of Science and Technology,
© 2010 IBM Corporation IBM Research – Haifa Virage Logic Integrating Heterogeneous Components in Software Supply Chains Herman Hartmann, Aart Matsinger,
Warm Up Problem of the Day Lesson Presentation Lesson Quizzes.
1 Knowledge and reasoning – second part Knowledge representation Logic and representation Propositional (Boolean) logic Normal forms Inference in propositional.
Algorithm Design Techniques
Sugar 2.0 Formal Specification Language D ana F isman 1,2 Cindy Eisner 1 1 IBM Haifa Research Laboratory 1 IBM Haifa Research Laboratory 2 Weizmann Institute.
International Technology Alliance In Network & Information Sciences International Technology Alliance In Network & Information Sciences 1 Interference.
Combining Like Terms. Only combine terms that are exactly the same!! Whats the same mean? –If numbers have a variable, then you can combine only ones.
8-2: Solving Systems of Equations using Substitution
1 Term 2, 2004, Lecture 3, NormalisationMarian Ursu, Department of Computing, Goldsmiths College Normalisation 5.
CS4026 Formal Models of Computation Running Haskell Programs – power.
Computational Complexity
1 Constraints and Updating Hugh Darwen CS252.HACD: Fundamentals of Relational Databases Section 7: Constraints.
ANR-07-SESUR-003 Using Constraints to Verify Properties of Rule Programs Bruno Berstel, University of Freiburg & IBM Michel Leconte, IBM CSTVA10 – April.
CS 140 Lecture 11 Sequential Networks: Timing and Retiming Professor CK Cheng CSE Dept. UC San Diego 1.
Software Testing Technique. Introduction Software Testing is the process of executing a program or system with the intent of finding errors. It involves.
1 1 Slide Chapter 1 & Lecture Slide Body of Knowledge n Management science Is an approach to decision making based on the scientific method Is.
1 Software Unit Test Coverage And Test Adequacy Hong Zhu, Patrick A. V. Hall, John H.R. May Presented By: Arpita Gandhi.
Testing Constrained Combinations Vera Pironska QA Engineer XAML Team 1 XAML Team 1 Telerik QA Academy Telerik QA Academy.
Chapter 14 Testing Tactics
7.7 Radical Functions. To solve an equation involving radicals, we need to get rid of the by squaring both sides. But, BEWARE! This often creates extra.
Programación. Unidad 2 Operadores Operadores de asignación 1.= 2.+= 3.-= 4.*= 5./= 6.%= 7.>>= 8.
10/5/2013Multiplication Rule 11  Multiplication Rule 1: If a > b and c > 0 then a c > bc Examples If 7 > 3 and 5 > 0 then 7(5) > 3(5) If 2x + 6 > 8 then.
Solve a System Algebraically
© C. Kemke Constructive Problem Solving 1 COMP 4200: Expert Systems Dr. Christel Kemke Department of Computer Science University of Manitoba.
Absolute-Value Equations and Inequalities
CS101: Introduction to Computer programming
Problems and Their Classes
Modelling uncertainty in 3APL Johan Kwisthout Master Thesis
4. Inequalities. 4.1 Solving Linear Inequalities Problem Basic fee: $20 Basic fee: $20 Per minute: 5¢ Per minute: 5¢ Budget: $40 Budget: $40 How many.
CRT RSA Algorithm Protected Against Fault Attacks WISTP - 5/10/07 Arnaud BOSCHER Spansion EMEA Robert NACIRI Oberthur Card Systems Emmanuel PROUFF Oberthur.
Test B, 100 Subtraction Facts
1 Integration of Artificial Intelligence and Operations Research Techniques for Combinatorial Problems Carla P. Gomes Cornell University
Chapter 12 Analyzing Semistructured Decision Support Systems Systems Analysis and Design Kendall and Kendall Fifth Edition.
Planning with Non-Deterministic Uncertainty (Where failure is not an option) R&N: Chap. 12, Sect (+ Chap. 10, Sect 10.7)
Solve a simple absolute value equation
Bottoms Up Factoring. Start with the X-box 3-9 Product Sum
Use addition to eliminate a variable
1.6 – Solving Compound and Absolute Value Inequalities
Slide 1 of 16 Community news Slide 2 of 16 Nouvelles de la communauté…
Delta-Oriented Testing for Finite State Machines
1 ECE734 VLSI Arrays for Digital Signal Processing Loop Transformation.
Best-First Search: Agendas
NP-complete examples CSC3130 Tutorial 11 Xiao Linfu Department of Computer Science & Engineering Fall 2009.
WELCOME TO THE WORLD OF FUZZY SYSTEMS. DEFINITION Fuzzy logic is a superset of conventional (Boolean) logic that has been extended to handle the concept.
Non-Linear Simultaneous Equations
Enhanced Entity Relationship Modeling © 2002 by Dietrich and Urban1 ADVANCED DATABASE CONCEPTS Enhanced Entity Relationship Modeling Susan D. Urban and.
Linear programming Lecture (4) and lecture (5). Recall An optimization problem is a decision problem in which we are choosing among several decisions.
Decision Making via Linear Programming: A simple introduction Fred Phillips
Efficient Synthesis of Feature Models Article Review By: Sigal Berkovitz & Yohai Vidergor.
First-Order Logic and Inductive Logic Programming.
Managerial Economics Lecture: Optimization Technique Date:
Sullivan Algebra and Trigonometry: Section 12.9 Objectives of this Section Set Up a Linear Programming Problem Solve a Linear Programming Problem.
REU 2007-ParSat: A Parallel SAT Solver Christopher Earl, Mentor: Dr. Hao Zheng Department of Computer Science & Engineering Introduction Results and Conclusions.
4 - Conditional Control Structures CHAPTER 4. Introduction A Program is usually not limited to a linear sequence of instructions. In real life, a programme.
Linear programming Lecture (4) and lecture (5). Recall An optimization problem is a decision problem in which we are choosing among several decisions.
Input Space Partition Testing CS 4501 / 6501 Software Testing
Rules within an Enterprise
Inference for Relationships
A QUICK START TO OPL IBM ILOG OPL V6.3 > Starting Kit >
Presentation transcript:

Génération de jeux de test pour les programmes de règles 1 er juillet 2009 ILOG Chair of Software Engineering Freiburg Universität Bruno Berstel Michel Leconte

2 / 13 What does The User want? As a user: –I have a program made of a collection of rules –I usually have no specification of this program –I have to write a test suite that covers well the program I want you to: –At least generate the input data for these tests with a good coverage –If possible, also generate the expected results

3 / 13 The rules we talk about Condition-Action rules –If the value of the shopping cart is greater than 100, then give a gift to the customer. –If the subject of the mail contains enlarge your Rolex, then mark the mail as junk. Made of –A condition (or guard): a formula with variables on an object model –An action part: assignments, calls to methods of the object model –Object model = graph of objects with attributes Not a tree: beware of aliasing

4 / 13 What does it mean to test a rule? And furthermore to generate tests for a rule?

5 / 13 A test for one rule A rule is a relation –between input states and output states –partial, as the rule may not be executable in some states A test case for a rule is –an initial state (input data) –whether the rule is expected to be executable –if so, the expected resulting state (output data)

6 / 13 Generating tests for one rule To find an initial state where the rule is executable: –Build a logical formula from the rule guard –Solve the satisfiability of this formula We use a constraint solver Plus preferences to choose among multiple solutions Are we interested in states where the rule is not executable? –If so, solve the satisfiability of the negation of the guard Probably interested in exploring all disjuncts –To be addressed with respect to the other rules.

7 / 13 What does it mean to test a rule program? And furthermore to generate tests for a rule program?

8 / 13 Whats the difference? Gold 35 y.o. Gold 65 y.o. Silver 65 y.o. if the customer category is Gold, then… if the customer age is greater than 60, then… r1 r2 r1r1 r2r2

9 / 13 A test suite that covers well… In absence of overlapping rules –generate one test case for each rule –optionally several cases for each rule if it reassures the user a test for the case where no rule is applicable A simple approach to overlaps –disambiguate overlaps –generate one test for each case

10 / 13 Its not enough Gold 35 y.o. Gold 65 y.o. Silver 65 y.o. if the customer category is Gold, then… if the customer age is greater than 60, then… r1 r2 r1r1 r2r2 ? s1s1 s2s2 s3s3

11 / 13 General approach Consider the rule combinations and their maximal executions –either as transitions –or as executions –or as execution histories These combinations do not overlap (when confluent) –generate one test case for each

12 / 13 Conclusion

13 / 13 Conclusion Generating one test case for one rule is easy. Generating a test suite for a rule program involves computing its executions. –Cf. bounded model checking? The concept of coverage raises the issues of overlapping and confluence. –An overlapping analysis could be helpful to start with –So could a confluence analysis

14 / 13 Merci