The Impact of Equivalent, Redundant and Quasi Mutants on Database - - PowerPoint PPT Presentation

the impact of equivalent redundant and quasi mutants on
SMART_READER_LITE
LIVE PREVIEW

The Impact of Equivalent, Redundant and Quasi Mutants on Database - - PowerPoint PPT Presentation

The Impact of Equivalent, Redundant and Quasi Mutants on Database Schema Mutation Analysis Chris J. Wright Gregory M. Kapfhammer Phil McMinn The Impact of Equivalent, Redundant and Quasi Mutants on Database Schema Mutation Analysis Chris J.


slide-1
SLIDE 1

The Impact of Equivalent, Redundant and Quasi Mutants on Database Schema Mutation Analysis

Chris J. Wright Gregory M. Kapfhammer Phil McMinn

slide-2
SLIDE 2

The Impact of Equivalent, Redundant and Quasi Mutants on Database Schema Mutation Analysis

Chris J. Wright Gregory M. Kapfhammer Phil McMinn

slide-3
SLIDE 3

The Impact of Equivalent, Redundant and Quasi Mutants on Database Schema Mutation Analysis

Chris J. Wright Gregory M. Kapfhammer Phil McMinn

slide-4
SLIDE 4

The Impact of Equivalent, Redundant and Quasi Mutants on Database Schema Mutation Analysis

Chris J. Wright Gregory M. Kapfhammer Phil McMinn

slide-5
SLIDE 5

The Impact of Equivalent, Redundant and Quasi Mutants on Database Schema Mutation Analysis

Chris J. Wright Gregory M. Kapfhammer Phil McMinn

slide-6
SLIDE 6

The Impact of Equivalent, Redundant and Quasi Mutants on Database Schema Mutation Analysis

Chris J. Wright Gregory M. Kapfhammer Phil McMinn

slide-7
SLIDE 7
slide-8
SLIDE 8

Database Schema

slide-9
SLIDE 9

Database Schema

1 CREATE TABLE T ( 2 A CHAR, B CHAR, C CHAR, 3 CONSTRAINT UniqueOnColsAandB UNIQUE (A, B) 4 ); 5 6 CREATE TABLE S ( 7 X CHAR, Y CHAR, Z CHAR, 8 CONSTRAINT RefToColsAandB FOREIGN KEY (X, Y) 9 REFERENCES T (A, B) 10 );

slide-10
SLIDE 10

Database Schema

1 CREATE TABLE T ( 2 A CHAR, B CHAR, C CHAR, 3 CONSTRAINT UniqueOnColsAandB UNIQUE (A, B) 4 ); 5 6 CREATE TABLE S ( 7 X CHAR, Y CHAR, Z CHAR, 8 CONSTRAINT RefToColsAandB FOREIGN KEY (X, Y) 9 REFERENCES T (A, B) 10 );

Tables

slide-11
SLIDE 11

Database Schema

1 CREATE TABLE T ( 2 A CHAR, B CHAR, C CHAR, 3 CONSTRAINT UniqueOnColsAandB UNIQUE (A, B) 4 ); 5 6 CREATE TABLE S ( 7 X CHAR, Y CHAR, Z CHAR, 8 CONSTRAINT RefToColsAandB FOREIGN KEY (X, Y) 9 REFERENCES T (A, B) 10 );

Columns

slide-12
SLIDE 12

Database Schema

1 CREATE TABLE T ( 2 A CHAR, B CHAR, C CHAR, 3 CONSTRAINT UniqueOnColsAandB UNIQUE (A, B) 4 ); 5 6 CREATE TABLE S ( 7 X CHAR, Y CHAR, Z CHAR, 8 CONSTRAINT RefToColsAandB FOREIGN KEY (X, Y) 9 REFERENCES T (A, B) 10 );

Constraints

slide-13
SLIDE 13

Why Test a Database Schema?

slide-14
SLIDE 14

Why Test a Database Schema?

