AVM f An Open-Source Implementation of the Alternating Variable Method Gregory M. Kapfhammer Phil McMinn SSBSE 2016 October 9, 2016
AVM is Everywhere Application Domains
AVM is Everywhere Application Domains Workloads
AVM is Everywhere Application Domains Testing Workloads
AVM is Everywhere Application Domains Testing Workloads SoftwareProductLines
AVM is Everywhere Application Domains Testing Workloads SoftwareProductLines AVM is used in varied domains
Exploring AVM Input Vector
Exploring AVM Input Vector � = ( x 1 , x 2 , . . . , x n ) x
Exploring AVM Input Vector � � = = ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) x x
Exploring AVM Input Vector � � = = ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) x x Objective Function
Exploring AVM Input Vector � � = = ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) x x
Exploring AVM Input Vector � � = = ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) x x Exploratory Moves
Exploring AVM Input Vector � � = = ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) x x Exploratory Moves Positive or negative “direction”?
Exploring AVM Input Vector � � = = ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) x x Pattern Moves
Exploring AVM Input Vector � � = = ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) x x Pattern Moves Improve objective value?
Exploring AVM Input Vector � � = = ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) x x Pattern Moves Improve objective value? Yes! pattern or No! explore
Exploring AVM Input Vector � � = = ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) x x Pattern Moves Improve objective value? Yes! pattern or No! explore
Exploring AVM Input Vector � � � = = = ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) x x x
Exploring AVM Input Vector � � � = = = ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) x x x Exploratoryand PatternMoves
Exploring AVM Input Vector � � � = = = ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) x x x Exploratoryand PatternMoves Consider all input vector variables
Exploring AVM Input Vector � � � � = = = = ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) x x x x Exploratoryand PatternMoves Consider all input vector variables
Exploring AVM Input Vector � � � � = = = = ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) x x x x Exploratoryand PatternMoves Revisit each x i in the input vector
Exploring AVM Input Vector � � � � = = = = ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) x x x x Exploratoryand PatternMoves Restart for local optimum
Exploring AVM Input Vector � � � � = = = = ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) ( x 1 , x 2 , . . . , x n ) x x x x Exploratoryand PatternMoves Continue until termination condition
AVM Innovations Search Algorithms
AVM Innovations Search Algorithms Geometric
AVM Innovations Search Algorithms Geometric Lattice
AVM Innovations Search Algorithms Geometric Lattice IteratedPattern
AVM Innovations Search Algorithms Geometric Lattice IteratedPattern Better search for many landscapes
AVM Innovations Search Algorithms Geometric Lattice IteratedPattern Provably faster for unimodal
AVM Innovations Representations
AVM Innovations Representations Decimals
AVM Innovations Representations Strings Decimals
AVM Innovations Representations Strings Decimals Integers
AVM Innovations Representations Strings Decimals Integers Handle real-world programs
Missing Features ✗ Data? ✗ Method?
Missing Features ✗ Data? ✗ Method?
Key Challenge Prior AVMs lack provably faster methods!
Tools Using AVM Test Generation
Tools Using AVM Test Generation AUSTIN
Tools Using AVM Test Generation AUSTIN EvoSuite
Tools Using AVM Test Generation AUSTIN EvoSuite SchemaAnalyst
Tools Using AVM Test Generation AUSTIN EvoSuite SchemaAnalyst AVM is used in many tools
Extracting AVM Fitness? Search?
Extracting AVM Fitness? Search?
Extracting AVM Fitness? Search?
Key Challenge Hard to extract AVM from custom software!
Rescued by AVM f
Rescued by AVM f OriginalAVMplusenhance- mentsfordataandsearch
Rescued by AVM f Clearimplementa- tionofcorealgorithms
Rescued by AVM f Adherestotheprinciples ofobject-orienteddesign
Rescued by AVM f Freeandopen-sourcesoft- warefrom avmframework.org
Rescued by AVM f
Rescued by AVM f NewApplicationDomain
Rescued by AVM f
Rescued by AVM f NewSearchAlgorithm
Design of AVM f
Design of AVM f Configure
Design of AVM f Configure Represent
Design of AVM f
Design of AVM f Objective
Design of AVM f Objective Report
Design of AVM f
Design of AVM f Seethepaperformoredesign andimplementationdetails
Design of AVM f Thetool’swebsitecontains extensivedocumentation
AVM f Demonstration
AVM f Demonstration javaorg.avmframework. examples.Quadratic
AVM f Demonstration javaorg.avmframework. examples.StringOptimization
AVM f Demonstration javaorg.avmframework. examples.GenerateInputData
AVM f Demonstration Input → Output StochasticBehavior
AVM f Demonstration Alreadyrun: gitclone&mvnpackage
AVM f ’s Contributions
AVM f ’s Contributions Overcomesthe challengesofusingAVM
AVM f ’s Contributions Provablyfastersearches andnewdatatypes
AVM f ’s Contributions Accessibleobject-oriented andalgorithmicdesign
AVM f ’s Contributions Open-sourcedownload from avmframework.org
Recommend
More recommend