38
Selected Topics of Software Technology 3 Model-based Software Debugging 60 S C I E N C E P A S S I O N T E C H N O L O G Y u www.tugraz.at Selected Topics of Software Technology 3 Model-based Software Debugging Part III Birgit Hofer Institute for Software Technology

Selected Topics of Software Technology 3 Model-based ... · sweet1 = 2 * red1 * green0; sour1 = 0; Selected Topics of Software Technology 3 81 Model-based Software Debugging Outline

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Selected Topics of Software Technology 3 Model-based ... · sweet1 = 2 * red1 * green0; sour1 = 0; Selected Topics of Software Technology 3 81 Model-based Software Debugging Outline

Selected Topics of Software Technology 3

Model-based Software Debugging60

S C I E N C E P A S S I O N T E C H N O L O G Y

u www.tugraz.at

Selected Topics of Software Technology 3

Model-based Software Debugging

Part III

Birgit Hofer

Institute for Software Technology

Page 2: Selected Topics of Software Technology 3 Model-based ... · sweet1 = 2 * red1 * green0; sour1 = 0; Selected Topics of Software Technology 3 81 Model-based Software Debugging Outline

Selected Topics of Software Technology 3

Model-based Software Debugging61

Outline

Model-based debugging for Spreadsheets

o Dependency-based models

Model-based software debugging

for Java programs

o SSA form

o Loop unrolling

o Path modelling

o Combined approaches

Page 3: Selected Topics of Software Technology 3 Model-based ... · sweet1 = 2 * red1 * green0; sour1 = 0; Selected Topics of Software Technology 3 81 Model-based Software Debugging Outline

Selected Topics of Software Technology 3

Model-based Software Debugging62

Outline

Model-based debugging for Spreadsheets

o Dependency-based models

Model-based software debugging

for Java programs

o SSA form

o Loop unrolling

o Path modelling

o Combined approaches

Page 4: Selected Topics of Software Technology 3 Model-based ... · sweet1 = 2 * red1 * green0; sour1 = 0; Selected Topics of Software Technology 3 81 Model-based Software Debugging Outline

Selected Topics of Software Technology 3

Model-based Software Debugging63

Repetition: Automatic Reasoning + Types of models

Spreadsheet +

Expect. OutputConstraints

(Model)Conversion

System description SD:

AB(D2) ˅ D2 = B2 + C2

AB(D3) ˅ D3 = D4 / D2

AB(B4) ˅ B4 = B3 * B2

Test case OBS:

D7 == 0,786

B7 == 0,750

For single faults:

SUM(AB(D2),AB(D3),…)==1

DiagnosesSolve

Single Fault:

o {D5}

o {D6}

o {D7}

Double Fault:

o {D3,D4}

o …Should be

78,6%

AB(D2) ˅ behavior(D2)

AB(D3) ˅ behavior(D3)

AB(B4) ˅ behavior(B4)

Page 5: Selected Topics of Software Technology 3 Model-based ... · sweet1 = 2 * red1 * green0; sour1 = 0; Selected Topics of Software Technology 3 81 Model-based Software Debugging Outline

Selected Topics of Software Technology 3

Model-based Software Debugging64

?

Repetition: Different Types of Models

Page 6: Selected Topics of Software Technology 3 Model-based ... · sweet1 = 2 * red1 * green0; sour1 = 0; Selected Topics of Software Technology 3 81 Model-based Software Debugging Outline

Selected Topics of Software Technology 3

Model-based Software Debugging65

Value-based Dependency-based

Repetition: Models for a Spreadsheet’s Behavior

+ exact, few diagnoses

– computation time

– Reals: lacking support

+ fast

+ only Boolean

– many diagnoses

D2 == B2 + C2

D3 == D4 / D2

B4 == B3 * B2

ok(B2) ok(C2) ok(D2)

ok(D4) ok(D2) ok(D3)

ok(B3) ok(B2) ok(B4)

Page 7: Selected Topics of Software Technology 3 Model-based ... · sweet1 = 2 * red1 * green0; sour1 = 0; Selected Topics of Software Technology 3 81 Model-based Software Debugging Outline

Selected Topics of Software Technology 3

Model-based Software Debugging66

?