Database Schema

slide-15
SLIDE 15

Why Test a Database Schema?

DBMS Database Schema

slide-16
SLIDE 16

Why Test a Database Schema?

DBMS

Database Schema

slide-17
SLIDE 17

Why Test a Database Schema?

DBMS Application Web Server Third Party

Database Schema

slide-18
SLIDE 18

Why Test a Database Schema?

DBMS Application Web Server Third Party

Database Schema

✗ ✗ ✗ ✗

slide-19
SLIDE 19

How to Test a Database Schema

slide-20
SLIDE 20

How to Test a Database Schema

  • Generate test data – SQL INSERT statements
slide-21
SLIDE 21

How to Test a Database Schema

  • Generate test data – SQL INSERT statements

INSERT INTO T(a, b) VALUES('a', 'b');

slide-22
SLIDE 22

How to Test a Database Schema

  • Generate test data – SQL INSERT statements

INSERT INTO T(a, b) VALUES('a', 'b');

slide-23
SLIDE 23

How to Test a Database Schema

  • Generate test data – SQL
  • Execute the data against the database

INSERT INTO T(a, b) VALUES('a', 'b');

DBMS

slide-24
SLIDE 24

How to Test a Database Schema

  • Generate test data – SQL
  • Execute the data against the database
  • Examine the acceptance of statements

INSERT INTO T(a, b) VALUES('a', 'b');

DBMS

✓/

slide-25
SLIDE 25

Mutation Analysis

slide-26
SLIDE 26

Mutation Analysis

Application

slide-27
SLIDE 27

Mutation Analysis

Application

Mutation Operators

slide-28
SLIDE 28

Mutation Analysis

Application Mutants

Mutation Operators

slide-29
SLIDE 29

Mutation Analysis

Application Mutants

Mutation Operators Test suite

slide-30
SLIDE 30

Mutation Analysis

Application Mutants

Mutation Operators Test suite

Test results

slide-31
SLIDE 31

Mutation Analysis

Application Mutants

Mutation Operators Test suite Test suite

Test results

slide-32
SLIDE 32

Mutation Analysis

Application Mutants

Mutation Operators Test suite Test suite

Test results Test results

slide-33
SLIDE 33

Mutation Analysis

Application Mutants

Mutation Operators Test suite Test suite

Test results Test results

Comparison

slide-34
SLIDE 34

Mutation Analysis

Application Mutants

Mutation Operators Test suite Test suite

Test results Test results

Comparison

Mutation Score

slide-35
SLIDE 35

Mutation Analysis

Application Mutants

Mutation Operators Test suite Test suite

Test results Test results

Comparison

Mutation Score

slide-36
SLIDE 36

Database Schema Mutation Operators

slide-37
SLIDE 37

Database Schema Mutation Operators

Primary Key Foreign Key Unique Not Null Check

slide-38
SLIDE 38

Database Schema Mutation Operators

Primary Key Foreign Key Unique Not Null Check

×

slide-39
SLIDE 39

Database Schema Mutation Operators

Primary Key Foreign Key Unique Not Null Check Column Addition

×

slide-40
SLIDE 40

Database Schema Mutation Operators

Primary Key Foreign Key Unique Not Null Check Column Addition Column Removal

×

slide-41
SLIDE 41

Database Schema Mutation Operators

Primary Key Foreign Key Unique Not Null Check Column Addition Column Removal Column Exchange

×

slide-42
SLIDE 42

Database Schema Mutation Operators

slide-43
SLIDE 43

Database Schema Mutation Operators

Primary Key Column Addition

slide-44
SLIDE 44

Database Schema Mutation Operators

Primary Key Column Addition

1 CREATE TABLE T ( 2 A CHAR, B CHAR, 3 PRIMARY KEY (A) 4 );

slide-45
SLIDE 45

Database Schema Mutation Operators

Primary Key Column Addition

