×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
AVMf An Open-Source Implementation of the Alternating Variable Method Gregory M. Kapfhammer Phil McMinn SSBSE 2016 October 9, 2016
Slide 2
Slide 2 text
AVM is Everywhere Application Domains
Slide 3
Slide 3 text
AVM is Everywhere Application Domains Workloads
Slide 4
Slide 4 text
AVM is Everywhere Application Domains Workloads Testing
Slide 5
Slide 5 text
AVM is Everywhere Application Domains Workloads Testing SoftwareProductLines
Slide 6
Slide 6 text
AVM is Everywhere Application Domains Workloads Testing SoftwareProductLines AVM is used in varied domains
Slide 7
Slide 7 text
Exploring AVM Input Vector
Slide 8
Slide 8 text
Exploring AVM Input Vector x = (x1, x2, . . . , xn)
Slide 9
Slide 9 text
Exploring AVM Input Vector x = (x1, x2, . . . , xn) x = (x1, x2, . . . , xn)
Slide 10
Slide 10 text
Exploring AVM Input Vector x = (x1, x2, . . . , xn) x = (x1, x2, . . . , xn) Objective Function
Slide 11
Slide 11 text
Exploring AVM Input Vector x = (x1, x2, . . . , xn) x = (x1, x2, . . . , xn)
Slide 12
Slide 12 text
Exploring AVM Input Vector x = (x1, x2, . . . , xn) x = (x1, x2, . . . , xn) Exploratory Moves
Slide 13
Slide 13 text
Exploring AVM Input Vector x = (x1, x2, . . . , xn) x = (x1, x2, . . . , xn) Exploratory Moves Positive or negative “direction”?
Slide 14
Slide 14 text
Exploring AVM Input Vector x = (x1, x2, . . . , xn) x = (x1, x2, . . . , xn) Pattern Moves
Slide 15
Slide 15 text
Exploring AVM Input Vector x = (x1, x2, . . . , xn) x = (x1, x2, . . . , xn) Pattern Moves Improve objective value?
Slide 16
Slide 16 text
Exploring AVM Input Vector x = (x1, x2, . . . , xn) x = (x1, x2, . . . , xn) Pattern Moves Improve objective value? Yes! pattern or No! explore
Slide 17
Slide 17 text
Exploring AVM Input Vector x = (x1, x2, . . . , xn) x = (x1, x2, . . . , xn) Pattern Moves Improve objective value? Yes! pattern or No! explore
Slide 18
Slide 18 text
Exploring AVM Input Vector x = (x1, x2, . . . , xn) x = (x1, x2, . . . , xn) x = (x1, x2, . . . , xn)
Slide 19
Slide 19 text
Exploring AVM Input Vector x = (x1, x2, . . . , xn) x = (x1, x2, . . . , xn) x = (x1, x2, . . . , xn) Exploratoryand PatternMoves
Slide 20
Slide 20 text
Exploring AVM Input Vector x = (x1, x2, . . . , xn) x = (x1, x2, . . . , xn) x = (x1, x2, . . . , xn) Exploratoryand PatternMoves Consider all input vector variables
Slide 21
Slide 21 text
Exploring AVM Input Vector x = (x1, x2, . . . , xn) x = (x1, x2, . . . , xn) x = (x1, x2, . . . , xn) Exploratoryand PatternMoves Consider all input vector variables x = (x1, x2, . . . , xn)
Slide 22
Slide 22 text
Exploring AVM Input Vector x = (x1, x2, . . . , xn) x = (x1, x2, . . . , xn) x = (x1, x2, . . . , xn) Exploratoryand PatternMoves x = (x1, x2, . . . , xn) Revisit each xi in the input vector
Slide 23
Slide 23 text
Exploring AVM Input Vector x = (x1, x2, . . . , xn) x = (x1, x2, . . . , xn) x = (x1, x2, . . . , xn) Exploratoryand PatternMoves x = (x1, x2, . . . , xn) Restart for local optimum
Slide 24
Slide 24 text
Exploring AVM Input Vector x = (x1, x2, . . . , xn) x = (x1, x2, . . . , xn) x = (x1, x2, . . . , xn) Exploratoryand PatternMoves x = (x1, x2, . . . , xn) Continue until termination condition
Slide 25
Slide 25 text
AVM Innovations Search Algorithms
Slide 26
Slide 26 text
AVM Innovations Search Algorithms Geometric
Slide 27
Slide 27 text
AVM Innovations Search Algorithms Geometric Lattice
Slide 28
Slide 28 text
AVM Innovations Search Algorithms Geometric Lattice IteratedPattern
Slide 29
Slide 29 text
AVM Innovations Search Algorithms Geometric Lattice IteratedPattern Better search for many landscapes
Slide 30
Slide 30 text
AVM Innovations Search Algorithms Geometric Lattice IteratedPattern Provably faster for unimodal
Slide 31
Slide 31 text
AVM Innovations Representations
Slide 32
Slide 32 text
AVM Innovations Representations Decimals
Slide 33
Slide 33 text
AVM Innovations Representations Decimals Strings
Slide 34
Slide 34 text
AVM Innovations Representations Decimals Strings Integers
Slide 35
Slide 35 text
AVM Innovations Representations Decimals Strings Integers Handle real-world programs
Slide 36
Slide 36 text
Missing Features Data? Method?
Slide 37
Slide 37 text
Missing Features Data? Method?
Slide 38
Slide 38 text
Key Challenge Prior AVMs lack provably faster methods!
Slide 39
Slide 39 text
Tools Using AVM Test Generation
Slide 40
Slide 40 text
Tools Using AVM Test Generation AUSTIN
Slide 41
Slide 41 text
Tools Using AVM Test Generation AUSTIN EvoSuite
Slide 42
Slide 42 text
Tools Using AVM Test Generation AUSTIN EvoSuite SchemaAnalyst
Slide 43
Slide 43 text
Tools Using AVM Test Generation AUSTIN EvoSuite SchemaAnalyst AVM is used in many tools
Slide 44
Slide 44 text
Extracting AVM Fitness? Search?
Slide 45
Slide 45 text
Extracting AVM Fitness? Search?
Slide 46
Slide 46 text
Extracting AVM Fitness? Search?
Slide 47
Slide 47 text
Key Challenge Hard to extract AVM from custom software!
Slide 48
Slide 48 text
Rescued by AVMf
Slide 49
Slide 49 text
Rescued by AVMf OriginalAVMplusenhance- mentsfordataandsearch
Slide 50
Slide 50 text
Rescued by AVMf Clearimplementa- tionofcorealgorithms
Slide 51
Slide 51 text
Rescued by AVMf Adherestotheprinciples ofobject-orienteddesign
Slide 52
Slide 52 text
Rescued by AVMf Freeandopen-sourcesoft- warefromavmframework.org
Slide 53
Slide 53 text
Rescued by AVMf
Slide 54
Slide 54 text
Rescued by AVMf NewApplicationDomain
Slide 55
Slide 55 text
Rescued by AVMf
Slide 56
Slide 56 text
Rescued by AVMf NewSearchAlgorithm
Slide 57
Slide 57 text
Design of AVMf
Slide 58
Slide 58 text
Design of AVMf Con gure
Slide 59
Slide 59 text
Design of AVMf Con gure Represent
Slide 60
Slide 60 text
Design of AVMf
Slide 61
Slide 61 text
Design of AVMf Objective
Slide 62
Slide 62 text
Design of AVMf Objective Report
Slide 63
Slide 63 text
Design of AVMf
Slide 64
Slide 64 text
Design of AVMf Seethepaperformoredesign andimplementationdetails
Slide 65
Slide 65 text
Design of AVMf Thetool’swebsitecontains extensivedocumentation
Slide 66
Slide 66 text
AVMf Demonstration
Slide 67
Slide 67 text
AVMf Demonstration javaorg.avmframework. examples.Quadratic
Slide 68
Slide 68 text
AVMf Demonstration javaorg.avmframework. examples.StringOptimization
Slide 69
Slide 69 text
AVMf Demonstration javaorg.avmframework. examples.GenerateInputData
Slide 70
Slide 70 text
AVMf Demonstration Input→Output StochasticBehavior
Slide 71
Slide 71 text
AVMf Demonstration Alreadyrun: gitclone&mvnpackage
Slide 72
Slide 72 text
AVMf’s Contributions
Slide 73
Slide 73 text
AVMf’s Contributions Overcomesthe challengesofusingAVM
Slide 74
Slide 74 text
AVMf’s Contributions Provablyfastersearches andnewdatatypes
Slide 75
Slide 75 text
AVMf’s Contributions Accessibleobject-oriented andalgorithmicdesign
Slide 76
Slide 76 text
AVMf’s Contributions Open-sourcedownload fromavmframework.org