Repetition: Different Types of Models

Page 8: Selected Topics of Software Technology 3 Model-based ... · sweet1 = 2 * red1 * green0; sour1 = 0; Selected Topics of Software Technology 3 81 Model-based Software Debugging Outline

Selected Topics of Software Technology 3

Model-based Software Debugging67

Example II – Continuation

Replace all discrete variables with Boolean variables

Replace the test case values with correctness information

All cells with input values are true

All cells with correct output values are true

All cells with incorrect output values are false

Replace all formula constraints with imply-constraints,

e.g. AND(B2,B3) B4

You can use the Minion Constraint min([var1,var2,…]),result)

to model ‘AND’

Page 9: Selected Topics of Software Technology 3 Model-based ... · sweet1 = 2 * red1 * green0; sour1 = 0; Selected Topics of Software Technology 3 81 Model-based Software Debugging Outline

Selected Topics of Software Technology 3

Model-based Software Debugging68

Example II – Continuation II

Compute the single fault diagnoses for this new

(dependency-based) model and compare the results

with those of the value-based model!

Explain the reason for the difference!

Do you have any ideas how to improve the

dependency-based model?

Page 10: Selected Topics of Software Technology 3 Model-based ... · sweet1 = 2 * red1 * green0; sour1 = 0; Selected Topics of Software Technology 3 81 Model-based Software Debugging Outline

Selected Topics of Software Technology 3

Model-based Software Debugging69

Example II

Reason for difference

Page 11: Selected Topics of Software Technology 3 Model-based ... · sweet1 = 2 * red1 * green0; sour1 = 0; Selected Topics of Software Technology 3 81 Model-based Software Debugging Outline

Selected Topics of Software Technology 3

Model-based Software Debugging70

Improving the Dependency-based Model

Use ↔ instead of → (wherever possible)

ook(B2) ok(C2) ↔ ok(D2)

ook(D4) ok(D2) ↔ ok(D3)

ook(B3) ok(B2) ↔ ok(B4)

Coincidental correctness

o Conditional like IF-function

o Abstraction function like MIN, MAX, COUNT

o Boolean

o Multiplication by zero

o Power with 0 or 1 as base number or 0 as exponent

Not possible in case of

Page 12: Selected Topics of Software Technology 3 Model-based ... · sweet1 = 2 * red1 * green0; sour1 = 0; Selected Topics of Software Technology 3 81 Model-based Software Debugging Outline

Selected Topics of Software Technology 3

Model-based Software Debugging71

Example II – Continuation III

Improve the dependency-based model and

compute the diagnoses!

Compare the results to the result of the other models!

Page 13: Selected Topics of Software Technology 3 Model-based ... · sweet1 = 2 * red1 * green0; sour1 = 0; Selected Topics of Software Technology 3 81 Model-based Software Debugging Outline

Selected Topics of Software Technology 3

Model-based Software Debugging72

Empirical Evaluation

Java implementation using

Apache POI

Minion Constraint solver

Spreadsheets from Integer corpus

Single faults only

94 spreadsheets

63 spreadsheets

Timeout (20 minutes) for 31 spreadsheets

for Value-based model

31 spreadsheets

Page 14: Selected Topics of Software Technology 3 Model-based ... · sweet1 = 2 * red1 * green0; sour1 = 0; Selected Topics of Software Technology 3 81 Model-based Software Debugging Outline

Selected Topics of Software Technology 3

Model-based Software Debugging73

Empirical Evaluation

Model 63 spreadsheets 31 spreadsheets

Number of single fault diagnoses

Value-based 4.0 -

Dependency-based 13.2 45.0

Improved Dep.-based 11.0 38.6

Runtime in ms

Value-based 56,818.8 > 20 minutes

Dependency-based 32.0 187.4

Improved Dep.-based 31.6 164.8

Page 15: Selected Topics of Software Technology 3 Model-based ... · sweet1 = 2 * red1 * green0; sour1 = 0; Selected Topics of Software Technology 3 81 Model-based Software Debugging Outline

Selected Topics of Software Technology 3

Model-based Software Debugging74

Comparison of the different models

Spreadsheet +

Expect. OutputConstraints

(Model)Conversion

AB(D2) ˅ behavior(D2)