1 CREATE TABLE T ( 2 A CHAR, B CHAR, 3 PRIMARY KEY (A) 4 ); 1 CREATE TABLE T ( 2 A CHAR, B CHAR, 3 PRIMARY KEY (A, B) 4 );

slide-46
SLIDE 46

Database Schema Mutation Operators

Primary Key Column Exchange

1 CREATE TABLE T ( 2 A CHAR, B CHAR, 3 PRIMARY KEY (A) 4 ); 1 CREATE TABLE T ( 2 A CHAR, B CHAR, 3 PRIMARY KEY (B) 4 );

slide-47
SLIDE 47

Database Schema Mutation Operators

Primary Key Column Removal

1 CREATE TABLE T ( 2 A CHAR, B CHAR, 3 PRIMARY KEY (A) 4 ); 1 CREATE TABLE T ( 2 A CHAR, B CHAR, 3 4 );

slide-48
SLIDE 48

Mutation Analysis – Challenges

slide-49
SLIDE 49

Mutation Analysis – Challenges

  • Special classes of mutants
slide-50
SLIDE 50

Mutation Analysis – Challenges

  • Special classes of mutants
  • Equivalent
slide-51
SLIDE 51

Mutation Analysis – Challenges

  • Special classes of mutants
  • Equivalent
  • Redundant
slide-52
SLIDE 52

Mutation Analysis – Challenges

  • Special classes of mutants
  • Equivalent
  • Redundant
  • Quasi-mutants
slide-53
SLIDE 53

Mutation Analysis – Challenges

  • Special classes of mutants
  • Equivalent
  • Redundant
  • Quasi-mutants
slide-54
SLIDE 54

Equivalent Mutants

slide-55
SLIDE 55

Equivalent Mutants

  • Functionally identical to non-mutant
slide-56
SLIDE 56

Equivalent Mutants

  • Functionally identical to non-mutant
  • …but syntactically different
slide-57
SLIDE 57

Equivalent Mutants

  • Functionally identical to non-mutant
  • …but syntactically different
  • Cannot be ‘killed’
slide-58
SLIDE 58

Equivalent Mutants

  • Functionally identical to non-mutant
  • …but syntactically different
  • Cannot be ‘killed’
  • Artificially decrease mutation score
slide-59
SLIDE 59

Equivalent Mutants

  • Functionally identical to non-mutant
  • …but syntactically different
  • Cannot be ‘killed’
  • Artificially decrease mutation score
slide-60
SLIDE 60

Equivalent Mutants

slide-61
SLIDE 61

Equivalent Mutants

1 CREATE TABLE T ( 2 A CHAR, 3 PRIMARY KEY (A) 4 );

Original:

slide-62
SLIDE 62

Equivalent Mutants

1 CREATE TABLE T ( 2 A CHAR, 3 PRIMARY KEY (A) 4 ); 1 CREATE TABLE T ( 2 A CHAR NOT NULL, 3 PRIMARY KEY (A) 4 );

Original: Mutant:

slide-63
SLIDE 63

Redundant Mutants

slide-64
SLIDE 64

Redundant Mutants

  • Functionally identical to another mutant
slide-65
SLIDE 65

Redundant Mutants

  • Functionally identical to
  • …but syntactically different
slide-66
SLIDE 66

Redundant Mutants

  • Functionally identical to
  • …but syntactically different
  • May be ‘killed’
slide-67
SLIDE 67

Redundant Mutants

  • Functionally identical to
  • …but syntactically different
  • May be ‘killed’
  • Artificially alters mutation score
slide-68
SLIDE 68

Redundant Mutants

  • Functionally identical to
  • …but syntactically different
  • May be ‘killed’
  • Artificially alters mutation score
  • Reduces efficiency
slide-69
SLIDE 69

Redundant Mutants

  • Functionally identical to
  • …but syntactically different
  • May be ‘killed’
  • Artificially alters mutation score
  • Reduces efficiency
slide-70
SLIDE 70

Types of Equivalence

slide-71
SLIDE 71

