OPEN SOURCE FRAMEWORK FOR RANDOM TESTING RUGE Brendan McCarthy DevClear Oct 1, 2013.

Slides:



Advertisements
Similar presentations
You have been given a mission and a code. Use the code to complete the mission and you will save the world from obliteration…
Advertisements

Algebra II By.
Fill in missing numbers or operations
1
Copyright © 2003 Pearson Education, Inc. Slide 8-1 Created by Cheryl M. Hughes, Harvard University Extension School Cambridge, MA The Web Wizards Guide.
1 Chapter 40 - Physiology and Pathophysiology of Diuretic Action Copyright © 2013 Elsevier Inc. All rights reserved.
Win Big AddingSubtractEven/Odd Rounding Patterns Q $100 Q $200 Q $300 Q $400 Q $500 Q $100 Q $200 Q $300 Q $400 Q $500 Last Chance.
WHAT DO THEY ALL MEAN?. Median Is the number that is in the middle of a set of numbers. (If two numbers make up the middle of a set of numbers then the.
3 Copyright © 2005, Oracle. All rights reserved. Basic Java Syntax and Coding Conventions.
Copyright CompSci Resources LLC Web-Based XBRL Products from CompSci Resources LLC Virginia, USA. Presentation by: Colm Ó hÁonghusa.
Whiteboardmaths.com © 2004 All rights reserved
/4/2010 Box and Whisker Plots Objective: Learn how to read and draw box and whisker plots Starter: Order these numbers.
Create an Application Title 1D - Dislocated Worker Chapter 9.
Process a Customer Chapter 2. Process a Customer 2-2 Objectives Understand what defines a Customer Learn how to check for an existing Customer Learn how.
0 - 0.
1 1  1 =.
1  1 =.
2 pt 3 pt 4 pt 5 pt 1 pt 2 pt 3 pt 4 pt 5 pt 1 pt 2 pt 3 pt 4 pt 5 pt 1 pt 2 pt 3 pt 4 pt 5 pt 1 pt 2 pt 3 pt 4 pt 5 pt 1 pt ShapesPatterns Counting Number.
MULTIPLICATION EQUATIONS 1. SOLVE FOR X 3. WHAT EVER YOU DO TO ONE SIDE YOU HAVE TO DO TO THE OTHER 2. DIVIDE BY THE NUMBER IN FRONT OF THE VARIABLE.
SUBTRACTING INTEGERS 1. CHANGE THE SUBTRACTION SIGN TO ADDITION
Addition Facts
School Shop. Welcome to my shop. You have 10p How much change will you get? 7p 3p change.
Around the World AdditionSubtraction MultiplicationDivision AdditionSubtraction MultiplicationDivision.
All You Ever Wanted to Know About Dynamic Taint Analysis & Forward Symbolic Execution (but might have been afraid to ask) Edward J. Schwartz, ThanassisAvgerinos,
1 Advanced Tools for Account Searches and Portfolios Dawn Gamache Cindy Bylander.
Preview Warm Up California Standards Lesson Presentation.
1.
Trade Promotion Management Study Summary Charts
Chapter 7: Arrays In this chapter, you will learn about
The basics for simulations
Database Performance Tuning and Query Optimization
Splash Screen.
PP Test Review Sections 6-1 to 6-6
Chapter 10: Applications of Arrays and the class vector
ABC Technology Project
Mental Math Math Team Skills Test 20-Question Sample.
1 Price Risk Management and the Futures Market Hedging.
Price Points With Bar Charts. Investment to Value Ratio $45,000 - $65,000 $25,000 - $45,000 Under $25,000 $90,000 - $125,000 $65,000 - $90,000 Low Price.
EIS Bridge Tool and Staging Tables September 1, 2009 Instructor: Way Poteat Slide: 1.
1 What is JavaScript? JavaScript was designed to add interactivity to HTML pages JavaScript is a scripting language A scripting language is a lightweight.
Dynamic Access Control the file server, reimagined Presented by Mark on twitter 1 contents copyright 2013 Mark Minasi.
1 Breadth First Search s s Undiscovered Discovered Finished Queue: s Top of queue 2 1 Shortest path from s.
Copyright © 2012, Elsevier Inc. All rights Reserved. 1 Chapter 7 Modeling Structure with Blocks.
 Copyright I/O International, 2013 Visit us at: A Feature Within from Item Class User Friendly Maintenance  Copyright.
1..
8 2.
Mobility Tool Fremtidens afrapportering 2013 – Erasmus Mobilitet / IP 2014 – Erasmus+ aktioner.
Chapter 1 Introduction to Visual Basic Programming and Applications 1 Exploring Microsoft Visual Basic 6.0 Copyright © 1999 Prentice-Hall, Inc. By Carlotta.
Adding Up In Chunks.
UNIT 2: SOLVING EQUATIONS AND INEQUALITIES SOLVE EACH OF THE FOLLOWING EQUATIONS FOR y. # x + 5 y = x 5 y = 2 x y = 2 x y.
Past Tense Probe. Past Tense Probe Past Tense Probe – Practice 1.
Executional Architecture
+21 Economic Expectations Europe December 2013 Indicator > +20 Indicator 0 to +20 Indicator 0 to -20 Indicator < -20 European Union total: +14 Indicator.
Before Between After.
Addition 1’s to 20.
25 seconds left…...
Structures. Procedural (Imperative) Languages Procedural languages work on the basis of explicitly telling the computer ‘how to do something’; by using.
Subtraction: Adding UP
Recursive & Explicit Formulas
Week 1.
Number bonds to 10,
Chapter 10: The Traditional Approach to Design
Systems Analysis and Design in a Changing World, Fifth Edition
Let’s take a 15 minute break Please be back on time.
Types of selection structures
Bell Schedules Club Time is available from 8:05-8:20  1 st 8:20 – 9:15  2 nd 9:20 – 10:10  3 rd 10:15 – 11:05  4 th 11:10 – 12:50 A(11:10)
Chapter 11 Creating Framed Layouts Principles of Web Design, 4 th Edition.
Stock Valuation and Risk
A Data Warehouse Mining Tool Stephen Turner Chris Frala
Presentation transcript:

OPEN SOURCE FRAMEWORK FOR RANDOM TESTING RUGE Brendan McCarthy DevClear Oct 1, 2013

WHAT IS RUGE New OSS framework Generates and runs integration/system tests When manually-crafted testing hits the wall Diminishing returns The more tests, the more costly are changes Random test generation guided by rules Guide random tests toward useful cases Functional testing + load testing Generate lots of realistic (non-skewed) test events Reads and writes (side-effect producing) Common in financial systems: large streams of events from large numbers of actors over time

RUGE COMPONENTS

MOTIVATIONS Why not other libraries? Generation separated from execution Not Prolog (or Prolog-like) Why Prolog? Excels at exploring search spaces Straightforward syntax, declarative semantics Structures are freely defined without type definitions Strong embedded DSL features Add operators Prolog interpreter in Prolog in 12 or 13 lines of code Data is code, code is data Why Ruge on top of Prolog? Prolog alone is depth-first deterministic

SIMPLE PROLOG PROGRAM item(rivets). item(caps). item(hammers). item(mallets). gen :- item(X), write(X), nl, fail. gen. | ?- gen. rivets caps hammers mallets | ?-

RUGE GEN LOOP user:file_search_path(ruge,'$RUGE_HOME'). :- include(ruge(common)). item(rivets). item(caps). item(hammers). item(mallets). | ?- gen(item). item(rivets). item(caps). item(hammers). item(mallets). | ?- Beyond gen example: store(file(markets,csv), filter(after,ffn,10, csort(1,gen(action(1m))))).

CLAUSE RANDOMIZATION 25 pct item(rivets). 25 pct item(caps). 25 pct item(hammers). 25 pct item(mallets). | ?- item(X). X = caps | ?- gen(item). item(hammers). | ?- gen(item). item(rivets). | ?-

GOAL RANDOMIZATION event(Item,Amount) :- item(Item), percent(Amount, 1..avg(10)..99). 25 pct item(rivets). 25 pct item(caps). 25 pct item(hammers). 25 pct item(mallets). | ?- event(X,Y). X = hammers, Y = 15 ? | ?- gen(event). event(caps,9). | ?-

RANDOMIZED CROSS PRODUCT event( Action, Item,Amount) :- action(Action), item(Item), percent(Amount, 1..avg(50)..99). 40 pct action(buy). 40 pct action(sell). 20 pct action(trade(For)) :- item(For). 25 pct item(rivets). 25 pct item(caps). 25 pct item(hammers). 25 pct item(mallets). | ?- gen(event, 5 ). event(buy,hammers,11). event(sell,caps,45). event(buy,rivets,39). event(trade(mallets),hammers,45). event(buy,rivets,68). | ?-

ADD PATTERNS 90 pct event(Action,Item,Amount) :- action(Action), item(Item), percent(Amount, 1..avg(50)..99). 10 pct event(sell,Item,Amount) :- item(Item), percent(Amounts, bag(3..5,15..20)), member(Amount,Amounts). 40 pct action(buy). 40 pct action(sell). 20 pct action(trade(For)) :- item(For). 25 pct item(rivets). 25 pct item(caps). 25 pct item(hammers). 25 pct item(mallets). | ?- gen(event, 10). event(buy,rivets,39). event(sell,mallets,17). event(sell,mallets,20). event(sell,mallets,15). event(buy,rivets,55). event(trade(rivets),hammers,28). event(buy,rivets,25). event(trade(rivets),caps,76). event(sell,rivets,93). | ?-

SUMMARY Rule-guided random test generation Test execution Functional Load/stress Legacy comparison Find more