AB(D3) ˅ behavior(D3)

AB(B4) ˅ behavior(B4)

DiagnosesSolve

Value-based (VB) Dependency-based (DB) Improved dep.-based (IDB)

D2 = B2 + C2 ok(B2) ∧ ok(C2) → ok(D2) ok(B2) ∧ ok(C2) ↔ ok(D2)

+ less diagnoses − many diagnoses ~ reduced number of diagnoses

3.3 times more than VB 15% less diagnoses than DB

− high computation time + low computation time + low computation time

1/3: 20 min timeout less than 1 second less than 1 second

2/3: 1 minuteCoincidental correctness Conditional like IF-function

Abstraction functions

Boolean

Multiplication and Power

Page 16: Selected Topics of Software Technology 3 Model-based ... · sweet1 = 2 * red1 * green0; sour1 = 0; Selected Topics of Software Technology 3 81 Model-based Software Debugging Outline

Selected Topics of Software Technology 3

Model-based Software Debugging75

Outline

Model-based debugging for Spreadsheets

o Dependency-based models

Model-based software debugging

for Java programs

o SSA form

o Loop unrolling

o Path modelling

o Combined approaches

Page 17: Selected Topics of Software Technology 3 Model-based ... · sweet1 = 2 * red1 * green0; sour1 = 0; Selected Topics of Software Technology 3 81 Model-based Software Debugging Outline

Selected Topics of Software Technology 3

Model-based Software Debugging76

1. public int[ ] getTastes(red, blue, green, yellow){

2. red = red * 5;

3. sweet = 2 * red * green; // FAULT

4. sour = 0;

5. i = 0;

6. while(i < red) {

7. sour = sour + green;

8. i = i + 1;

9. }

10. salty = blue + yellow;

11. yellow = sour + 1;

12. bitter = 2 * yellow + green; // FAULT

13. return {bitter, sweet, sour, salty};

14.}

Example

