SlideShare ist ein Scribd-Unternehmen logo
1 von 148
Downloaden Sie, um offline zu lesen
ENABLING AND SUPPORTING
THE DEBUGGING
OF SOFTWARE FAILURES
Thesis Defense
James Clause
DEFINITIONS
‣ mistake: a human action that
produces an incorrect result
‣ fault: an incorrect step,
process, or data definition in
a computer program
‣ failure: the inability of a
system or component to
perform its required
functions within specified
requirements
Debugging
DEBUGGING IS EXPENSIVE
• “...departments tend to spend about half of their applications staff time on
maintenance” – Lientz and Swanson, 1981
DEBUGGING IS EXPENSIVE
• “...departments tend to spend about half of their applications staff time on
maintenance” – Lientz and Swanson, 1981
• “Boehm, Brooks, Myers, andYourdon and Constantine indicate that testing
and debugging alone represent approximately half the cost of new system
development.” –Vessey, 1985
DEBUGGING IS EXPENSIVE
• “...departments tend to spend about half of their applications staff time on
maintenance” – Lientz and Swanson, 1981
• “Boehm, Brooks, Myers, andYourdon and Constantine indicate that testing
and debugging alone represent approximately half the cost of new system
development.” –Vessey, 1985
• “According to an informal industry poll, 85 to 90 percent of the IS
[Information Services] budget goes to legacy system operation and
maintenance.” – Erlikh, 2000
DEBUGGING IS EXPENSIVE
• “...departments tend to spend about half of their applications staff time on
maintenance” – Lientz and Swanson, 1981
• “Boehm, Brooks, Myers, andYourdon and Constantine indicate that testing
and debugging alone represent approximately half the cost of new system
development.” –Vessey, 1985
• “According to an informal industry poll, 85 to 90 percent of the IS
[Information Services] budget goes to legacy system operation and
maintenance.” – Erlikh, 2000
• “...the national annual costs of an inadequate infrastructure for software
testing is estimated to range from $22.2 to $59.5 billion” – NIST, 2002
DEBUGGING IS EXPENSIVE
• “...departments tend to spend about half of their applications staff time on
maintenance” – Lientz and Swanson, 1981
• “Boehm, Brooks, Myers, andYourdon and Constantine indicate that testing
and debugging alone represent approximately half the cost of new system
development.” –Vessey, 1985
• “According to an informal industry poll, 85 to 90 percent of the IS
[Information Services] budget goes to legacy system operation and
maintenance.” – Erlikh, 2000
• “...the national annual costs of an inadequate infrastructure for software
testing is estimated to range from $22.2 to $59.5 billion” – NIST, 2002
• “24,191 people … were involved in either opening, handling, commenting
on, or resolving WindowsVista bugs. That is an order of magnitude greater
than the ∼2,000 developers who wrote code forVista” – Guo, 2010
DEBUGGING IS EXPENSIVE
THESIS STATEMENT
Program analysis techniques can enable and
support the debugging of failures in widely-used
applications by:
1) capturing, replaying, minimizing, and, as much
as possible, anonymizing failing executions
2) highlighting subsets of failure-inducing inputs
that are likely to be helpful for debugging
such failures
TECHNICAL CONTRIBUTIONS
TECHNICAL CONTRIBUTIONS
Recording and
replaying executions
TECHNICAL CONTRIBUTIONS
Recording and
replaying executions
Input minimization✘
TECHNICAL CONTRIBUTIONS
Recording and
replaying executions
Input anonymization
Input minimization✘
TECHNICAL CONTRIBUTIONS
Recording and
replaying executions
Input anonymization
Input minimization✘
Highlighting failure-
relevant inputs
TECHNICAL CONTRIBUTIONS
Recording and
replaying executions
Input anonymization
Input minimization✘
Highlighting failure-
relevant inputs
Enable
TECHNICAL CONTRIBUTIONS
Recording and
replaying executions
Input anonymization
Input minimization✘
Highlighting failure-
relevant inputs
Support
Enable
TECHNICAL CONTRIBUTIONS
Recording and
replaying executions
Input anonymization
Input minimization✘
Highlighting failure-
relevant inputs
Support
Enable
MOTIVATION
MOTIVATION
MOTIVATION
MOTIVATION
MOTIVATION
Failures can be difficult
to reproduce.
ENVIRONMENT INTERACTIONS
ENVIRONMENT INTERACTIONSStreams
ENVIRONMENT INTERACTIONSStreams
Files
LIMITATIONS
Not applicable in every situation
LIMITATIONS
• May not be enough space to store accessed data
• databases
• long running executions
Not applicable in every situation
LIMITATIONS
• May not be enough space to store accessed data
• databases
• long running executions
• May have unacceptable runtime overhead
• webservers, real-time applications
Not applicable in every situation
LIMITATIONS
• May not be enough space to store accessed data
• databases
• long running executions
• May have unacceptable runtime overhead
• webservers, real-time applications
Not applicable in every situation
Evaluation demonstrates that it can be useful
for some common application types.
EVALUATION
Acceptable
runtime overhead
Failures reproduced
successfully
EVALUATION
Prototype implementation:
• maps libc function calls to
interaction events
Subjects:
• several cpu intensive applications
(e.g., bzip, gcc)
Results:
• negligible overheads
• data size is acceptable
• all failures successfully replayed
TECHNICAL CONTRIBUTIONS
Recording and
replaying executions
Input anonymization
Input minimization✘
Highlighting failure-
relevant inputs
Support
Enable
PRACTICALITY ISSUES
345
PRACTICALITY ISSUES
Large in size
345345
PRACTICALITY ISSUES
Large in size Contain sensitive
information
345345
PRACTICALITY ISSUES
Large in size Contain sensitive
information
Minimize
✘
Highlight
345345
PRACTICALITY ISSUES
Large in size Contain sensitive
information
AnonymizeMinimize
✘
Highlight
TECHNICAL CONTRIBUTIONS
Recording and
replaying executions
Input anonymization
Input minimization✘
Highlighting failure-
relevant inputs
Support
Enable
MINIMIZATION✘
24:15
MINIMIZATION✘
Time
minimization 2:5524:15
MINIMIZATION✘
✂
Data
minimization 2:55Time
minimization 2:5524:15
MINIMIZATION✘
✂
Data
minimization 2:55Time
minimization 2:5524:15
Oracle Oracle
TIME MINIMIZATION
Event log:
Environment data (streams):
KEYBOARD: {5680}hello ❙ {4056}c ❙ {300}...
NETWORK: {3405}<html><body>... ❙ {202}...
FILE foo.1
POLL KEYBOARD NOK
POLL KEYBOARD OK
PULL KEYBOARD 5
POLL NETWORK OK
PULL NETWORK 1024
FILE bar.1
POLL NETWORK NOK
POLL NETWORK OK
FILE foo.2
...
PULL NETWORK 1024
FILE foo.2
POLL KEYBOARD NOK
...
TIME MINIMIZATION
Event log:
Environment data (streams):
KEYBOARD: {5680}hello ❙ {4056}c ❙ {300}...
NETWORK: {3405}<html><body>... ❙ {202}...
FILE foo.1
POLL KEYBOARD NOK
POLL KEYBOARD OK
PULL KEYBOARD 5
POLL NETWORK OK
PULL NETWORK 1024
FILE bar.1
POLL NETWORK NOK
POLL NETWORK OK
FILE foo.2
...
PULL NETWORK 1024
FILE foo.2
POLL KEYBOARD NOK
...
Remove idle time
TIME MINIMIZATION
Event log:
Environment data (streams):
KEYBOARD: {5680}hello ❙ {4056}c ❙ {300}...
NETWORK: {3405}<html><body>... ❙ {202}...
FILE foo.1
POLL KEYBOARD NOK
POLL KEYBOARD OK
PULL KEYBOARD 5
POLL NETWORK OK
PULL NETWORK 1024
FILE bar.1
POLL NETWORK NOK
POLL NETWORK OK
FILE foo.2
...
PULL NETWORK 1024
FILE foo.2
POLL KEYBOARD NOK
...
Remove idle time
TIME MINIMIZATION
Event log:
Environment data (streams):
KEYBOARD: {5680}hello ❙ {4056}c ❙ {300}...
NETWORK: {3405}<html><body>... ❙ {202}...
FILE foo.1
POLL KEYBOARD NOK
POLL KEYBOARD OK
PULL KEYBOARD 5
POLL NETWORK OK
PULL NETWORK 1024
FILE bar.1
POLL NETWORK NOK
POLL NETWORK OK
FILE foo.2
...
PULL NETWORK 1024
FILE foo.2
POLL KEYBOARD NOK
...
Remove idle time
Remove delays
TIME MINIMIZATION
Event log:
Environment data (streams):
KEYBOARD: {5680}hello ❙ {4056}c ❙ {300}...
NETWORK: {3405}<html><body>... ❙ {202}...
FILE foo.1
POLL KEYBOARD NOK
POLL KEYBOARD OK
PULL KEYBOARD 5
POLL NETWORK OK
PULL NETWORK 1024
FILE bar.1
POLL NETWORK NOK
POLL NETWORK OK
FILE foo.2
...
PULL NETWORK 1024
FILE foo.2
POLL KEYBOARD NOK
...
Remove idle time
Remove delays
DATA MINIMIZATION
Environment data (files):
foo.1 foo.2 bar.1
Whole entities
Chunks
Atoms
DATA MINIMIZATION
Environment data (files):
foo.2 bar.1
Lorem ipsum dolor sit
amet, consetetur
sadipscing elitr,sed
diam nonumy eirmod
tempor invidunt ut
labore et dolore magna aliquyam
erat, sed diam voluptua. At
vero
eos et accusam et justo duo
dolores et ea rebum. Stet clita
kasd gubergren, no sea takimata
sanctus est Lorem ipsum dolor
sit amet. Lorem ipsum dolor sit
amet, consetetur
sadipscing elitr, sed diam
nonumy eirmod tempor invidunt
ut labore et dolore magna
aliquyam erat, sed diam
voluptua. At vero eos et
Whole entities
Chunks
Atoms
DATA MINIMIZATION
Environment data (files):
foo.2 bar.1
Lorem ipsum dolor sit
amet, consetetur
sadipscing elitr,sed
diam nonumy eirmod
tempor invidunt ut
labore et dolore magna aliquyam
erat, sed diam voluptua. At
vero
eos et accusam et justo duo
dolores et ea rebum. Stet clita
kasd gubergren, no sea takimata
sanctus est Lorem ipsum dolor
sit amet. Lorem ipsum dolor sit
amet, consetetur
sadipscing elitr, sed diam
nonumy eirmod tempor invidunt
ut labore et dolore magna
aliquyam erat, sed diam
voluptua. At vero eos et
Whole entities
Chunks
Atoms
DATA MINIMIZATION
Environment data (files):
foo.2 bar.1
Whole entities
Chunks
Atoms
DATA MINIMIZATION
Environment data (files):
bar.1
Lorem ipsum dolor sit
amet, consetetur
sadipscing elitr,sed
diam nonumy eirmod
tempor invidunt ut
labore et dolore magna aliquyam
erat, sed diam voluptua. At
vero
eos et accusam et justo duo
dolores et ea rebum. Stet clita
kasd gubergren, no sea takimata
sanctus est Lorem ipsum dolor
sit amet. Lorem ipsum dolor sit
amet, consetetur
sadipscing elitr, sed diam
nonumy eirmod tempor invidunt
ut labore et dolore magna
aliquyam erat, sed diam
voluptua. At vero eos et
Whole entities
Chunks
Atoms
DATA MINIMIZATION
Environment data (files):
bar.1
Lorem ipsum dolor sit
amet, consetetur
sadipscing elitr,sed
diam nonumy eirmod
tempor invidunt ut
labore et dolore magna aliquyam
erat, sed diam voluptua. At
vero
eos et accusam et justo duo
dolores et ea rebum. Stet clita
kasd gubergren, no sea takimata
sanctus est Lorem ipsum dolor
sit amet. Lorem ipsum dolor sit
amet, consetetur
sadipscing elitr, sed diam
nonumy eirmod tempor invidunt
ut labore et dolore magna
aliquyam erat, sed diam
voluptua. At vero eos et
Whole entities
Chunks
Atoms
DATA MINIMIZATION
Environment data (files):
bar.1
Lorem ipsum dolor sit
amet, consetetur
sadipscing elitr,sed
diam nonumy eirmod
tempor invidunt ut
labore et dolore magna aliquyam
erat, sed diam voluptua. At
vero
eos et accusam et justo duo
dolores et ea rebum. Stet clita
kasd gubergren, no sea takimata
sanctus est Lorem ipsum dolor
sit amet. Lorem ipsum dolor sit
amet, consetetur
sadipscing elitr, sed diam
nonumy eirmod tempor invidunt
ut labore et dolore magna
aliquyam erat, sed diam
voluptua. At vero eos et
Whole entities
Chunks
Atoms
DATA MINIMIZATION
Environment data (files):
bar.1
Lorem ipsum dolor sit
amet, consetetur
sadipscing elitr,sed
diam nonumy eirmod
tempor invidunt ut
labore et dolore magna aliquyam
erat, sed diam voluptua. At
vero
eos et accusam et justo duo
dolores et ea rebum. Stet clita
kasd gubergren, no sea takimata
sanctus est Lorem ipsum dolor
sit amet. Lorem ipsum dolor sit
amet, consetetur
sadipscing elitr, sed diam
nonumy eirmod tempor invidunt
ut labore et dolore magna
aliquyam erat, sed diam
voluptua. At vero eos et
Whole entities
Chunks
Atoms
DATA MINIMIZATION
Environment data (files):
bar.1
sadipscing elitr, sed diam
nonumy eirmod tempor invidunt
ut labore et dolore magna
aliquyam erat, sed diam
voluptua. At vero eos et
Whole entities
Chunks
Atoms
DATA MINIMIZATION
Environment data (files):
bar.1
sadipscing elitr, sed diam
nonumy eirmod tempor invidunt
ut labore et dolore magna
aliquyam erat, sed diam
voluptua. At vero eos et
Whole entities
Chunks
Atoms
DATA MINIMIZATION
Environment data (files):
bar.1
Whole entities
Chunks
Atoms
sadipscing elitr,
eirmod invidunt
ut labore dolore magna
erat,
voluptua.
DATA MINIMIZATION
Environment data (files):
bar.1
Whole entities
Chunks
Atoms
sadipscing elitr,
eirmod invidunt
ut labore dolore magna
erat,
voluptua.
foo.2
DATA MINIMIZATION
Environment data (files):
Whole entities
Chunks
Atoms
sadipscing elitr,
eirmod invidunt
ut labore dolore magna
erat,
voluptua.
foo.2
ANALYSIS
ANALYSIS
1. Original and minimized executions produce the same failure
2. Minimized execution is not larger than the original execution
(assuming a correct oracle)
Correctness
ANALYSIS
1. Original and minimized executions produce the same failure
2. Minimized execution is not larger than the original execution
(assuming a correct oracle)
Correctness
polynomial in the size of the captured data
(assuming delta debugging)
Worst case performance
EVALUATION
Can the technique produce, in a reasonable amount
of time, minimized executions that can be used to
debug the original failure?
EVALUATION
Can the technique produce, in a reasonable amount
of time, minimized executions that can be used to
debug the original failure?
Pine email and news client
• two real field failures
• 20 failing executions, 10 per failure
EVALUATION
Can the technique produce, in a reasonable amount
of time, minimized executions that can be used to
debug the original failure?
Pine email and news client
• two real field failures
• 20 failing executions, 10 per failure
Minimized executions generated by
• randomly generating interaction scripts
• manually performing the scripts (while recording)
• minimizing the captured executions
RESULTS
Header-color fault Address book fault
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
# entities streams size files size
Averagevalueafterminimization
RESULTS
Header-color fault Address book fault
Results are likely to be conservative; recorded executions
only contain the minimal amount of data needed to perform an action.
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
# entities streams size files size
Averagevalueafterminimization
RESULTS
Header-color fault Address book fault
Results are likely to be conservative; recorded executions
only contain the minimal amount of data needed to perform an action.
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
# entities streams size files size
Averagevalueafterminimization
Inputs can be minimized in a reasonable
amount of time (less then 75 minutes)
TECHNICAL CONTRIBUTIONS
Recording and
replaying executions
Input anonymization
Input minimization✘
Highlighting failure-
relevant inputs
Support
Enable
Sensitive
input (I)
that causes F
Input domain
ANONYMIZATION
Sensitive
input (I)
that causes F
Input domain
Inputs that
cause F
ANONYMIZATION
Sensitive
input (I)
that causes F
Input domain
Inputs that
cause F
ANONYMIZATION
Anonymized
input (I’)
that also
causes F
Inputs that satisfy
F’s path condition Sensitive
input (I)
that causes F
Input domain
Inputs that
cause F
ANONYMIZATION
Anonymized
input (I’)
that also
causes F
PATH CONDITION GENERATION
Path condition: set of constraints on a program’s
inputs that encode the conditions necessary for a
specific path to be executed.
boolean foo(int x, int y, int z) {
if(x <= 5) {
int a = x * 2;
if(y + a > 10) {
if(z == 0) {
return true;
}
}
}
return false;
}
PATH CONDITION GENERATION
boolean foo(int x, int y, int z) {
if(x <= 5) {
int a = x * 2;
if(y + a > 10) {
if(z == 0) {
return true;
}
}
}
return false;
}
PATH CONDITION GENERATION
boolean foo(int x, int y, int z) {
if(x <= 5) {
int a = x * 2;
if(y + a > 10) {
if(z == 0) {
return true;
}
}
}
return false;
}
PATH CONDITION GENERATION
5 3 0
boolean foo(int x, int y, int z) {
if(x <= 5) {
int a = x * 2;
if(y + a > 10) {
if(z == 0) {
return true;
}
}
}
return false;
}
PATH CONDITION GENERATION
5 3 0
(sensitive)
Path Condition:
Symbolic State:
boolean foo(int x, int y, int z) {
if(x <= 5) {
int a = x * 2;
if(y + a > 10) {
if(z == 0) {
return true;
}
}
}
return false;
}
PATH CONDITION GENERATION
5 3 0
(sensitive)
Path Condition:
Symbolic State:
boolean foo(int x, int y, int z) {
if(x <= 5) {
int a = x * 2;
if(y + a > 10) {
if(z == 0) {
return true;
}
}
}
return false;
}
PATH CONDITION GENERATION
5 3 0
x→i1
y→i2
z→i3
(sensitive)
Path Condition:
Symbolic State:
boolean foo(int x, int y, int z) {
if(x <= 5) {
int a = x * 2;
if(y + a > 10) {
if(z == 0) {
return true;
}
}
}
return false;
}
PATH CONDITION GENERATION
5 3 0
x→i1
y→i2
z→i3
(sensitive)
Path Condition:
i1 <= 5
Symbolic State:
boolean foo(int x, int y, int z) {
if(x <= 5) {
int a = x * 2;
if(y + a > 10) {
if(z == 0) {
return true;
}
}
}
return false;
}
PATH CONDITION GENERATION
5 3 0
x→i1
y→i2
z→i3
(sensitive)
Path Condition:
i1 <= 5
Symbolic State:
boolean foo(int x, int y, int z) {
if(x <= 5) {
int a = x * 2;
if(y + a > 10) {
if(z == 0) {
return true;
}
}
}
return false;
}
PATH CONDITION GENERATION
5 3 0
x→i1
y→i2
z→i3
(sensitive)
Path Condition:
i1 <= 5
Symbolic State:
a→i1*2
boolean foo(int x, int y, int z) {
if(x <= 5) {
int a = x * 2;
if(y + a > 10) {
if(z == 0) {
return true;
}
}
}
return false;
}
PATH CONDITION GENERATION
5 3 0
x→i1
y→i2
z→i3
(sensitive)
Path Condition:
i1 <= 5
Symbolic State:
a→i1*2
boolean foo(int x, int y, int z) {
if(x <= 5) {
int a = x * 2;
if(y + a > 10) {
if(z == 0) {
return true;
}
}
}
return false;
}
PATH CONDITION GENERATION
5 3 0
x→i1
y→i2
z→i3
(sensitive)
Path Condition:
i1 <= 5
Symbolic State:
a→i1*2
boolean foo(int x, int y, int z) {
if(x <= 5) {
int a = x * 2;
if(y + a > 10) {
if(z == 0) {
return true;
}
}
}
return false;
}
PATH CONDITION GENERATION
5 3 0
x→i1
y→i2
z→i3
∧ i2+i1*2 > 10
(sensitive)
Path Condition:
i1 <= 5
Symbolic State:
a→i1*2
boolean foo(int x, int y, int z) {
if(x <= 5) {
int a = x * 2;
if(y + a > 10) {
if(z == 0) {
return true;
}
}
}
return false;
}
PATH CONDITION GENERATION
5 3 0
x→i1
y→i2
z→i3
∧ i2+i1*2 > 10
(sensitive)
Path Condition:
i1 <= 5
Symbolic State:
a→i1*2
boolean foo(int x, int y, int z) {
if(x <= 5) {
int a = x * 2;
if(y + a > 10) {
if(z == 0) {
return true;
}
}
}
return false;
}
PATH CONDITION GENERATION
5 3 0
x→i1
y→i2
z→i3
∧ i2+i1*2 > 10
∧ i3 == 0
(sensitive)
CHOOSING ANONYMIZED
INPUTS
Path Condition:
i1 <= 5
∧ i2+i1*2 > 10
∧ i3 == 0
Constraint
Solver
CHOOSING ANONYMIZED
INPUTS
Path Condition:
i1 <= 5
∧ i2+i1*2 > 10
∧ i3 == 0
Constraint
Solver
CHOOSING ANONYMIZED
INPUTS
Path Condition:
i1 <= 5
∧ i2+i1*2 > 10
∧ i3 == 0
Constraint
Solver
CHOOSING ANONYMIZED
INPUTS
Path Condition:
i1 <= 5
∧ i2+i1*2 > 10
∧ i3 == 0 i1 == 5
i2 == 3
i3 == 0
Constraint
Solver
CHOOSING ANONYMIZED
INPUTS
Path Condition:
i1 <= 5
∧ i2+i1*2 > 10
∧ i3 == 0 i1 == 5
i2 == 3
i3 == 0
boolean foo(int x, int y, int z) {
if(x <= 5) {
int a = x * 2;
if(y + a > 10) {
if(z == 0) {
return true;
}
}
}
return false;
}
5 3 0
Constraint
Solver
CHOOSING ANONYMIZED
INPUTS
Path Condition:
i1 <= 5
∧ i2+i1*2 > 10
∧ i3 == 0
Constraint
Solver
CHOOSING ANONYMIZED
INPUTS
Path Condition:
i1 <= 5
∧ i2+i1*2 > 10
∧ i3 == 0
Input Constraints:
i1 != 5
∧ i2 != 3
∧ i3 != 0
Constraint
Solver
CHOOSING ANONYMIZED
INPUTS
Path Condition:
i1 <= 5
∧ i2+i1*2 > 10
∧ i3 == 0
Input Constraints:
i1 != 5
∧ i2 != 3
∧ i3 != 0
(breakable)
Constraint
Solver
CHOOSING ANONYMIZED
INPUTS
Path Condition:
i1 <= 5
∧ i2+i1*2 > 10
∧ i3 == 0
Input Constraints:
i1 != 5
∧ i2 != 3
∧ i3 != 0
(breakable)
Constraint
Solver
CHOOSING ANONYMIZED
INPUTS
Path Condition:
i1 <= 5
∧ i2+i1*2 > 10
∧ i3 == 0
Input Constraints:
i1 != 5
∧ i2 != 3
∧ i3 != 0
i1 == 4
i2 == 10
i3 == 0
(breakable)
PATH CONDITION RELAXATION
Sensitive
input (I)
that causes F
Input domain
PATH CONDITION RELAXATION
Sensitive
input (I)
that causes F
Input domain
PATH CONDITION RELAXATION
Sensitive
input (I)
that causes F
Input domain
PATH CONDITION RELAXATION
Sensitive
input (I)
that causes F
Input domain
PATH CONDITION RELAXATION
Sensitive
input (I)
that causes F
Input domain
EVALUATION
Feasibility
Can the approach generate, in a
reasonable amount of time, anonymized
inputs that reproduce the failure?
Strength
How much information about the
original inputs is revealed?
Effectiveness
Are the anonymized inputs safe to send
to developers?
SUBJECTS
• Columba: 1 fault
• htmlparser: 1 fault
• Printtokens: 2 faults
• NanoXML: 16 faults
(20 faults, total)
SUBJECTS
• Columba: 1 fault
• htmlparser: 1 fault
• Printtokens: 2 faults
• NanoXML: 16 faults
Select sensitive failure-inducing inputs
• manually generated or included with subject
• several 100 bytes to 5MB in size
(20 faults, total)
SUBJECTS
• Columba: 1 fault
• htmlparser: 1 fault
• Printtokens: 2 faults
• NanoXML: 16 faults
Select sensitive failure-inducing inputs
• manually generated or included with subject
• several 100 bytes to 5MB in size
(Assume all of each input is potentially sensitive)
(20 faults, total)
RQ1: FEASIBILITY
0
150
300
450
600
ExecutionTime(s)
0
5
10
15
20
columba
htmlparser
printtokens1
printtokens2
nanoxml1
nanoxml2
nanoxml3
nanoxml4
nanoxml5
nanoxml6
nanoxml7
nanoxml8
nanoxml9
nanoxml10
nanoxml11
nanoxml12
nanoxml13
nanoxml14
nanoxml15
nanoxml16
SolverTime(s)
RQ1: FEASIBILITY
0
150
300
450
600
ExecutionTime(s)
0
5
10
15
20
columba
htmlparser
printtokens1
printtokens2
nanoxml1
nanoxml2
nanoxml3
nanoxml4
nanoxml5
nanoxml6
nanoxml7
nanoxml8
nanoxml9
nanoxml10
nanoxml11
nanoxml12
nanoxml13
nanoxml14
nanoxml15
nanoxml16
SolverTime(s)
Inputs can be anonymized in a reasonable
amount of time (easily done overnight)
Average % Bits Revealed Average % Residue
RQ2: STRENGTH
Average % Bits Revealed Average % Residue
RQ2: STRENGTH
Measures how many inputs
that satisfy the path
condition
Little
information revealed
Average % Bits Revealed Average % Residue
RQ2: STRENGTH
Measures how many inputs
that satisfy the path
condition
Lots of
information revealed
Average % Bits Revealed Average % Residue
RQ2: STRENGTH
Measures how many inputs
that satisfy the path
condition
Measures how much of the
anonymized input is identical
to the original input
AAAAAA
secret
AAAAAA
...
AAAAAA
BBBBBB
secret
BBBBBB
...
BBBBBB
I’
Lots of
information revealed
I
Average % Bits Revealed Average % Residue
RQ2: STRENGTH
Measures how many inputs
that satisfy the path
condition
Measures how much of the
anonymized input is identical
to the original input
AAAAAA
secret
AAAAAA
...
AAAAAA
BBBBBB
secret
BBBBBB
...
BBBBBB
I’
Lots of
information revealed
I
RQ2: STRENGTH
0
25
50
75
100
0
25
50
75
100
columba
htmlparser
printtokens1
printtokens2
nanoxml1
nanoxml2
nanoxml3
nanoxml4
nanoxml5
nanoxml6
nanoxml7
nanoxml8
nanoxml9
nanoxml10
nanoxml11
nanoxml12
nanoxml13
nenoxml14
nanoxml15
nanoxml16
Average
%BitsRevealed
Average
%Residue
RQ2: STRENGTH
0
25
50
75
100
0
25
50
75
100
columba
htmlparser
printtokens1
printtokens2
nanoxml1
nanoxml2
nanoxml3
nanoxml4
nanoxml5
nanoxml6
nanoxml7
nanoxml8
nanoxml9
nanoxml10
nanoxml11
nanoxml12
nanoxml13
nenoxml14
nanoxml15
nanoxml16
Average
%BitsRevealed
Average
%Residue
Anonymized inputs reveal, on average, between
60% (worst case) and 2% (best case) of the
information in the original inputs
RQ3: EFFECTIVENESS
HTMLPARSER
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/
xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>james clause @ gatech | home</title>
<style type="text/css" media="screen" title="">
<!--/*--><![CDATA[<!--*/
body {
margin: 0px;
...
/*]]>*/-->
</style>
</head>
<body>
...
</body>
RQ3: EFFECTIVENESS
HTMLPARSER
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/
xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>james clause @ gatech | home</title>
<style type="text/css" media="screen" title="">
<!--/*--><![CDATA[<!--*/
body {
margin: 0px;
...
/*]]>*/-->
</style>
</head>
<body>
...
</body>
RQ3: EFFECTIVENESS
HTMLPARSER
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/
xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>james clause @ gatech | home</title>
<style type="text/css" media="screen" title="">
<!--/*--><![CDATA[<!--*/
body {
margin: 0px;
...
/*]]>*/-->
</style>
</head>
<body>
...
</body>
The portions of the inputs that remain after
anonymization tend to be structural in nature and
therefore are safe to send to developers
TECHNICAL CONTRIBUTIONS
Recording and
replaying executions
Input anonymization
Input minimization✘
Highlighting failure-
relevant inputs
Support
Enable
Foo
512B
Bar
1KB
Baz
1.5GB
OVERVIEW
1 Taint inputs
Foo
512B
Bar
1KB
Baz
1.5GB
OVERVIEW
1 Taint inputs
Foo
512B
Bar
1KB
Baz
1.5GB
OVERVIEW
1
2
3
4
5
6
7
8
9
0
1 Taint inputs
2 Propagate
taint marks
Foo
512B
Bar
1KB
Baz
1.5GB
OVERVIEW
1
2
3
4
5
6
7
8
9
0
1 Taint inputs
2 Propagate
taint marks
Foo
512B
Bar
1KB
Baz
1.5GB
foo: 512 ... bar: 1024 ... baz: 150... total: 150...
OVERVIEW
1
2
3
4
5
6
7
8
9
0
1 Taint inputs
2 Propagate
taint marks
3 Identify
relevant inputs
Foo
512B
Bar
1KB
Baz
1.5GB
foo: 512 ... bar: 1024 ... baz: 150... total: 150...
OVERVIEW
1
2
3
4
5
6
7
8
9
0
1 Taint inputs
2 Propagate
taint marks
3 Identify
relevant inputs
Foo
512B
Bar
1KB
Baz
1.5GB
foo: 512 ... bar: 1024 ... baz: 150... total: 150...
OVERVIEW
1
2
3
4
5
6
7
8
9
0
EVALUATION
Study 1: Effectiveness for debugging real failures
Study 2: Comparison with Delta Debugging
EVALUATION
Study 1: Effectiveness for debugging real failures
Study 2: Comparison with Delta Debugging
Application KLoC Fault location
bc 1.06 10.5 more_arrays : 177
gzip 1.24 6.3 get_istat : 828
ncompress 4.24 1.4 comprexx : 896
pine 4.44 239.1 rfc822_cat : 260
squid 2.3 69.9 ftpBuildTitleUrl : 1024
Subjects:
EVALUATION
Study 1: Effectiveness for debugging real failures
Study 2: Comparison with Delta Debugging
Application KLoC Fault location
bc 1.06 10.5 more_arrays : 177
gzip 1.24 6.3 get_istat : 828
ncompress 4.24 1.4 comprexx : 896
pine 4.44 239.1 rfc822_cat : 260
squid 2.3 69.9 ftpBuildTitleUrl : 1024
Subjects:
We selected a failure-revealing input vector for each subject.
STUDY 1: EFFECTIVENESS
Is the information that
Penumbra provides helpful for
debugging real failures?
STUDY 1 RESULTS: GZIP & NCOMPRESS
Crash when a file name is longer than 1,024 characters.
STUDY 1 RESULTS: GZIP & NCOMPRESS
Contents
&
Attributes
Contents
&
Attributes
bar
Contents
&
Attributes
foo./gzip
Crash when a file name is longer than 1,024 characters.
# Inputs: 10,000,056
long
filename[ ]
STUDY 1 RESULTS: GZIP & NCOMPRESS
Contents
&
Attributes
Contents
&
Attributes
bar
Contents
&
Attributes
foo./gzip
Crash when a file name is longer than 1,024 characters.
# Inputs: 10,000,056 # Relevant (DF): 1
long
filename[ ]
STUDY 1 RESULTS: GZIP & NCOMPRESS
Contents
&
Attributes
Contents
&
Attributes
bar
Contents
&
Attributes
foo./gzip
Crash when a file name is longer than 1,024 characters.
# Relevant (DF + CF): 3
# Inputs: 10,000,056 # Relevant (DF): 1
long
filename[ ]
STUDY 1: CONCLUSIONS
1. Data-flow propagation is always effective,
data- and control-flow propagation is sometimes effective.
➡ Use data-flow propagation first then, if necessary, use
control-flow propagation.
2. Highlighted inputs correspond to the failure conditions.
➡ Our technique is effective in assisting the debugging of
real failures.
STUDY 2: COMPARISON WITH
DELTA DEBUGGING
RQ1: How much manual effort
does each technique require?
RQ2: How long does it take to
fix a considered failure given
the information provided by
each technique?
RQ1: MANUAL EFFORT
Use setup-time as a proxy for manual (developer) effort.
RQ1: MANUAL EFFORT
Use setup-time as a proxy for manual (developer) effort.
5,400
12,600
1,8001,800
1259731470163
ncompress bc pine
Setup-time(s)
gzip
Penumbra
Delta Debugging
squid
RQ1: MANUAL EFFORT
Use setup-time as a proxy for manual (developer) effort.
5,400
12,600
1,8001,800
1259731470163
ncompress bc pine
Setup-time(s)
gzip
Penumbra
Delta Debugging
squid
RQ1: MANUAL EFFORT
Use setup-time as a proxy for manual (developer) effort.
5,400
12,600
1,8001,800
1259731470163
ncompress bc pine
Setup-time(s)
gzip
Penumbra
Delta Debugging
squid
RQ1: MANUAL EFFORT
Use setup-time as a proxy for manual (developer) effort.
5,400
12,600
1,8001,800
1259731470163
ncompress bc pine
Setup-time(s)
gzip
Penumbra
Delta Debugging
squid
Penumbra requires considerably less setup time than Delta Debugging
(although more time time overall for gzip and ncompress).
RQ2: DEBUGGING EFFORT
Use number of relevant inputs as a proxy for debugging effort.
RQ2: DEBUGGING EFFORT
Subject PenumbraPenumbra Delta Debugging
DF DF + CF
bc 209 743 285
gzip 1 3 1
ncompress 1 3 1
pine 26 15,100,344 90
squid 89 2,056 —
Use number of relevant inputs as a proxy for debugging effort.
RQ2: DEBUGGING EFFORT
Subject PenumbraPenumbra Delta Debugging
DF DF + CF
bc 209 743 285
gzip 1 3 1
ncompress 1 3 1
pine 26 15,100,344 90
squid 89 2,056 —
Use number of relevant inputs as a proxy for debugging effort.
• Penumbra (DF) is comparable to (slightly better than) Delta Debugging.
RQ2: DEBUGGING EFFORT
Subject PenumbraPenumbra Delta Debugging
DF DF + CF
bc 209 743 285
gzip 1 3 1
ncompress 1 3 1
pine 26 15,100,344 90
squid 89 2,056 —
Use number of relevant inputs as a proxy for debugging effort.
• Penumbra (DF) is comparable to (slightly better than) Delta Debugging.
• Penumbra (DF + CF) is likely less effective for bc, pine, and squid
CONCLUSIONS
Program analysis techniques can enable and
support the debugging of failures in widely-used
applications by:
1) capturing, replaying, minimizing, and, as much
as possible, anonymizing failing executions
2) highlighting subsets of failure-inducing inputs
that are likely to be helpful for debugging
such failures

Weitere ähnliche Inhalte

Was ist angesagt?

Memory Forensics for IR - Leveraging Volatility to Hunt Advanced Actors
Memory Forensics for IR - Leveraging Volatility to Hunt Advanced ActorsMemory Forensics for IR - Leveraging Volatility to Hunt Advanced Actors
Memory Forensics for IR - Leveraging Volatility to Hunt Advanced ActorsJared Greenhill
 
2016-05-30 risk driven design
2016-05-30 risk driven design2016-05-30 risk driven design
2016-05-30 risk driven designJaap van Ekris
 
GrrCon 2014: Security On the Cheap
GrrCon 2014: Security On the CheapGrrCon 2014: Security On the Cheap
GrrCon 2014: Security On the CheapJoel Cardella
 
Ict 9 module 4, lesson 1.1 safety precautions
Ict 9 module 4, lesson 1.1 safety precautionsIct 9 module 4, lesson 1.1 safety precautions
Ict 9 module 4, lesson 1.1 safety precautionsYonel Cadapan
 
Top DevOps Security Failures
Top DevOps Security FailuresTop DevOps Security Failures
Top DevOps Security FailuresPawel Krawczyk
 
Cyber resilience: planning to bounce back
Cyber resilience: planning to bounce backCyber resilience: planning to bounce back
Cyber resilience: planning to bounce backJisc
 
Improved Efficiency & Reliability for Data Center Servers Using Immersion Oil...
Improved Efficiency & Reliability for Data Center Servers Using Immersion Oil...Improved Efficiency & Reliability for Data Center Servers Using Immersion Oil...
Improved Efficiency & Reliability for Data Center Servers Using Immersion Oil...Cheryl Tulkoff
 
Ict 9 module 4, lesson 1.2 types of computer system errors
Ict 9 module 4, lesson 1.2 types of computer system errorsIct 9 module 4, lesson 1.2 types of computer system errors
Ict 9 module 4, lesson 1.2 types of computer system errorsYonel Cadapan
 

Was ist angesagt? (8)

Memory Forensics for IR - Leveraging Volatility to Hunt Advanced Actors
Memory Forensics for IR - Leveraging Volatility to Hunt Advanced ActorsMemory Forensics for IR - Leveraging Volatility to Hunt Advanced Actors
Memory Forensics for IR - Leveraging Volatility to Hunt Advanced Actors
 
2016-05-30 risk driven design
2016-05-30 risk driven design2016-05-30 risk driven design
2016-05-30 risk driven design
 
GrrCon 2014: Security On the Cheap
GrrCon 2014: Security On the CheapGrrCon 2014: Security On the Cheap
GrrCon 2014: Security On the Cheap
 
Ict 9 module 4, lesson 1.1 safety precautions
Ict 9 module 4, lesson 1.1 safety precautionsIct 9 module 4, lesson 1.1 safety precautions
Ict 9 module 4, lesson 1.1 safety precautions
 
Top DevOps Security Failures
Top DevOps Security FailuresTop DevOps Security Failures
Top DevOps Security Failures
 
Cyber resilience: planning to bounce back
Cyber resilience: planning to bounce backCyber resilience: planning to bounce back
Cyber resilience: planning to bounce back
 
Improved Efficiency & Reliability for Data Center Servers Using Immersion Oil...
Improved Efficiency & Reliability for Data Center Servers Using Immersion Oil...Improved Efficiency & Reliability for Data Center Servers Using Immersion Oil...
Improved Efficiency & Reliability for Data Center Servers Using Immersion Oil...
 
Ict 9 module 4, lesson 1.2 types of computer system errors
Ict 9 module 4, lesson 1.2 types of computer system errorsIct 9 module 4, lesson 1.2 types of computer system errors
Ict 9 module 4, lesson 1.2 types of computer system errors
 

Andere mochten auch

Group Decision Making
Group Decision MakingGroup Decision Making
Group Decision MakingLeo Sánchz
 
Correlation analysis
Correlation analysisCorrelation analysis
Correlation analysisFassbender123
 
jan's resume Feb 2017
jan's resume Feb 2017jan's resume Feb 2017
jan's resume Feb 2017Jan Trifero
 
8clac indexfokus 2015
8clac indexfokus 20158clac indexfokus 2015
8clac indexfokus 2015Businessfokus
 
Online Video Marketing: Tips, Types of Videos To Create & How To Promote Them
Online Video Marketing: Tips, Types of Videos To Create & How To Promote ThemOnline Video Marketing: Tips, Types of Videos To Create & How To Promote Them
Online Video Marketing: Tips, Types of Videos To Create & How To Promote ThemBloominari
 
Estrategias de comunicación en la organizaciones
Estrategias de comunicación en la organizacionesEstrategias de comunicación en la organizaciones
Estrategias de comunicación en la organizacionesLuisa Jaramillo
 
Тиждень фізики та інформатики математики
Тиждень фізики та інформатики математикиТиждень фізики та інформатики математики
Тиждень фізики та інформатики математикиАнтон Чепурков
 
CCDC Downtown Boise Mobility Update 1-19-2017
CCDC Downtown Boise Mobility Update 1-19-2017CCDC Downtown Boise Mobility Update 1-19-2017
CCDC Downtown Boise Mobility Update 1-19-2017Krisjan Hiner
 
Mm paw patrol_nick_2017_br
Mm paw patrol_nick_2017_brMm paw patrol_nick_2017_br
Mm paw patrol_nick_2017_brMeio & Mensagem
 
Fire station design sadeq al-salami
Fire station  design sadeq al-salamiFire station  design sadeq al-salami
Fire station design sadeq al-salamiSADEQ ALSALAMI
 
Proyecto educativo cunista
Proyecto educativo cunistaProyecto educativo cunista
Proyecto educativo cunistaLuisa Jaramillo
 

Andere mochten auch (20)

Vud del 30 de enero al 03 de febrero 2017
Vud del 30 de enero al 03 de febrero 2017Vud del 30 de enero al 03 de febrero 2017
Vud del 30 de enero al 03 de febrero 2017
 
Lake enthusiast deborah holmes
Lake enthusiast deborah holmesLake enthusiast deborah holmes
Lake enthusiast deborah holmes
 
Group Decision Making
Group Decision MakingGroup Decision Making
Group Decision Making
 
Problem solving skill
Problem solving skillProblem solving skill
Problem solving skill
 
We are don bosco
We are don boscoWe are don bosco
We are don bosco
 
Correlation analysis
Correlation analysisCorrelation analysis
Correlation analysis
 
Infografia aryelis perez
Infografia aryelis perezInfografia aryelis perez
Infografia aryelis perez
 
jan's resume Feb 2017
jan's resume Feb 2017jan's resume Feb 2017
jan's resume Feb 2017
 
8clac indexfokus 2015
8clac indexfokus 20158clac indexfokus 2015
8clac indexfokus 2015
 
Online Video Marketing: Tips, Types of Videos To Create & How To Promote Them
Online Video Marketing: Tips, Types of Videos To Create & How To Promote ThemOnline Video Marketing: Tips, Types of Videos To Create & How To Promote Them
Online Video Marketing: Tips, Types of Videos To Create & How To Promote Them
 
DM-HumanCapitalTriangle
DM-HumanCapitalTriangleDM-HumanCapitalTriangle
DM-HumanCapitalTriangle
 
Estrategias de comunicación en la organizaciones
Estrategias de comunicación en la organizacionesEstrategias de comunicación en la organizaciones
Estrategias de comunicación en la organizaciones
 
Тиждень фізики та інформатики математики
Тиждень фізики та інформатики математикиТиждень фізики та інформатики математики
Тиждень фізики та інформатики математики
 
CCDC Downtown Boise Mobility Update 1-19-2017
CCDC Downtown Boise Mobility Update 1-19-2017CCDC Downtown Boise Mobility Update 1-19-2017
CCDC Downtown Boise Mobility Update 1-19-2017
 
Liderazgo
LiderazgoLiderazgo
Liderazgo
 
Mm paw patrol_nick_2017_br
Mm paw patrol_nick_2017_brMm paw patrol_nick_2017_br
Mm paw patrol_nick_2017_br
 
Fire station design sadeq al-salami
Fire station  design sadeq al-salamiFire station  design sadeq al-salami
Fire station design sadeq al-salami
 
Copy of CARLCV01
Copy of CARLCV01Copy of CARLCV01
Copy of CARLCV01
 
Extensiones de archivos
Extensiones de archivosExtensiones de archivos
Extensiones de archivos
 
Proyecto educativo cunista
Proyecto educativo cunistaProyecto educativo cunista
Proyecto educativo cunista
 

Ähnlich wie Enabling and Supporting the Debugging of Software Failures (PhD Defense)

Chaos Engineering: Why the World Needs More Resilient Systems
Chaos Engineering: Why the World Needs More Resilient SystemsChaos Engineering: Why the World Needs More Resilient Systems
Chaos Engineering: Why the World Needs More Resilient SystemsC4Media
 
Production Readiness Strategies in an Automated World
Production Readiness Strategies in an Automated WorldProduction Readiness Strategies in an Automated World
Production Readiness Strategies in an Automated WorldSean Chittenden
 
Evolution of unix environments and the road to faster deployments
Evolution of unix environments and the road to faster deploymentsEvolution of unix environments and the road to faster deployments
Evolution of unix environments and the road to faster deploymentsRakuten Group, Inc.
 
9 postproduction
9 postproduction 9 postproduction
9 postproduction Len Bass
 
Denver devops : enabling DevOps with data virtualization
Denver devops : enabling DevOps with data virtualizationDenver devops : enabling DevOps with data virtualization
Denver devops : enabling DevOps with data virtualizationKyle Hailey
 
Agile Data: revolutionizing data and database cloning
Agile Data: revolutionizing data and database cloningAgile Data: revolutionizing data and database cloning
Agile Data: revolutionizing data and database cloningKyle Hailey
 
IT Problems & Problem Management
IT Problems & Problem ManagementIT Problems & Problem Management
IT Problems & Problem ManagementApalytics
 
IT Performance Problems
IT Performance Problems IT Performance Problems
IT Performance Problems Apalytics
 
Netpod - The Merging of NPM & APM
Netpod - The Merging of NPM & APMNetpod - The Merging of NPM & APM
Netpod - The Merging of NPM & APMBoni Bruno
 
Data Virtualization: revolutionizing database cloning
Data Virtualization: revolutionizing database cloningData Virtualization: revolutionizing database cloning
Data Virtualization: revolutionizing database cloningKyle Hailey
 
WIRELESS COMPUTING AND IT ECOSYSTEMS
WIRELESS COMPUTING AND IT ECOSYSTEMSWIRELESS COMPUTING AND IT ECOSYSTEMS
WIRELESS COMPUTING AND IT ECOSYSTEMScscpconf
 
DOES16 San Francisco - Susanna Brown & Ben Chan - DevOps in the Midst of an A...
DOES16 San Francisco - Susanna Brown & Ben Chan - DevOps in the Midst of an A...DOES16 San Francisco - Susanna Brown & Ben Chan - DevOps in the Midst of an A...
DOES16 San Francisco - Susanna Brown & Ben Chan - DevOps in the Midst of an A...Gene Kim
 
BGOUG "Agile Data: revolutionizing database cloning'
BGOUG  "Agile Data: revolutionizing database cloning'BGOUG  "Agile Data: revolutionizing database cloning'
BGOUG "Agile Data: revolutionizing database cloning'Kyle Hailey
 
Let's not rewrite it all
Let's not rewrite it allLet's not rewrite it all
Let's not rewrite it allMichelle Brush
 
Kscope 14 Presentation : Virtual Data Platform
Kscope 14 Presentation : Virtual Data PlatformKscope 14 Presentation : Virtual Data Platform
Kscope 14 Presentation : Virtual Data PlatformKyle Hailey
 
Fast and Good: Alternate Approaches to Quality at Etsy - STPCon fall 2011
Fast and Good: Alternate Approaches to Quality at Etsy - STPCon fall 2011Fast and Good: Alternate Approaches to Quality at Etsy - STPCon fall 2011
Fast and Good: Alternate Approaches to Quality at Etsy - STPCon fall 2011Noah Sussman
 
A Proposed Collateral Effect Potential Metric for Computer Exploits: TechNet ...
A Proposed Collateral Effect Potential Metric for Computer Exploits: TechNet ...A Proposed Collateral Effect Potential Metric for Computer Exploits: TechNet ...
A Proposed Collateral Effect Potential Metric for Computer Exploits: TechNet ...AFCEA International
 

Ähnlich wie Enabling and Supporting the Debugging of Software Failures (PhD Defense) (20)

Chaos Engineering: Why the World Needs More Resilient Systems
Chaos Engineering: Why the World Needs More Resilient SystemsChaos Engineering: Why the World Needs More Resilient Systems
Chaos Engineering: Why the World Needs More Resilient Systems
 
Ch01lect1 et
Ch01lect1 etCh01lect1 et
Ch01lect1 et
 
Production Readiness Strategies in an Automated World
Production Readiness Strategies in an Automated WorldProduction Readiness Strategies in an Automated World
Production Readiness Strategies in an Automated World
 
AGrabowski res
AGrabowski resAGrabowski res
AGrabowski res
 
Evolution of unix environments and the road to faster deployments
Evolution of unix environments and the road to faster deploymentsEvolution of unix environments and the road to faster deployments
Evolution of unix environments and the road to faster deployments
 
9 postproduction
9 postproduction 9 postproduction
9 postproduction
 
Denver devops : enabling DevOps with data virtualization
Denver devops : enabling DevOps with data virtualizationDenver devops : enabling DevOps with data virtualization
Denver devops : enabling DevOps with data virtualization
 
Agile Data: revolutionizing data and database cloning
Agile Data: revolutionizing data and database cloningAgile Data: revolutionizing data and database cloning
Agile Data: revolutionizing data and database cloning
 
IT Problems & Problem Management
IT Problems & Problem ManagementIT Problems & Problem Management
IT Problems & Problem Management
 
IT Performance Problems
IT Performance Problems IT Performance Problems
IT Performance Problems
 
Netpod - The Merging of NPM & APM
Netpod - The Merging of NPM & APMNetpod - The Merging of NPM & APM
Netpod - The Merging of NPM & APM
 
Data Virtualization: revolutionizing database cloning
Data Virtualization: revolutionizing database cloningData Virtualization: revolutionizing database cloning
Data Virtualization: revolutionizing database cloning
 
WIRELESS COMPUTING AND IT ECOSYSTEMS
WIRELESS COMPUTING AND IT ECOSYSTEMSWIRELESS COMPUTING AND IT ECOSYSTEMS
WIRELESS COMPUTING AND IT ECOSYSTEMS
 
DOES16 San Francisco - Susanna Brown & Ben Chan - DevOps in the Midst of an A...
DOES16 San Francisco - Susanna Brown & Ben Chan - DevOps in the Midst of an A...DOES16 San Francisco - Susanna Brown & Ben Chan - DevOps in the Midst of an A...
DOES16 San Francisco - Susanna Brown & Ben Chan - DevOps in the Midst of an A...
 
BGOUG "Agile Data: revolutionizing database cloning'
BGOUG  "Agile Data: revolutionizing database cloning'BGOUG  "Agile Data: revolutionizing database cloning'
BGOUG "Agile Data: revolutionizing database cloning'
 
osi-oss-dbs.pptx
osi-oss-dbs.pptxosi-oss-dbs.pptx
osi-oss-dbs.pptx
 
Let's not rewrite it all
Let's not rewrite it allLet's not rewrite it all
Let's not rewrite it all
 
Kscope 14 Presentation : Virtual Data Platform
Kscope 14 Presentation : Virtual Data PlatformKscope 14 Presentation : Virtual Data Platform
Kscope 14 Presentation : Virtual Data Platform
 
Fast and Good: Alternate Approaches to Quality at Etsy - STPCon fall 2011
Fast and Good: Alternate Approaches to Quality at Etsy - STPCon fall 2011Fast and Good: Alternate Approaches to Quality at Etsy - STPCon fall 2011
Fast and Good: Alternate Approaches to Quality at Etsy - STPCon fall 2011
 
A Proposed Collateral Effect Potential Metric for Computer Exploits: TechNet ...
A Proposed Collateral Effect Potential Metric for Computer Exploits: TechNet ...A Proposed Collateral Effect Potential Metric for Computer Exploits: TechNet ...
A Proposed Collateral Effect Potential Metric for Computer Exploits: TechNet ...
 

Mehr von James Clause

Investigating the Impacts of Web Servers on Web Application Energy Usage (GRE...
Investigating the Impacts of Web Servers on Web Application Energy Usage (GRE...Investigating the Impacts of Web Servers on Web Application Energy Usage (GRE...
Investigating the Impacts of Web Servers on Web Application Energy Usage (GRE...James Clause
 
Energy-directed Test Suite Optimization (GREENS 2013)
Energy-directed Test Suite Optimization (GREENS 2013)Energy-directed Test Suite Optimization (GREENS 2013)
Energy-directed Test Suite Optimization (GREENS 2013)James Clause
 
Enabling and Supporting the Debugging of Field Failures (Job Talk)
Enabling and Supporting the Debugging of Field Failures (Job Talk)Enabling and Supporting the Debugging of Field Failures (Job Talk)
Enabling and Supporting the Debugging of Field Failures (Job Talk)James Clause
 
Leakpoint: Pinpointing the Causes of Memory Leaks (ICSE 2010)
Leakpoint: Pinpointing the Causes of Memory Leaks (ICSE 2010)Leakpoint: Pinpointing the Causes of Memory Leaks (ICSE 2010)
Leakpoint: Pinpointing the Causes of Memory Leaks (ICSE 2010)James Clause
 
Debugging Field Failures by Minimizing Captured Executions (ICSE 2009: NIER e...
Debugging Field Failures by Minimizing Captured Executions (ICSE 2009: NIER e...Debugging Field Failures by Minimizing Captured Executions (ICSE 2009: NIER e...
Debugging Field Failures by Minimizing Captured Executions (ICSE 2009: NIER e...James Clause
 
A Technique for Enabling and Supporting Debugging of Field Failures (ICSE 2007)
A Technique for Enabling and Supporting Debugging of Field Failures (ICSE 2007)A Technique for Enabling and Supporting Debugging of Field Failures (ICSE 2007)
A Technique for Enabling and Supporting Debugging of Field Failures (ICSE 2007)James Clause
 
Demand-Driven Structural Testing with Dynamic Instrumentation (ICSE 2005)
Demand-Driven Structural Testing with Dynamic Instrumentation (ICSE 2005)Demand-Driven Structural Testing with Dynamic Instrumentation (ICSE 2005)
Demand-Driven Structural Testing with Dynamic Instrumentation (ICSE 2005)James Clause
 
Initial Explorations on Design Pattern Energy Usage (GREENS 12)
Initial Explorations on Design Pattern Energy Usage (GREENS 12)Initial Explorations on Design Pattern Energy Usage (GREENS 12)
Initial Explorations on Design Pattern Energy Usage (GREENS 12)James Clause
 
Taint-based Dynamic Analysis (CoC Research Day 2009)
Taint-based Dynamic Analysis (CoC Research Day 2009)Taint-based Dynamic Analysis (CoC Research Day 2009)
Taint-based Dynamic Analysis (CoC Research Day 2009)James Clause
 
Effective Memory Protection Using Dynamic Tainting (ASE 2007)
Effective Memory Protection Using Dynamic Tainting (ASE 2007)Effective Memory Protection Using Dynamic Tainting (ASE 2007)
Effective Memory Protection Using Dynamic Tainting (ASE 2007)James Clause
 
Advanced Dynamic Analysis for Leak Detection (Apple Internship 2008)
Advanced Dynamic Analysis for Leak Detection (Apple Internship 2008)Advanced Dynamic Analysis for Leak Detection (Apple Internship 2008)
Advanced Dynamic Analysis for Leak Detection (Apple Internship 2008)James Clause
 
Penumbra: Automatically Identifying Failure-Relevant Inputs (ISSTA 2009)
Penumbra: Automatically Identifying Failure-Relevant Inputs (ISSTA 2009)Penumbra: Automatically Identifying Failure-Relevant Inputs (ISSTA 2009)
Penumbra: Automatically Identifying Failure-Relevant Inputs (ISSTA 2009)James Clause
 
Dytan: A Generic Dynamic Taint Analysis Framework (ISSTA 2007)
Dytan: A Generic Dynamic Taint Analysis Framework (ISSTA 2007)Dytan: A Generic Dynamic Taint Analysis Framework (ISSTA 2007)
Dytan: A Generic Dynamic Taint Analysis Framework (ISSTA 2007)James Clause
 
Camouflage: Automated Anonymization of Field Data (ICSE 2011)
Camouflage: Automated Anonymization of Field Data (ICSE 2011)Camouflage: Automated Anonymization of Field Data (ICSE 2011)
Camouflage: Automated Anonymization of Field Data (ICSE 2011)James Clause
 

Mehr von James Clause (14)

Investigating the Impacts of Web Servers on Web Application Energy Usage (GRE...
Investigating the Impacts of Web Servers on Web Application Energy Usage (GRE...Investigating the Impacts of Web Servers on Web Application Energy Usage (GRE...
Investigating the Impacts of Web Servers on Web Application Energy Usage (GRE...
 
Energy-directed Test Suite Optimization (GREENS 2013)
Energy-directed Test Suite Optimization (GREENS 2013)Energy-directed Test Suite Optimization (GREENS 2013)
Energy-directed Test Suite Optimization (GREENS 2013)
 
Enabling and Supporting the Debugging of Field Failures (Job Talk)
Enabling and Supporting the Debugging of Field Failures (Job Talk)Enabling and Supporting the Debugging of Field Failures (Job Talk)
Enabling and Supporting the Debugging of Field Failures (Job Talk)
 
Leakpoint: Pinpointing the Causes of Memory Leaks (ICSE 2010)
Leakpoint: Pinpointing the Causes of Memory Leaks (ICSE 2010)Leakpoint: Pinpointing the Causes of Memory Leaks (ICSE 2010)
Leakpoint: Pinpointing the Causes of Memory Leaks (ICSE 2010)
 
Debugging Field Failures by Minimizing Captured Executions (ICSE 2009: NIER e...
Debugging Field Failures by Minimizing Captured Executions (ICSE 2009: NIER e...Debugging Field Failures by Minimizing Captured Executions (ICSE 2009: NIER e...
Debugging Field Failures by Minimizing Captured Executions (ICSE 2009: NIER e...
 
A Technique for Enabling and Supporting Debugging of Field Failures (ICSE 2007)
A Technique for Enabling and Supporting Debugging of Field Failures (ICSE 2007)A Technique for Enabling and Supporting Debugging of Field Failures (ICSE 2007)
A Technique for Enabling and Supporting Debugging of Field Failures (ICSE 2007)
 
Demand-Driven Structural Testing with Dynamic Instrumentation (ICSE 2005)
Demand-Driven Structural Testing with Dynamic Instrumentation (ICSE 2005)Demand-Driven Structural Testing with Dynamic Instrumentation (ICSE 2005)
Demand-Driven Structural Testing with Dynamic Instrumentation (ICSE 2005)
 
Initial Explorations on Design Pattern Energy Usage (GREENS 12)
Initial Explorations on Design Pattern Energy Usage (GREENS 12)Initial Explorations on Design Pattern Energy Usage (GREENS 12)
Initial Explorations on Design Pattern Energy Usage (GREENS 12)
 
Taint-based Dynamic Analysis (CoC Research Day 2009)
Taint-based Dynamic Analysis (CoC Research Day 2009)Taint-based Dynamic Analysis (CoC Research Day 2009)
Taint-based Dynamic Analysis (CoC Research Day 2009)
 
Effective Memory Protection Using Dynamic Tainting (ASE 2007)
Effective Memory Protection Using Dynamic Tainting (ASE 2007)Effective Memory Protection Using Dynamic Tainting (ASE 2007)
Effective Memory Protection Using Dynamic Tainting (ASE 2007)
 
Advanced Dynamic Analysis for Leak Detection (Apple Internship 2008)
Advanced Dynamic Analysis for Leak Detection (Apple Internship 2008)Advanced Dynamic Analysis for Leak Detection (Apple Internship 2008)
Advanced Dynamic Analysis for Leak Detection (Apple Internship 2008)
 
Penumbra: Automatically Identifying Failure-Relevant Inputs (ISSTA 2009)
Penumbra: Automatically Identifying Failure-Relevant Inputs (ISSTA 2009)Penumbra: Automatically Identifying Failure-Relevant Inputs (ISSTA 2009)
Penumbra: Automatically Identifying Failure-Relevant Inputs (ISSTA 2009)
 
Dytan: A Generic Dynamic Taint Analysis Framework (ISSTA 2007)
Dytan: A Generic Dynamic Taint Analysis Framework (ISSTA 2007)Dytan: A Generic Dynamic Taint Analysis Framework (ISSTA 2007)
Dytan: A Generic Dynamic Taint Analysis Framework (ISSTA 2007)
 
Camouflage: Automated Anonymization of Field Data (ICSE 2011)
Camouflage: Automated Anonymization of Field Data (ICSE 2011)Camouflage: Automated Anonymization of Field Data (ICSE 2011)
Camouflage: Automated Anonymization of Field Data (ICSE 2011)
 

Kürzlich hochgeladen

Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 

Kürzlich hochgeladen (20)

Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 

Enabling and Supporting the Debugging of Software Failures (PhD Defense)