Types of Equivalence

  • Structural
slide-72
SLIDE 72

Types of Equivalence

  • Structural
  • Functionally irrelevant syntactic differences
slide-73
SLIDE 73

Types of Equivalence

  • Structural
  • Functionally irrelevant syntactic differences
slide-74
SLIDE 74

Types of Equivalence

  • Structural
  • Functionally irrelevant syntactic differences
  • Behavioural
slide-75
SLIDE 75

Types of Equivalence

  • Structural
  • Functionally irrelevant syntactic differences
  • Behavioural
  • Overlap within SQL features
slide-76
SLIDE 76

Types of Equivalence

  • Structural
  • Functionally irrelevant syntactic differences
  • Behavioural
  • Overlap within SQL features
slide-77
SLIDE 77

Behavioural Equivalence Patterns

slide-78
SLIDE 78

Behavioural Equivalence Patterns

  • NOT NULL in CHECK constraints
  • NOT NULL ≅ CHECK(… IS NOT NULL)
slide-79
SLIDE 79

Behavioural Equivalence Patterns

  • NOT NULL in CHECK constraints
  • NOT NULL ≅ CHECK(… IS NOT NULL)

1 CREATE TABLE T ( 2 A CHAR NOT NULL, 3 ); 1 CREATE TABLE T ( 2 A CHAR, 3 CHECK(A IS NOT NULL) 4 );

slide-80
SLIDE 80

Behavioural Equivalence Patterns

slide-81
SLIDE 81

Behavioural Equivalence Patterns

  • NOT NULL on PRIMARY KEY columns
slide-82
SLIDE 82

Behavioural Equivalence Patterns

  • NOT NULL on PRIMARY KEY columns
  • Implicit NOT NULL on PRIMARY KEY
slide-83
SLIDE 83

Behavioural Equivalence Patterns

  • NOT NULL on PRIMARY KEY columns
  • Implicit NOT NULL on PRIMARY KEY
  • (Only PostgreSQL and HyperSQL)
slide-84
SLIDE 84

Behavioural Equivalence Patterns

  • NOT NULL on PRIMARY KEY columns
slide-85
SLIDE 85

Behavioural Equivalence Patterns

  • NOT NULL on PRIMARY KEY columns

1 CREATE TABLE T ( 2 A CHAR, 3 PRIMARY KEY (A) 4 ); 1 CREATE TABLE T ( 2 A CHAR NOT NULL, 3 PRIMARY KEY (A) 4 );

slide-86
SLIDE 86

Behavioural Equivalence Patterns

slide-87
SLIDE 87

Behavioural Equivalence Patterns

  • UNIQUE and PRIMARY KEY with shared

columns

slide-88
SLIDE 88

Behavioural Equivalence Patterns

  • UNIQUE and PRIMARY KEY with shared

columns

1 CREATE TABLE T ( 2 A CHAR, 3 PRIMARY KEY (A) 4 ); 1 CREATE TABLE T ( 2 A CHAR, 3 PRIMARY KEY (A), 4 UNIQUE (A) 5 );

slide-89
SLIDE 89

Quasi-mutants

slide-90
SLIDE 90

Quasi-mutants

  • Operators produce DBMS-agnostic mutants
slide-91
SLIDE 91

Quasi-mutants

  • Operators produce DBMS-agnostic mutants
  • Some DBMSs have implicit constraints
slide-92
SLIDE 92

Quasi-mutants

  • Operators produce DBMS-agnostic mutants
  • Some DBMSs have implicit constraints
  • Valid for some DBMSs, invalid for others

HyperSQL PostgreSQL SQLite✓

✗ ✗

slide-93
SLIDE 93

Quasi-mutants

  • Operators produce DBMS-agnostic mutants
  • Some DBMSs have implicit constraints
  • Valid for some DBMSs, invalid for others
  • HyperSQL

PostgreSQL SQLite✓

✗ ✗

slide-94
SLIDE 94