Source: Unravel project (http://hissa.nist.gov/unravel/)

Page 18: Selected Topics of Software Technology 3 Model-based ... · sweet1 = 2 * red1 * green0; sour1 = 0; Selected Topics of Software Technology 3 81 Model-based Software Debugging Outline

Selected Topics of Software Technology 3

Model-based Software Debugging77

red = red * 5;

sweet = 2 * red * green;

sour = 0;

Solution

red1 = red0 * 5;

sweet1 = 2 * red1 * green0;

sour1 = 0;

Execution

Trace

SSA conv.

Exec. Trace

Page 19: Selected Topics of Software Technology 3 Model-based ... · sweet1 = 2 * red1 * green0; sour1 = 0; Selected Topics of Software Technology 3 81 Model-based Software Debugging Outline

Selected Topics of Software Technology 3

Model-based Software Debugging78

red = red * 5;

sweet = 2 * red * green;

sour = 0;

Solution

red1 = red0 * 5;

sweet1 = 2 * red1 * green0;

sour1 = 0;

AB2 ˅ red1 == red0 * 5;

AB3 ˅ sweet1 == 2 * red1 * green0;

AB4 ˅ sour1 == 0;

Execution

Trace

SSA conv.

Exec. Trace

Constraints

Page 20: Selected Topics of Software Technology 3 Model-based ... · sweet1 = 2 * red1 * green0; sour1 = 0; Selected Topics of Software Technology 3 81 Model-based Software Debugging Outline

Selected Topics of Software Technology 3

Model-based Software Debugging79

watched-or({AB3, product(2, red_1,tmp_var_2)})

watched-or({AB3, product(tmp_var_2,green_0,tmp_var_3)})

watched-or({AB3, eq(sweet_0,tmp_var_3)})

Minion constraints

AB2 ˅ red1 == red0 * 5;

AB3 ˅ sweet1 == 2 * red1 * green0;

AB4 ˅ sour1 == 0;

watched-or({AB2, product(red_0,5,tmp_var_1)})

watched-or({AB2, eq(red_1,tmp_var_1)})

watched-or({AB4, eq(sour_1,0)})

Page 21: Selected Topics of Software Technology 3 Model-based ... · sweet1 = 2 * red1 * green0; sour1 = 0; Selected Topics of Software Technology 3 81 Model-based Software Debugging Outline

Selected Topics of Software Technology 3

Model-based Software Debugging80

AB2 ˅ red1 == red0*5;

AB3 ˅ sweet1 == 2*red1*green0;

AB4 ˅ sour1 == 0;Constraints

Constraint

Solver

Diagnoses

find all solutions

e.g. {13}

Execution

Trace

SSA conv.

Exec. Trace

red = red * 5;

sweet = 2 * red * green;

sour = 0;

red1 = red0 * 5;

sweet1 = 2 * red1 * green0;

sour1 = 0;

Page 22: Selected Topics of Software Technology 3 Model-based ... · sweet1 = 2 * red1 * green0; sour1 = 0; Selected Topics of Software Technology 3 81 Model-based Software Debugging Outline

Selected Topics of Software Technology 3

Model-based Software Debugging81

Outline

Model-based debugging for Spreadsheets

o Dependency-based models

Model-based software debugging

for Java programs

o SSA form

o Loop unrolling

o Path modelling

o Combined approaches

Page 23: Selected Topics of Software Technology 3 Model-based ... · sweet1 = 2 * red1 * green0; sour1 = 0; Selected Topics of Software Technology 3 81 Model-based Software Debugging Outline

Selected Topics of Software Technology 3

Model-based Software Debugging82

Loop unrolling

1. static public int test1() {

2. inta,b,c,d,i;

3. i= 1;

4. a = 1;

5. b = 2;

6. c = 3;

7. d = 4;

8. while (i< 3) {

9. a = b;

10. b = c;

11. c = d;

12. i++;

13. }

14. return a;

15. }

1. i= 1;

2. a = 1;

3. b = 2;

4. c = 3;

5. d = 4;

6. while (i< 3) // True

7. a = b;

8. b = c;

9. c = d;

10. i++;

11. while (i< 3) // True

12. a = b;

13. b = c;

14. c = d;

15. i++;

16. while (i< 3) // False

17. return a;

Execution trace

Page 24: Selected Topics of Software Technology 3 Model-based ... · sweet1 = 2 * red1 * green0; sour1 = 0; Selected Topics of Software Technology 3 81 Model-based Software Debugging Outline

Selected Topics of Software Technology 3

Model-based Software Debugging83

Outline

Model-based debugging for Spreadsheets

o Dependency-based models

Model-based software debugging

for Java programs

o SSA form

o Loop unrolling

o Path modelling

o Combined approaches

Page 25: Selected Topics of Software Technology 3 Model-based ... · sweet1 = 2 * red1 * green0; sour1 = 0; Selected Topics of Software Technology 3 81 Model-based Software Debugging Outline

Selected Topics of Software Technology 3

Model-based Software Debugging84

Triangle Example

1. public String getTriangleType(int in1, int in2, int in3){

2. a = in1;

3. b = in2;

4. c = in3;

5. if (!((a<0) && (b>0) && (c>0))) // condA

6. return “no triangle”;

7. else if ((a+b<c) || (a+c<b) || (b+c<a)) // condB

8. return “invalid”;

9. else if (a == b && a ==c) // condC

10. return “equilateral”;

11. else if (a == b || a == c || b == c) // condD

12. return “isosceles”;

13. else return “scalene”;

14. }

Test Case:

in1 = 2

in2 = 2

in3 = 3

out = “isosceles"

Page 26: Selected Topics of Software Technology 3 Model-based ... · sweet1 = 2 * red1 * green0; sour1 = 0; Selected Topics of Software Technology 3 81 Model-based Software Debugging Outline

Selected Topics of Software Technology 3

Model-based Software Debugging85

What happens if a fault causes changes in the execution path?a = in1

b = in2

c = in3

condAthen else

Out = “No trianglecondB

then

Out = “INVALID”

else

condC

then

Out = “equiliteral”

else

condD

then

Out = “isosceles”

else

Out = “scalene”

Page 27: Selected Topics of Software Technology 3 Model-based ... · sweet1 = 2 * red1 * green0; sour1 = 0; Selected Topics of Software Technology 3 81 Model-based Software Debugging Outline

Selected Topics of Software Technology 3

Model-based Software Debugging86

Modelling

?

¬ intrace0 ⋁ AB1 ⋁ a0 = in1

¬ intrace0 ⋁ AB2 ⋁ b0 = in2

¬ intrace0 ⋁ AB3 ⋁ c0 = in3

¬ intrace0 →¬ intrace1

AB4 → ¬ intrace1

¬ intrace0 ⋁ AB4 ⋁ ¬[(a0<0) ⋀ (b0>0) ⋀ (c0>0)]↔ intrace1

¬ intrace1 ⋁ AB5 ⋁ output0 = “No triangle”

in1 = 2

in2 = 2

in3 = 3

output0 = “isosceles"

intrace0

a = in1

b = in2

c = in3

condA

then else

Out = “No triangle

Page 28: Selected Topics of Software Technology 3 Model-based ... · sweet1 = 2 * red1 * green0; sour1 = 0; Selected Topics of Software Technology 3 81 Model-based Software Debugging Outline

Selected Topics of Software Technology 3

Model-based Software Debugging87

Modelling

?

¬ intrace0 ⋁ AB1 ⋁ a0 = in1

¬ intrace0 ⋁ AB2 ⋁ b0 = in2

¬ intrace0 ⋁ AB3 ⋁ c0 = in3

¬ intrace0 →¬ intrace1

AB4 → ¬ intrace1

¬ intrace0 ⋁ AB4 ⋁ ¬[(a0<0) ⋀ (b0>0) ⋀ (c0>0)]↔ intrace1

¬ intrace1 ⋁ AB5 ⋁ output0 = “No triangle”

in1 = 2

in2 = 2

in3 = 3

output0 = “isosceles"

intrace0

a = in1

b = in2

c = in3

condA

then else

Out = “No triangle

Page 29: Selected Topics of Software Technology 3 Model-based ... · sweet1 = 2 * red1 * green0; sour1 = 0; Selected Topics of Software Technology 3 81 Model-based Software Debugging Outline

Selected Topics of Software Technology 3

Model-based Software Debugging88

Modelling

?

¬ intrace0 ⋁ AB1 ⋁ a0 = in1

¬ intrace0 ⋁ AB2 ⋁ b0 = in2

¬ intrace0 ⋁ AB3 ⋁ c0 = in3

¬ intrace0 →¬ intrace1

AB4 → ¬ intrace1

¬ intrace0 ⋁ AB4 ⋁ ¬[(a0<0) ⋀ (b0>0) ⋀ (c0>0)]↔ intrace1

¬ intrace1 ⋁ AB5 ⋁ output0 = “No triangle”

in1 = 2

in2 = 2

in3 = 3

output0 = “isosceles"

intrace0

a = in1

b = in2

c = in3

condA

then else

Out = “No triangle

Page 30: Selected Topics of Software Technology 3 Model-based ... · sweet1 = 2 * red1 * green0; sour1 = 0; Selected Topics of Software Technology 3 81 Model-based Software Debugging Outline

Selected Topics of Software Technology 3

Model-based Software Debugging89

Modelling

?

¬ intrace0 ⋁ AB1 ⋁ a0 = in1

¬ intrace0 ⋁ AB2 ⋁ b0 = in2

¬ intrace0 ⋁ AB3 ⋁ c0 = in3

¬ intrace0 →¬ intrace1

AB4 → ¬ intrace1

¬ intrace0 ⋁ AB4 ⋁ ¬[(a0<0) ⋀ (b0>0) ⋀ (c0>0)]↔ intrace1

¬ intrace1 ⋁ AB5 ⋁ output0 = “No triangle”

in1 = 2

in2 = 2

in3 = 3

output0 = “isosceles"

intrace0

a = in1

b = in2

c = in3

condA

then else

Out = “No triangle

Page 31: Selected Topics of Software Technology 3 Model-based ... · sweet1 = 2 * red1 * green0; sour1 = 0; Selected Topics of Software Technology 3 81 Model-based Software Debugging Outline

Selected Topics of Software Technology 3

Model-based Software Debugging90

Traffic Light Example1. public static void test () {

2. TrafficLight tl = new TrafficLight(0); // initializes tl.state=0;

3. int i = 0;

4. int finalState;

5. while (i < 5) {

6. tl.printState();

7. if (tl.state == 0) {

8. tl.state = 1;

9. } else {

10. if (tl.state == 1) {

11. tl.state = 2;

12. } else {

13. if (tl.state == 2) {

14. tl.state = 3;

15. } else {

16. tl.state = 3; // should be tl.state = 0;

17. }

18. }

19. }

20. i++;

21. }

22. tl.printState();

23. finalState = tl.state;

24. }

Page 32: Selected Topics of Software Technology 3 Model-based ... · sweet1 = 2 * red1 * green0; sour1 = 0; Selected Topics of Software Technology 3 81 Model-based Software Debugging Outline

Selected Topics of Software Technology 3

Model-based Software Debugging91

Outline

Model-based debugging for Spreadsheets

o Dependency-based models

Model-based software debugging

for Java programs

o SSA form

o Loop unrolling

o Path modelling

o Combined approaches

Page 33: Selected Topics of Software Technology 3 Model-based ... · sweet1 = 2 * red1 * green0; sour1 = 0; Selected Topics of Software Technology 3 81 Model-based Software Debugging Outline

Selected Topics of Software Technology 3

Model-based Software Debugging92

Combined approaches

Refining Spectrum-based Rankings

DEPUTO

Spectrum-based Reasoning

BARINEL

Spectrum Enhanced Dynamic Slicing

SENDYS

Page 34: Selected Topics of Software Technology 3 Model-based ... · sweet1 = 2 * red1 * green0; sour1 = 0; Selected Topics of Software Technology 3 81 Model-based Software Debugging Outline

Selected Topics of Software Technology 3

Model-based Software Debugging93

DEPUTO [1]

[1] R. Abreu et al.: Refining spectrum-based fault localization rankings. In Proceedings of the 24th Annual

ACM Symposium on Applied Computing (SAC'09).

STEP 1:

Spectrum

based

Ranking

STEP 2:

Model

based

Debugging

(Filter)

1st ranked stmt.

2nd ranked stmt.

3rd ranked stmt.

Page 35: Selected Topics of Software Technology 3 Model-based ... · sweet1 = 2 * red1 * green0; sour1 = 0; Selected Topics of Software Technology 3 81 Model-based Software Debugging Outline

Selected Topics of Software Technology 3

Model-based Software Debugging94

BARINEL [2]

[2] R. Abreu et al.: Spectrum-based multiple fault localization. In Proceedings of the IEEE/ACM

International Conference on Automated Software Engineering (ASE'09).

Spectra

information

of neg. TC

DiagnosesHitting Sets RankingBayes’ rule

Page 36: Selected Topics of Software Technology 3 Model-based ... · sweet1 = 2 * red1 * green0; sour1 = 0; Selected Topics of Software Technology 3 81 Model-based Software Debugging Outline

Selected Topics of Software Technology 3

Model-based Software Debugging95

SENDYS [3]

[3] B. Hofer and F. Wotawa: Spectrum enhanced dynamic slicing for better fault localization. In The 20th

European Conference on Artficial Intelligence (ECAI 2012).

Slices as

Conflict Sets DiagnosesDiagnoses

Likelihood

Similarity

Coefficients

ProbabilitiesHitting Sets

Page 37: Selected Topics of Software Technology 3 Model-based ... · sweet1 = 2 * red1 * green0; sour1 = 0; Selected Topics of Software Technology 3 81 Model-based Software Debugging Outline

Selected Topics of Software Technology 3

Model-based Software Debugging96

Comparison

DEPUTO

performs best

but not scalable to large programs

BARINEL and SENDYS

good alternatives for larger programs

Page 38: Selected Topics of Software Technology 3 Model-based ... · sweet1 = 2 * red1 * green0; sour1 = 0; Selected Topics of Software Technology 3 81 Model-based Software Debugging Outline

Selected Topics of Software Technology 3

Model-based Software Debugging97

Summary

Approach

correct /

faulty

Result

User input

SFL MBSD CONBUG MUSSCO

Computational

Complexitylow

expected

valuesexpected

values

several times

expected

values

high high very high

ranking filtered set filtered set repair

single faultsFault

Complexity

multiple

faultsmultiple

faults

multiple

faults

Granularity block level Stmt. level Stmt. level fine