Quasi-mutants

SQLite✓ PostgreSQL

HyperSQL✗

slide-95
SLIDE 95

Quasi-mutants

  • Cannot adversely affect mutation score

SQLite✓ PostgreSQL

HyperSQL✗

slide-96
SLIDE 96

Quasi-mutants

  • Cannot adversely affect mutation score
  • …but may preclude some optimisations

SQLite✓ PostgreSQL

HyperSQL✗

slide-97
SLIDE 97

Quasi-mutants

  • Cannot adversely affect mutation score
  • …but may preclude some optimisations
  • Remove when DBMS will ‘reject’ them

SQLite✓ PostgreSQL

HyperSQL✗

slide-98
SLIDE 98

Types of Quasi-mutants

slide-99
SLIDE 99

Types of Quasi-mutants

  • Representative example
slide-100
SLIDE 100

Types of Quasi-mutants

  • Representative example
  • DBMS: PostgreSQL, HyperSQL
slide-101
SLIDE 101

Types of Quasi-mutants

  • Representative example
  • DBMS: PostgreSQL, HyperSQL
  • ∀ FK(reference columns) ∃ 


(PK(reference columns) ∨ 
 Unique(reference columns))

slide-102
SLIDE 102

Types of Quasi-mutants

  • Representative example
  • DBMS: PostgreSQL, HyperSQL
  • ∀ FK(reference columns) ∃ 


(PK(reference columns) ∨ 
 Unique(reference columns))

slide-103
SLIDE 103

Types of Quasi-mutants

  • Representative example
  • DBMS: PostgreSQL, HyperSQL
  • ∀ FK(reference columns) ∃ 


(PK(reference columns) ∨ 
 Unique(reference columns))

slide-104
SLIDE 104

Types of Quasi-mutants

  • Representative example
  • DBMS: PostgreSQL, HyperSQL
  • ∀ FK(reference columns) ∃ 


(PK(reference columns) ∨ 
 Unique(reference columns))

slide-105
SLIDE 105

Types of Quasi-mutants

  • Representative example
  • DBMS: PostgreSQL, HyperSQL
  • ∀ FK(reference columns) ∃ 


(PK(reference columns) ∨ 
 Unique(reference columns))

slide-106
SLIDE 106

Types of Quasi-mutants

  • Representative example
  • DBMS: PostgreSQL, HyperSQL

(PK(reference columns) Unique(reference

slide-107
SLIDE 107

Detecting Quasi-mutants

slide-108
SLIDE 108

Detecting Quasi-mutants

  • Submit to DBMS
slide-109
SLIDE 109

Detecting Quasi-mutants

  • Submit to DBMS
  • 100% accurate
slide-110
SLIDE 110

Detecting Quasi-mutants

  • Submit to DBMS
  • 100% accurate
  • Convert representation to SQL, submit to database,

inspect response

slide-111
SLIDE 111

Detecting Quasi-mutants

  • Submit to DBMS
  • 100% accurate
  • Convert representation to SQL, submit to database,

inspect response

  • Analyse statically
slide-112
SLIDE 112

Detecting Quasi-mutants

  • Submit to DBMS
  • 100% accurate
  • Convert representation to SQL, submit to database,

inspect response

  • Analyse statically
  • Operates directly on representation
slide-113
SLIDE 113

Detecting Quasi-mutants

  • Submit to DBMS
  • 100% accurate
  • Convert representation to SQL, submit to database,

inspect response

  • Analyse statically
  • Operates directly on representation
  • DBMS-specific implementation
slide-114
SLIDE 114

Empirical Study

slide-115
SLIDE 115

Empirical Study

  • 1. Quasi-mutant detection – DBMS v Static Analysis
slide-116
SLIDE 116

Empirical Study

  • 1. Quasi-mutant detection – DBMS v Static Analysis
  • 2. Equivalent, Redundant and Quasi-mutant

removal – Efficiency?

slide-117
SLIDE 117

Empirical Study

  • 1. Quasi-mutant detection – DBMS v Static Analysis
  • 2. Equivalent, Redundant and Quasi-mutant

removal – Efficiency?

  • 3. Equivalent, Redundant and Quasi-mutant

removal – Effectiveness?

slide-118
SLIDE 118

Empirical Study

slide-119
SLIDE 119

Empirical Study

  • 16 schemas
slide-120
SLIDE 120

Empirical Study

  • 16 schemas
  • 2 DBMSs – PostgreSQL, HyperSQL
slide-121
SLIDE 121

Empirical Study

  • 16 schemas
  • 2 DBMSs – PostgreSQL, HyperSQL
  • 15 repeat trials
slide-122
SLIDE 122

Empirical Study

  • 16 schemas
  • 2 DBMSs – PostgreSQL, HyperSQL
  • 15 repeat trials
slide-123
SLIDE 123

Empirical Study – Quasi-mutants

slide-124
SLIDE 124

Empirical Study – Quasi-mutants

  • 5 conditions:
slide-125
SLIDE 125

Empirical Study – Quasi-mutants

  • 5 conditions:
  • Postgres (with/without transactions)
slide-126
SLIDE 126

Empirical Study – Quasi-mutants

  • 5 conditions:
  • Postgres (with/without transactions)
  • HyperSQL (with/without transactions)
slide-127
SLIDE 127

Empirical Study – Quasi-mutants

  • 5 conditions:
  • Postgres (with/without transactions)
  • HyperSQL (with/without transactions)
  • Static analysis
slide-128
SLIDE 128

Empirical Study – Quasi-mutants

  • 5 conditions:
  • Postgres (with/without transactions)
  • HyperSQL (with/without transactions)
  • Static analysis
slide-129
SLIDE 129

Empirical Study – Quasi-mutants

  • 0.00

0.25 0.50 0.75 1.00 1.25 HyperSQL HyperSQL Trans. Postgres Postgres Trans. Static

Approach Scaled Time Taken

slide-130
SLIDE 130

Empirical Study – Mutant Removal

slide-131
SLIDE 131

Empirical Study – Mutant Removal

  • 2 conditions – with and without removal
slide-132
SLIDE 132

Empirical Study – Mutant Removal

  • 2 conditions – with and without removal
  • 2 metrics –
slide-133
SLIDE 133

Empirical Study – Mutant Removal

  • 2 conditions – with and without removal
  • 2 metrics –
  • Time taken for mutation analysis
slide-134
SLIDE 134

Empirical Study – Mutant Removal

  • 2 conditions – with and without removal
  • 2 metrics –
  • Time taken for mutation analysis
  • Mutation score
slide-135
SLIDE 135

Empirical Study – Mutant Removal

slide-136
SLIDE 136
  • HyperSQL – Time saved
  • Best case: 718ms (23.05%)
  • Worst case: -824ms (-9.71%)

Empirical Study – Mutant Removal

slide-137
SLIDE 137

Empirical Study – Mutant Removal

slide-138
SLIDE 138
  • HyperSQL – Time saved

Empirical Study – Mutant Removal

slide-139
SLIDE 139
  • HyperSQL – Time saved
  • 9/16 mean time decrease (p < 0.05)

Empirical Study – Mutant Removal

slide-140
SLIDE 140
  • HyperSQL – Time saved
  • 9/16 mean time decrease (
  • 7/16 mean time increase (p < 0.05)

Empirical Study – Mutant Removal

slide-141
SLIDE 141
  • HyperSQL – Time saved
  • 9/16 mean time decrease (
  • 7/16 mean time increase (
  • Overall, decrease (1.6% mean, 1.4% median)

Empirical Study – Mutant Removal

slide-142
SLIDE 142

Empirical Study – Mutant Removal

slide-143
SLIDE 143
  • PostgreSQL – Time saved
  • Best case: 317,208ms (33.71%)
  • Worst case: -3,086ms, (-0.33%)

Empirical Study – Mutant Removal

slide-144
SLIDE 144

Empirical Study – Mutant Removal

slide-145
SLIDE 145
  • PostgreSQL – Time saved

Empirical Study – Mutant Removal

slide-146
SLIDE 146
  • PostgreSQL – Time saved
  • 14/16 mean time decrease (p < 0.05)

Empirical Study – Mutant Removal

slide-147
SLIDE 147
  • PostgreSQL – Time saved
  • 14/16 mean time decrease (
  • 2/16 mean time increase (p < 0.05)

Empirical Study – Mutant Removal

slide-148
SLIDE 148
  • PostgreSQL – Time saved
  • 14/16 mean time decrease (
  • 2/16 mean time increase (
  • Overall, decrease (12.7% mean, 11.8% median)

Empirical Study – Mutant Removal

slide-149
SLIDE 149

Empirical Study – Mutant Removal

DBMS Time saved (ms) Median Mean

slide-150
SLIDE 150

Empirical Study – Mutant Removal

DBMS Time saved (ms) Median Mean HyperSQL 36.2 7.5

slide-151
SLIDE 151

Empirical Study – Mutant Removal

DBMS Time saved (ms) Median Mean HyperSQL 36.2 7.5 Postgres 8,071 50,880

slide-152
SLIDE 152

Empirical Study – Mutant Removal

DBMS Time saved (ms) Median Mean HyperSQL 36.2 7.5 Postgres 8,071 50,880 Both 229.9 25,450

slide-153
SLIDE 153

Empirical Study – Mutant Removal

DBMS Time saved (%) Median Mean HyperSQL 1.4 1.6 Postgres 12.7 11.8 Both 4.7 6.7

slide-154
SLIDE 154

Empirical Study – Mutant Removal

slide-155
SLIDE 155
  • HyperSQL – Mutation score
  • 75% Increased
  • 44% Adequate
  • 25% No change

Empirical Study – Mutant Removal

slide-156
SLIDE 156
  • PostgreSQL – Mutation score
  • 75% Increased
  • 44% Adequate
  • 25% No change

Empirical Study – Mutant Removal

slide-157
SLIDE 157

Empirical Study – Mutant Removal

DBMS Scores changed (%) Increased (adequate) No change HyperSQL 75 (44) 25 Postgres 75 (44) 25 Both 75 (44) 25

slide-158
SLIDE 158

Conclusion

  • 1. Quasi-mutant detection – DBMS v Static Analysis
  • 2. Equivalent, Redundant and Quasi-mutant

removal – Efficiency?

  • 3. Equivalent, Redundant and Quasi-mutant

removal – Effectiveness?

slide-159
SLIDE 159

Conclusion

  • 1. Quasi-mutant detection – DBMS v Static Analysis
  • 2. Equivalent, Redundant and Quasi-mutant

removal – Efficiency?

  • 3. Equivalent, Redundant and Quasi-mutant

removal – Effectiveness?

slide-160
SLIDE 160

Conclusion

  • 1. Quasi-mutant detection – DBMS v Static Analysis
  • 2. Equivalent, Redundant and Quasi-mutant

removal – Efficiency?

  • 3. Equivalent, Redundant and Quasi-mutant

removal – Effectiveness?

slide-161
SLIDE 161

Conclusion

  • 1. Quasi-mutant detection – Improved efficiency
  • 2. Equivalent, Redundant and Quasi-mutant

removal – Improved efficiency

  • 3. Equivalent, Redundant and Quasi-mutant

removal – Improved effectiveness

slide-162
SLIDE 162

Conclusion

  • 1. Quasi-mutant detection – Improved efficiency
  • 2. Equivalent, Redundant and Quasi-mutant

removal – Improved efficiency

  • 3. Equivalent, Redundant and Quasi-mutant

removal – Improved effectiveness

Chris J. Wright – aca08cw@sheffield.ac.uk