Share
Embed
Efficient mutation analysis of relational database structure using mutant schemata and parallelisation
Interested in learning more about this topic? Visit this web site to read the paper: https://www.gregorykapfhammer.com/research/papers/Wright2013/
Gregory Kapfhammer
March 18, 2013
Transcript
209 slides
-
Efficient Mutation Analysis of Relational Database Structure Using Mutant Schemata
and Parallelisation Chris J. Wright Gregory M. Kapfhammer Phil McMinn Mutation 2013 -
Chris J. Wright - [email protected] 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 ); Database Schema -
Chris J. Wright - [email protected] 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 ); Database Schema Tables -
Chris J. Wright - [email protected] 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 ); Database Schema Columns -
Chris J. Wright - [email protected] 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 ); Database Schema Constraints -
Chris J. Wright - [email protected] 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 ); Database Schema How do we know this is correct? -
Chris J. Wright - [email protected] DBMS Database Schema Why Test
Database Structure? -
Chris J. Wright - [email protected] DBMS Database Schema Why Test
Database Structure? -
Chris J. Wright - [email protected] DBMS Application Database Schema Why
Test Database Structure? -
Chris J. Wright - [email protected] DBMS Application Web Server Database
Schema Why Test Database Structure? -
Chris J. Wright - [email protected] DBMS Application Web Server Third
Party Database Schema Why Test Database Structure? -
Chris J. Wright - [email protected] DBMS Application Web Server Third
Party Database Schema ✗ Why Test Database Structure? -
Chris J. Wright - [email protected] DBMS Application Web Server Third
Party Database Schema ✗ ✗ Why Test Database Structure? -
Chris J. Wright - [email protected] DBMS Application Web Server Third
Party Database Schema ✗ ✗ ✗ Why Test Database Structure? -
Chris J. Wright - [email protected] DBMS Application Web Server Third
Party Database Schema ✗ ✗ ✗ ✗ Why Test Database Structure? -
Chris J. Wright - [email protected] Mutation Analysis 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 ); Database Insert Statements -
Chris J. Wright - [email protected] Mutation Analysis 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 ); Database Insert Statements -
Chris J. Wright - [email protected] Mutation Analysis 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 ); INSERT INTO T(A, B, C) VALUES('a', 'a', 'a'); Database Insert Statements -
Chris J. Wright - [email protected] Mutation Analysis 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 ); INSERT INTO T(A, B, C) VALUES('a', 'a', 'a'); ✓ Database Insert Statements -
Chris J. Wright - [email protected] Mutation Analysis 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 ); INSERT INTO T(A, B, C) VALUES('a', 'a', 'a'); ✓ Database Insert Statements -
Chris J. Wright - [email protected] Mutation Analysis 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 ); INSERT INTO T(A, B, C) VALUES('a', 'a', 'a'); ✓ INSERT INTO T(A, B, C) VALUES('a', 'a', 'a'); Database Insert Statements -
Chris J. Wright - [email protected] Mutation Analysis 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 ); INSERT INTO T(A, B, C) VALUES('a', 'a', 'a'); ✓ INSERT INTO T(A, B, C) VALUES('a', 'a', 'a'); ✗ Database Insert Statements -
Chris J. Wright - [email protected] Mutation Analysis 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 ); INSERT INTO T(A, B, C) VALUES('a', 'a', 'a'); ✓ INSERT INTO T(A, B, C) VALUES('a', 'a', 'a'); ✗ Database Insert Statements -
Chris J. Wright - [email protected] Mutation Analysis 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 ); INSERT INTO T(A, B, C) VALUES('a', 'a', 'a'); ✓ INSERT INTO T(A, B, C) VALUES('a', 'a', 'a'); ✗ INSERT INTO S(X, Y, Z) VALUES('a', 'a', 'b'); Database Insert Statements -
Chris J. Wright - [email protected] Mutation Analysis 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 ); INSERT INTO T(A, B, C) VALUES('a', 'a', 'a'); ✓ INSERT INTO T(A, B, C) VALUES('a', 'a', 'a'); ✗ INSERT INTO S(X, Y, Z) VALUES('a', 'a', 'b'); ✓ Database Insert Statements -
Chris J. Wright - [email protected] Mutation Analysis 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 ); INSERT INTO T(A, B, C) VALUES('a', 'a', 'a'); ✓ INSERT INTO T(A, B, C) VALUES('a', 'a', 'a'); ✗ INSERT INTO S(X, Y, Z) VALUES('a', 'a', 'b'); ✓ Database Insert Statements -
Chris J. Wright - [email protected] Mutation Analysis 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 ); INSERT INTO T(A, B, C) VALUES('a', 'a', 'a'); ✓ INSERT INTO T(A, B, C) VALUES('a', 'a', 'a'); ✗ INSERT INTO S(X, Y, Z) VALUES('a', 'a', 'b'); ✓ Database Insert Statements INSERT INTO S(X, Y, Z) VALUES('a', 'b', 'a'); -
Chris J. Wright - [email protected] Mutation Analysis 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 ); INSERT INTO T(A, B, C) VALUES('a', 'a', 'a'); ✓ INSERT INTO T(A, B, C) VALUES('a', 'a', 'a'); ✗ INSERT INTO S(X, Y, Z) VALUES('a', 'a', 'b'); ✓ Database Insert Statements INSERT INTO S(X, Y, Z) VALUES('a', 'b', 'a'); ✗ -
Chris J. Wright - [email protected] Mutation Analysis 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 ); INSERT INTO T(A, B, C) VALUES('a', 'a', 'a'); ✓ INSERT INTO T(A, B, C) VALUES('a', 'a', 'a'); ✗ INSERT INTO S(X, Y, Z) VALUES('a', 'a', 'b'); ✓ Database Insert Statements INSERT INTO S(X, Y, Z) VALUES('a', 'b', 'a'); ✗ -
Chris J. Wright - [email protected] Mutating the Structure 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, ) 9 REFERENCES T (A, B) 10 ); Y Z -
Chris J. Wright - [email protected] Mutating the Structure 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, ) 9 REFERENCES T (A, B) 10 ); Y Z -
Chris J. Wright - [email protected] Mutating the Structure 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, ) 9 REFERENCES T (A, B) 10 ); Y Z -
Chris J. Wright - [email protected] Mutating the Structure 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, ) 9 REFERENCES T (A, B) 10 ); Y Z -
Chris J. Wright - [email protected] Mutation Analysis 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, Z) 9 REFERENCES T (A, B) 10 ); -
Chris J. Wright - [email protected] Mutation Analysis 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, Z) 9 REFERENCES T (A, B) 10 ); -
Chris J. Wright - [email protected] Mutation Analysis 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, Z) 9 REFERENCES T (A, B) 10 ); Database (mutated) -
Chris J. Wright - [email protected] Mutation Analysis 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, Z) 9 REFERENCES T (A, B) 10 ); Database (mutated) Insert Statements -
Chris J. Wright - [email protected] Mutation Analysis 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, Z) 9 REFERENCES T (A, B) 10 ); INSERT INTO T(A, B, C) VALUES('a', 'a', 'a'); Database (mutated) Insert Statements -
Chris J. Wright - [email protected] Mutation Analysis 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, Z) 9 REFERENCES T (A, B) 10 ); INSERT INTO T(A, B, C) VALUES('a', 'a', 'a'); ✓ Database (mutated) Insert Statements -
Chris J. Wright - [email protected] Mutation Analysis 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, Z) 9 REFERENCES T (A, B) 10 ); INSERT INTO T(A, B, C) VALUES('a', 'a', 'a'); ✓ Database (mutated) Insert Statements -
Chris J. Wright - [email protected] Mutation Analysis 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, Z) 9 REFERENCES T (A, B) 10 ); INSERT INTO T(A, B, C) VALUES('a', 'a', 'a'); ✓ INSERT INTO T(A, B, C) VALUES('a', 'a', 'a'); Database (mutated) Insert Statements -
Chris J. Wright - [email protected] Mutation Analysis 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, Z) 9 REFERENCES T (A, B) 10 ); INSERT INTO T(A, B, C) VALUES('a', 'a', 'a'); ✓ INSERT INTO T(A, B, C) VALUES('a', 'a', 'a'); ✗ Database (mutated) Insert Statements -
Chris J. Wright - [email protected] Mutation Analysis 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, Z) 9 REFERENCES T (A, B) 10 ); INSERT INTO T(A, B, C) VALUES('a', 'a', 'a'); ✓ INSERT INTO T(A, B, C) VALUES('a', 'a', 'a'); ✗ Database (mutated) Insert Statements -
Chris J. Wright - [email protected] Mutation Analysis 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, Z) 9 REFERENCES T (A, B) 10 ); INSERT INTO T(A, B, C) VALUES('a', 'a', 'a'); ✓ INSERT INTO T(A, B, C) VALUES('a', 'a', 'a'); ✗ INSERT INTO S(X, Y, Z) VALUES('a', 'a', 'b'); Database (mutated) Insert Statements -
Chris J. Wright - [email protected] Mutation Analysis 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, Z) 9 REFERENCES T (A, B) 10 ); INSERT INTO T(A, B, C) VALUES('a', 'a', 'a'); ✓ INSERT INTO T(A, B, C) VALUES('a', 'a', 'a'); ✗ INSERT INTO S(X, Y, Z) VALUES('a', 'a', 'b'); ✓ Database (mutated) Insert Statements -
Chris J. Wright - [email protected] Mutation Analysis 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, Z) 9 REFERENCES T (A, B) 10 ); INSERT INTO T(A, B, C) VALUES('a', 'a', 'a'); ✓ INSERT INTO T(A, B, C) VALUES('a', 'a', 'a'); ✗ INSERT INTO S(X, Y, Z) VALUES('a', 'a', 'b'); ✓ Database (mutated) Insert Statements -
Chris J. Wright - [email protected] Mutation Analysis 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, Z) 9 REFERENCES T (A, B) 10 ); INSERT INTO T(A, B, C) VALUES('a', 'a', 'a'); ✓ INSERT INTO T(A, B, C) VALUES('a', 'a', 'a'); ✗ INSERT INTO S(X, Y, Z) VALUES('a', 'a', 'b'); ✓ Database (mutated) Insert Statements INSERT INTO S(X, Y, Z) VALUES('a', 'b', 'a'); -
Chris J. Wright - [email protected] Mutation Analysis 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, Z) 9 REFERENCES T (A, B) 10 ); INSERT INTO T(A, B, C) VALUES('a', 'a', 'a'); ✓ INSERT INTO T(A, B, C) VALUES('a', 'a', 'a'); ✗ INSERT INTO S(X, Y, Z) VALUES('a', 'a', 'b'); ✓ Database (mutated) Insert Statements INSERT INTO S(X, Y, Z) VALUES('a', 'b', 'a'); ✓ -
Chris J. Wright - [email protected] Mutation Analysis 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, Z) 9 REFERENCES T (A, B) 10 ); INSERT INTO T(A, B, C) VALUES('a', 'a', 'a'); ✓ INSERT INTO T(A, B, C) VALUES('a', 'a', 'a'); ✗ INSERT INTO S(X, Y, Z) VALUES('a', 'a', 'b'); ✓ Database (mutated) Insert Statements INSERT INTO S(X, Y, Z) VALUES('a', 'b', 'a'); ✓ -
Chris J. Wright - [email protected] Mutation Analysis 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, Z) 9 REFERENCES T (A, B) 10 ); INSERT INTO T(A, B, C) VALUES('a', 'a', 'a'); ✓ INSERT INTO T(A, B, C) VALUES('a', 'a', 'a'); ✗ INSERT INTO S(X, Y, Z) VALUES('a', 'a', 'b'); ✓ Database (mutated) Insert Statements INSERT INTO S(X, Y, Z) VALUES('a', 'b', 'a'); ✓ Results are different -
Chris J. Wright - [email protected] Mutation Analysis 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, Z) 9 REFERENCES T (A, B) 10 ); INSERT INTO T(A, B, C) VALUES('a', 'a', 'a'); ✓ INSERT INTO T(A, B, C) VALUES('a', 'a', 'a'); ✗ INSERT INTO S(X, Y, Z) VALUES('a', 'a', 'b'); ✓ Database (mutated) Insert Statements INSERT INTO S(X, Y, Z) VALUES('a', 'b', 'a'); ✓ Mutant is killed -
Chris J. Wright - [email protected] 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, Z) 9 REFERENCES T (A, B) 10 ); 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, Z) 9 REFERENCES T (A, B) 10 ); 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, Z) 9 REFERENCES T (A, B) 10 ); 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, Z) 9 REFERENCES T (A, B) 10 ); 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, Z) 9 REFERENCES T (A, B) 10 ); 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, Z) 9 REFERENCES T (A, B) 10 ); 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, Z) 9 REFERENCES T (A, B) 10 ); 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, Z) 9 REFERENCES T (A, B) 10 ); The Problem? 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, Z) 9 REFERENCES T (A, B) 10 ); -
Chris J. Wright - [email protected] 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, Z) 9 REFERENCES T (A, B) 10 ); 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, Z) 9 REFERENCES T (A, B) 10 ); 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, Z) 9 REFERENCES T (A, B) 10 ); 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, Z) 9 REFERENCES T (A, B) 10 ); 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, Z) 9 REFERENCES T (A, B) 10 ); 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, Z) 9 REFERENCES T (A, B) 10 ); 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, Z) 9 REFERENCES T (A, B) 10 ); 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, Z) 9 REFERENCES T (A, B) 10 ); The Problem? 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, Z) 9 REFERENCES T (A, B) 10 ); -
Chris J. Wright - [email protected] 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, Z) 9 REFERENCES T (A, B) 10 ); 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, Z) 9 REFERENCES T (A, B) 10 ); 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, Z) 9 REFERENCES T (A, B) 10 ); 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, Z) 9 REFERENCES T (A, B) 10 ); 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, Z) 9 REFERENCES T (A, B) 10 ); 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, Z) 9 REFERENCES T (A, B) 10 ); 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, Z) 9 REFERENCES T (A, B) 10 ); 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, Z) 9 REFERENCES T (A, B) 10 ); The Problem? Many mutants to analyse -
Chris J. Wright - [email protected] 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, Z) 9 REFERENCES T (A, B) 10 ); 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, Z) 9 REFERENCES T (A, B) 10 ); 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, Z) 9 REFERENCES T (A, B) 10 ); 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, Z) 9 REFERENCES T (A, B) 10 ); 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, Z) 9 REFERENCES T (A, B) 10 ); 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, Z) 9 REFERENCES T (A, B) 10 ); 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, Z) 9 REFERENCES T (A, B) 10 ); 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, Z) 9 REFERENCES T (A, B) 10 ); The Problem? A time consuming process -
Chris J. Wright - [email protected] The Solution? Mutant Schemata Combine
mutants into a ‘meta-mutant’ -
Chris J. Wright - [email protected] The Solution? Parallelisation Mutant Schemata
Combine mutants into a ‘meta-mutant’ -
Chris J. Wright - [email protected] The Solution? Parallelisation Mutant Schemata
Combine mutants into a ‘meta-mutant’ Analyse multiple mutants simultaneously -
Chris J. Wright - [email protected] Mutation Analysis Approaches Mutant Representation
Parallelisation Strategy Normal “Original” -
Chris J. Wright - [email protected] Mutation Analysis Approaches Mutant Representation
Parallelisation Strategy Schemata Normal “Original” Full “Full Schemata” -
Chris J. Wright - [email protected] Original Approach Create structure in
database Execute insert statements -
Chris J. Wright - [email protected] Original Approach Create structure in
database Execute insert statements Drop structure from database -
Chris J. Wright - [email protected] Original Approach Create structure in
database Execute insert statements Drop structure from database -
Chris J. Wright - [email protected] Mutant Schemata Approach Create structure
in database Execute insert statements Drop structure from database -
Chris J. Wright - [email protected] Mutant Schemata Approach Create structure
in database Execute insert statements Drop structure from database -
Chris J. Wright - [email protected] Mutant Schemata Approach Create structure
in database Execute insert statements Drop structure from database Reduce time creating/ dropping database -
Chris J. Wright - [email protected] Full Schemata Approach 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, Z) 9 REFERENCES T (A, B) 10 ); -
Chris J. Wright - [email protected] Full Schemata Approach 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, Z) 9 REFERENCES T (A, B) 10 ); 1 CREATE TABLE T ( 2 A CHAR, B CHAR, C CHAR, 3 CONSTRAINT UniqueOnColsAandB UNIQUE (A, C) 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 ); -
Chris J. Wright - [email protected] Full Schemata Approach 1 CREATE
TABLE mutant_1_T ( 2 A CHAR, B CHAR, C CHAR, 3 CONSTRAINT UniqueOnColsAandB UNIQUE (A, B) 4 ); 5 6 CREATE TABLE mutant_1_S ( 7 X CHAR, Y CHAR, Z CHAR, 8 CONSTRAINT RefToColsAandB FOREIGN KEY (X, Z) 9 REFERENCES mutant_1_T (A, B) 10 ); 1 CREATE TABLE mutant_2_T ( 2 A CHAR, B CHAR, C CHAR, 3 CONSTRAINT UniqueOnColsAandB UNIQUE (A, C) 4 ); 5 6 CREATE TABLE mutant_2_S ( 7 X CHAR, Y CHAR, Z CHAR, 8 CONSTRAINT RefToColsAandB FOREIGN KEY (X, Y) 9 REFERENCES mutant_2_T (A, B) 10 ); -
Chris J. Wright - [email protected] Full Schemata Approach 1 CREATE
TABLE mutant_1_T ( 2 A CHAR, B CHAR, C CHAR, 3 CONSTRAINT UniqueOnColsAandB UNIQUE (A, B) 4 ); 5 6 CREATE TABLE mutant_1_S ( 7 X CHAR, Y CHAR, Z CHAR, 8 CONSTRAINT RefToColsAandB FOREIGN KEY (X, Z) 9 REFERENCES mutant_1_T (A, B) 10 ); 11 12 CREATE TABLE mutant_2_T ( 13 A CHAR, B CHAR, C CHAR, 14 CONSTRAINT UniqueOnColsAandB UNIQUE (A, C) 15 ); 16 17 CREATE TABLE mutant_2_S ( 18 X CHAR, Y CHAR, Z CHAR, 19 CONSTRAINT RefToColsAandB FOREIGN KEY (X, Y) 20 REFERENCES mutant_2_T (A, B) 21 ); -
Chris J. Wright - [email protected] Full Schemata Approach 1 CREATE
TABLE mutant_1_T ( 2 A CHAR, B CHAR, C CHAR, 3 CONSTRAINT UniqueOnColsAandB UNIQUE (A, B) 4 ); 5 6 CREATE TABLE mutant_1_S ( 7 X CHAR, Y CHAR, Z CHAR, 8 CONSTRAINT RefToColsAandB FOREIGN KEY (X, Z) 9 REFERENCES mutant_1_T (A, B) 10 ); 11 12 CREATE TABLE mutant_2_T ( 13 A CHAR, B CHAR, C CHAR, 14 CONSTRAINT UniqueOnColsAandB UNIQUE (A, C) 15 ); 16 17 CREATE TABLE mutant_2_S ( 18 X CHAR, Y CHAR, Z CHAR, 19 CONSTRAINT RefToColsAandB FOREIGN KEY (X, Y) 20 REFERENCES mutant_2_T (A, B) 21 ); -
Chris J. Wright - [email protected] Full Schemata Approach 1 CREATE
TABLE mutant_1_T ( 2 A CHAR, B CHAR, C CHAR, 3 CONSTRAINT UniqueOnColsAandB UNIQUE (A, B) 4 ); 5 6 CREATE TABLE mutant_1_S ( 7 X CHAR, Y CHAR, Z CHAR, 8 CONSTRAINT RefToColsAandB FOREIGN KEY (X, Z) 9 REFERENCES mutant_1_T (A, B) 10 ); 11 12 CREATE TABLE mutant_2_T ( 13 A CHAR, B CHAR, C CHAR, 14 CONSTRAINT UniqueOnColsAandB UNIQUE (A, C) 15 ); 16 17 CREATE TABLE mutant_2_S ( 18 X CHAR, Y CHAR, Z CHAR, 19 CONSTRAINT RefToColsAandB FOREIGN KEY (X, Y) 20 REFERENCES mutant_2_T (A, B) 21 ); Database (mutated) Insert Statements -
Chris J. Wright - [email protected] Full Schemata Approach 1 CREATE
TABLE mutant_1_T ( 2 A CHAR, B CHAR, C CHAR, 3 CONSTRAINT UniqueOnColsAandB UNIQUE (A, B) 4 ); 5 6 CREATE TABLE mutant_1_S ( 7 X CHAR, Y CHAR, Z CHAR, 8 CONSTRAINT RefToColsAandB FOREIGN KEY (X, Z) 9 REFERENCES mutant_1_T (A, B) 10 ); 11 12 CREATE TABLE mutant_2_T ( 13 A CHAR, B CHAR, C CHAR, 14 CONSTRAINT UniqueOnColsAandB UNIQUE (A, C) 15 ); 16 17 CREATE TABLE mutant_2_S ( 18 X CHAR, Y CHAR, Z CHAR, 19 CONSTRAINT RefToColsAandB FOREIGN KEY (X, Y) 20 REFERENCES mutant_2_T (A, B) 21 ); Database (mutated) INSERT INTO S(X, Y, Z) VALUES('a', 'a', 'a'); Insert Statements -
Chris J. Wright - [email protected] Full Schemata Approach 1 CREATE
TABLE mutant_1_T ( 2 A CHAR, B CHAR, C CHAR, 3 CONSTRAINT UniqueOnColsAandB UNIQUE (A, B) 4 ); 5 6 CREATE TABLE mutant_1_S ( 7 X CHAR, Y CHAR, Z CHAR, 8 CONSTRAINT RefToColsAandB FOREIGN KEY (X, Z) 9 REFERENCES mutant_1_T (A, B) 10 ); 11 12 CREATE TABLE mutant_2_T ( 13 A CHAR, B CHAR, C CHAR, 14 CONSTRAINT UniqueOnColsAandB UNIQUE (A, C) 15 ); 16 17 CREATE TABLE mutant_2_S ( 18 X CHAR, Y CHAR, Z CHAR, 19 CONSTRAINT RefToColsAandB FOREIGN KEY (X, Y) 20 REFERENCES mutant_2_T (A, B) 21 ); Database (mutated) INSERT INTO mutant_1_S(X, Y, Z) VALUES('a', 'a', 'a'); Insert Statements -
Chris J. Wright - [email protected] Full Schemata Approach 1 CREATE
TABLE mutant_1_T ( 2 A CHAR, B CHAR, C CHAR, 3 CONSTRAINT UniqueOnColsAandB UNIQUE (A, B) 4 ); 5 6 CREATE TABLE mutant_1_S ( 7 X CHAR, Y CHAR, Z CHAR, 8 CONSTRAINT RefToColsAandB FOREIGN KEY (X, Z) 9 REFERENCES mutant_1_T (A, B) 10 ); 11 12 CREATE TABLE mutant_2_T ( 13 A CHAR, B CHAR, C CHAR, 14 CONSTRAINT UniqueOnColsAandB UNIQUE (A, C) 15 ); 16 17 CREATE TABLE mutant_2_S ( 18 X CHAR, Y CHAR, Z CHAR, 19 CONSTRAINT RefToColsAandB FOREIGN KEY (X, Y) 20 REFERENCES mutant_2_T (A, B) 21 ); Database (mutated) INSERT INTO mutant_1_S(X, Y, Z) VALUES('a', 'a', 'a'); ✓ Insert Statements -
Chris J. Wright - [email protected] Full Schemata Approach 1 CREATE
TABLE mutant_1_T ( 2 A CHAR, B CHAR, C CHAR, 3 CONSTRAINT UniqueOnColsAandB UNIQUE (A, B) 4 ); 5 6 CREATE TABLE mutant_1_S ( 7 X CHAR, Y CHAR, Z CHAR, 8 CONSTRAINT RefToColsAandB FOREIGN KEY (X, Z) 9 REFERENCES mutant_1_T (A, B) 10 ); 11 12 CREATE TABLE mutant_2_T ( 13 A CHAR, B CHAR, C CHAR, 14 CONSTRAINT UniqueOnColsAandB UNIQUE (A, C) 15 ); 16 17 CREATE TABLE mutant_2_S ( 18 X CHAR, Y CHAR, Z CHAR, 19 CONSTRAINT RefToColsAandB FOREIGN KEY (X, Y) 20 REFERENCES mutant_2_T (A, B) 21 ); Database (mutated) INSERT INTO mutant_1_S(X, Y, Z) VALUES('a', 'a', 'a'); ✓ Insert Statements -
Chris J. Wright - [email protected] Create tables once... ...rewrite queries
to match Full Schemata Approach -
Chris J. Wright - [email protected] Mutation Analysis Approaches Mutant Representation
Parallelisation Strategy Schemata Normal “Original” Full “Full Schemata” -
Chris J. Wright - [email protected] Mutation Analysis Approaches Mutant Representation
Parallelisation Strategy Schemata Normal “Original” Full “Full Schemata” Minimal “Minimal Schemata” -
Chris J. Wright - [email protected] Full Schemata Approach 1 CREATE
TABLE mutant_1_T ( 2 A CHAR, B CHAR, C CHAR, 3 CONSTRAINT UniqueOnColsAandB UNIQUE (A, B) 4 ); 5 6 CREATE TABLE mutant_1_S ( 7 X CHAR, Y CHAR, Z CHAR, 8 CONSTRAINT RefToColsAandB FOREIGN KEY (X, Z) 9 REFERENCES mutant_1_T (A, B) 10 ); 11 12 CREATE TABLE mutant_2_T ( 13 A CHAR, B CHAR, C CHAR, 14 CONSTRAINT UniqueOnColsAandB UNIQUE (A, C) 15 ); 16 17 CREATE TABLE mutant_2_S ( 18 X CHAR, Y CHAR, Z CHAR, 19 CONSTRAINT RefToColsAandB FOREIGN KEY (X, Y) 20 REFERENCES mutant_2_T (A, B) 21 ); -
Chris J. Wright - [email protected] Full Schemata Approach 1 CREATE
TABLE mutant_1_T ( 2 A CHAR, B CHAR, C CHAR, 3 CONSTRAINT UniqueOnColsAandB UNIQUE (A, B) 4 ); 5 6 CREATE TABLE mutant_1_S ( 7 X CHAR, Y CHAR, Z CHAR, 8 CONSTRAINT RefToColsAandB FOREIGN KEY (X, Z) 9 REFERENCES mutant_1_T (A, B) 10 ); 11 12 CREATE TABLE mutant_2_T ( 13 A CHAR, B CHAR, C CHAR, 14 CONSTRAINT UniqueOnColsAandB UNIQUE (A, C) 15 ); 16 17 CREATE TABLE mutant_2_S ( 18 X CHAR, Y CHAR, Z CHAR, 19 CONSTRAINT RefToColsAandB FOREIGN KEY (X, Y) 20 REFERENCES mutant_2_T (A, B) 21 ); Mutated Tables -
Chris J. Wright - [email protected] Minimal Schemata Approach 1 CREATE
TABLE mutant_1_S ( 2 X CHAR, Y CHAR, Z CHAR, 3 CONSTRAINT RefToColsAandB FOREIGN KEY (X, Z) 4 REFERENCES mutant_1_T (A, B) 5 ); 6 7 CREATE TABLE mutant_2_T ( 8 A CHAR, B CHAR, C CHAR, 9 CONSTRAINT UniqueOnColsAandB UNIQUE (A, C) 10 ); Mutated Tables -
Chris J. Wright - [email protected] Minimal Schemata Approach 1 CREATE
TABLE mutant_1_S ( 2 X CHAR, Y CHAR, Z CHAR, 3 CONSTRAINT RefToColsAandB FOREIGN KEY (X, Z) 4 REFERENCES mutant_1_T (A, B) 5 ); 6 7 CREATE TABLE mutant_2_T ( 8 A CHAR, B CHAR, C CHAR, 9 CONSTRAINT UniqueOnColsAandB UNIQUE (A, C) 10 ); -
Chris J. Wright - [email protected] Minimal Schemata Approach 1 CREATE
TABLE mutant_1_S ( 2 X CHAR, Y CHAR, Z CHAR, 3 CONSTRAINT RefToColsAandB FOREIGN KEY (X, Z) 4 REFERENCES mutant_1_T (A, B) 5 ); 6 7 CREATE TABLE mutant_2_T ( 8 A CHAR, B CHAR, C CHAR, 9 CONSTRAINT UniqueOnColsAandB UNIQUE (A, C) 10 ); -
Chris J. Wright - [email protected] Minimal Schemata Approach 1 CREATE
TABLE mutant_1_S ( 2 X CHAR, Y CHAR, Z CHAR, 3 CONSTRAINT RefToColsAandB FOREIGN KEY (X, Z) 4 REFERENCES mutant_1_T (A, B) 5 ); 6 7 CREATE TABLE mutant_2_T ( 8 A CHAR, B CHAR, C CHAR, 9 CONSTRAINT UniqueOnColsAandB UNIQUE (A, C) 10 ); -
Chris J. Wright - [email protected] Minimal Schemata Approach 1 CREATE
TABLE mutant_1_S ( 2 X CHAR, Y CHAR, Z CHAR, 3 CONSTRAINT RefToColsAandB FOREIGN KEY (X, Z) 4 REFERENCES mutant_1_T (A, B) 5 ); 6 7 CREATE TABLE mutant_2_T ( 8 A CHAR, B CHAR, C CHAR, 9 CONSTRAINT UniqueOnColsAandB UNIQUE (A, C) 10 ); 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 ); -
Chris J. Wright - [email protected] Minimal Schemata Approach 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 ); 11 12 CREATE TABLE mutant_1_S ( 13 X CHAR, Y CHAR, Z CHAR, 14 CONSTRAINT RefToColsAandB FOREIGN KEY (X, Z) 15 REFERENCES T (A, B) 16 ); 17 18 CREATE TABLE mutant_2_T ( 19 A CHAR, B CHAR, C CHAR, 20 CONSTRAINT UniqueOnColsAandB UNIQUE (A, C) 21 ); -
Chris J. Wright - [email protected] Create tables once... ...only mutated
tables... Minimal Schemata Approach -
Chris J. Wright - [email protected] Create tables once... ...only mutated
tables... Minimal Schemata Approach ...reduce queries executed -
Chris J. Wright - [email protected] Create tables once... ...only mutated
tables... Minimal Schemata Approach ...reduce queries executed Plus one copy for foreign keys -
Chris J. Wright - [email protected] Mutation Analysis Approaches Mutant Representation
Parallelisation Strategy Schemata Normal “Original” Full “Full Schemata” Minimal “Minimal Schemata” -
Chris J. Wright - [email protected] Mutation Analysis Approaches Mutant Representation
Parallelisation Strategy Schemata Normal “Original” Full “Full Schemata” Minimal “Minimal Schemata” Up front “Up-Front Schemata” -
Chris J. Wright - [email protected] Mutation Analysis Approaches Mutant Representation
Parallelisation Strategy Schemata Normal “Original” Full “Full Schemata” Minimal “Minimal Schemata” Up front “Up-Front Schemata” Just in time “Just-in-Time Schemata” -
Chris J. Wright - [email protected] Parallelisation ‘Just-in-Time Schemata’ Make the
‘Original’ approach parallel -
Chris J. Wright - [email protected] Parallelisation ‘Up-Front Schemata’ ‘Just-in-Time Schemata’
Make the ‘Original’ approach parallel -
Chris J. Wright - [email protected] Parallelisation ‘Up-Front Schemata’ ‘Just-in-Time Schemata’
Make the ‘Original’ approach parallel Make the ‘Full Schemata’ approach parallel -
Chris J. Wright - [email protected] Original Approach Create structure in
database Execute insert statements Drop structure from database -
Chris J. Wright - [email protected] ‘Just-in-Time’ Approach Create structure in
database Execute insert statements Drop structure from database Parallel -
Chris J. Wright - [email protected] ‘Just-in-Time’ Approach Create structure in
database Execute insert statements Drop structure from database Parallel -
Chris J. Wright - [email protected] Mutant Schemata Approach Create structure
in database Execute insert statements Drop structure from database -
Chris J. Wright - [email protected] ‘Up-Front’ Approach Create structure in
database Execute insert statements Drop structure from database Parallel -
Chris J. Wright - [email protected] Empirical Study Evaluation Metric Mutation
Time Approaches 5 Case Studies 6 DBMSs 2 Repetitions 30 -
Chris J. Wright - [email protected] Empirical Study Evaluation Metric Mutation
Time Approaches 5 Case Studies 6 DBMSs 2 Repetitions 30 -
Chris J. Wright - [email protected] Empirical Study Evaluation Metric Mutation
Time Approaches 5 Case Studies 6 DBMSs 2 Repetitions 30 -
Chris J. Wright - [email protected] Empirical Study Evaluation Metric Mutation
Time Approaches 5 Case Studies 6 DBMSs 2 Repetitions 30 -
Chris J. Wright - [email protected] Empirical Study Evaluation Metric Mutation
Time Approaches 5 Case Studies 6 DBMSs 2 Repetitions 30 -
Chris J. Wright - [email protected] Empirical Study: Approaches Mutant Representation
Parallelisation Strategy Schemata Normal “Original” Full “Full Schemata” Minimal “Minimal Schemata” Up front “Up-Front Schemata” Just in time “Just-in-Time Schemata” -
Chris J. Wright - [email protected] Empirical Study: Case Studies Case
Study Tables Columns Primary Keys Foreign Keys Unique Constraints Cloc 2 10 0 0 0 JWhoisServer 6 49 6 0 0 NistDML182 2 32 1 1 0 NistDML183 2 6 0 1 1 RiskIt 13 56 11 10 0 UnixUsage 8 32 7 7 0 -
Chris J. Wright - [email protected] Empirical Study: Case Studies Case
Study Tables Columns Primary Keys Foreign Keys Unique Constraints Cloc 2 10 0 0 0 JWhoisServer 6 49 6 0 0 NistDML182 2 32 1 1 0 NistDML183 2 6 0 1 1 RiskIt 13 56 11 10 0 UnixUsage 8 32 7 7 0 -
Chris J. Wright - [email protected] Empirical Study: Case Studies Case
Study Tables Columns Primary Keys Foreign Keys Unique Constraints Cloc 2 10 0 0 0 JWhoisServer 6 49 6 0 0 NistDML182 2 32 1 1 0 NistDML183 2 6 0 1 1 RiskIt 13 56 11 10 0 UnixUsage 8 32 7 7 0 -
Chris J. Wright - [email protected] Empirical Study: Case Studies Case
Study Tables Columns Primary Keys Foreign Keys Unique Constraints Cloc 2 10 0 0 0 JWhoisServer 6 49 6 0 0 NistDML182 2 32 1 1 0 NistDML183 2 6 0 1 1 RiskIt 13 56 11 10 0 UnixUsage 8 32 7 7 0 -
Chris J. Wright - [email protected] Empirical Study: Case Studies Case
Study Tables Columns Primary Keys Foreign Keys Unique Constraints Cloc 2 10 0 0 0 JWhoisServer 6 49 6 0 0 NistDML182 2 32 1 1 0 NistDML183 2 6 0 1 1 RiskIt 13 56 11 10 0 UnixUsage 8 32 7 7 0 -
Chris J. Wright - [email protected] Empirical Study: Case Studies Case
Study Tables Columns Primary Keys Foreign Keys Unique Constraints Cloc 2 10 0 0 0 JWhoisServer 6 49 6 0 0 NistDML182 2 32 1 1 0 NistDML183 2 6 0 1 1 RiskIt 13 56 11 10 0 UnixUsage 8 32 7 7 0 -
Chris J. Wright - [email protected] Empirical Study: Case Studies Case
Study Tables Columns Primary Keys Foreign Keys Unique Constraints Cloc 2 10 0 0 0 JWhoisServer 6 49 6 0 0 NistDML182 2 32 1 1 0 NistDML183 2 6 0 1 1 RiskIt 13 56 11 10 0 UnixUsage 8 32 7 7 0 -
Chris J. Wright - [email protected] Empirical Study: Case Studies Case
Study Total Constraints Total Mutants Cloc 0 30 JWhoisServer 50 184 NistDML182 2 66 NistDML183 2 18 RiskIt 36 160 UnixUsage 23 69 -
Chris J. Wright - [email protected] Empirical Study: DBMSs SQLite PostgreSQL
Client-Server Model -
Chris J. Wright - [email protected] Empirical Study: DBMSs SQLite PostgreSQL
Client-Server Model Local Client Model -
Chris J. Wright - [email protected] Empirical Study: DBMSs SQLite PostgreSQL
Client-Server Model Local Client Model Simultaneous Read/Write -
Chris J. Wright - [email protected] Empirical Study: DBMSs SQLite PostgreSQL
Client-Server Model Local Client Model Simultaneous Read/Write Locking on Write -
Chris J. Wright - [email protected] Empirical Study: DBMSs SQLite PostgreSQL
Client-Server Model Local Client Model Simultaneous Read/Write Locking on Write Prevents Parallel Approaches -
Chris J. Wright - [email protected] Results • Median of repetitions
• Lower-is-better metric -
Chris J. Wright - [email protected] Results • Median of repetitions
• Lower-is-better metric • Split by... -
Chris J. Wright - [email protected] Results • Median of repetitions
• Lower-is-better metric • Split by... ...case study -
Chris J. Wright - [email protected] Results • Median of repetitions
• Lower-is-better metric • Split by... ...case study ...DBMS -
Chris J. Wright - [email protected] Results • Median of repetitions
• Lower-is-better metric • Split by... ...case study ...DBMS • Full details in paper (including statistics) -
Chris J. Wright - [email protected] 0 1000 2000 3000 Original
Full Schemata Minimal Schemata Up−Front Schemata Just−in−Time Schemata Mutation Analysis Technique Mutation Analysis Time (ms) Original Full Schemata Minimal Schemata Up−Front Schemata Just−in−Time Schemata Postgres – Cloc Original Full Minimal Up-Front Just-in-Time -
Chris J. Wright - [email protected] 0 1000 2000 3000 Original
Full Schemata Minimal Schemata Up−Front Schemata Just−in−Time Schemata Mutation Analysis Technique Mutation Analysis Time (ms) Original Full Schemata Minimal Schemata Up−Front Schemata Just−in−Time Schemata Postgres – Cloc ~3.27s Original Full Minimal Up-Front Just-in-Time -
Chris J. Wright - [email protected] 0 1000 2000 3000 Original
Full Schemata Minimal Schemata Up−Front Schemata Just−in−Time Schemata Mutation Analysis Technique Mutation Analysis Time (ms) Original Full Schemata Minimal Schemata Up−Front Schemata Just−in−Time Schemata Postgres – Cloc ~3.27s ~2.08s Original Full Minimal Up-Front Just-in-Time -
Chris J. Wright - [email protected] 0 50000 100000 150000 200000
250000 Original Full Schemata Minimal Schemata Up−Front Schemata Just−in−Time Schemata Mutation Analysis Technique Mutation Analysis Time (ms) Original Full Schemata Minimal Schemata Up−Front Schemata Just−in−Time Schemata Postgres – RiskIt Original Full Minimal Up-Front Just-in-Time -
Chris J. Wright - [email protected] 0 50000 100000 150000 200000
250000 Original Full Schemata Minimal Schemata Up−Front Schemata Just−in−Time Schemata Mutation Analysis Technique Mutation Analysis Time (ms) Original Full Schemata Minimal Schemata Up−Front Schemata Just−in−Time Schemata Postgres – RiskIt ~238s Original Full Minimal Up-Front Just-in-Time -
Chris J. Wright - [email protected] 0 50000 100000 150000 200000
250000 Original Full Schemata Minimal Schemata Up−Front Schemata Just−in−Time Schemata Mutation Analysis Technique Mutation Analysis Time (ms) Original Full Schemata Minimal Schemata Up−Front Schemata Just−in−Time Schemata Postgres – RiskIt ~238s ~225s Original Full Minimal Up-Front Just-in-Time -
Chris J. Wright - [email protected] 0 50000 100000 150000 200000
250000 Original Full Schemata Minimal Schemata Up−Front Schemata Just−in−Time Schemata Mutation Analysis Technique Mutation Analysis Time (ms) Original Full Schemata Minimal Schemata Up−Front Schemata Just−in−Time Schemata Postgres – RiskIt ~238s ~225s ~23s Original Full Minimal Up-Front Just-in-Time -
Chris J. Wright - [email protected] Results – Postgres ‘Full Schemata’
Improvement decreases with larger schemas -
Chris J. Wright - [email protected] Results – Postgres ‘Minimal Schemata’
‘Full Schemata’ Improvement decreases with larger schemas -
Chris J. Wright - [email protected] Results – Postgres ‘Minimal Schemata’
‘Full Schemata’ Improvement decreases with larger schemas Consistently faster, scales very well -
Chris J. Wright - [email protected] Results – Postgres ‘Just-in-Time Schemata’
‘Minimal Schemata’ ‘Full Schemata’ Improvement decreases with larger schemas Consistently faster, scales very well -
Chris J. Wright - [email protected] Results – Postgres ‘Just-in-Time Schemata’
Consistently faster, scales very well ‘Minimal Schemata’ ‘Full Schemata’ Improvement decreases with larger schemas Consistently faster, scales very well -
Chris J. Wright - [email protected] Results – Postgres ‘Up-Front Schemata’
‘Just-in-Time Schemata’ Consistently faster, scales very well ‘Minimal Schemata’ ‘Full Schemata’ Improvement decreases with larger schemas Consistently faster, scales very well -
Chris J. Wright - [email protected] Results – Postgres ‘Up-Front Schemata’
‘Just-in-Time Schemata’ Consistently faster, scales very well Improvement decreases with larger schemas ‘Minimal Schemata’ ‘Full Schemata’ Improvement decreases with larger schemas Consistently faster, scales very well -
Chris J. Wright - [email protected] Results – Postgres ‘Up-Front Schemata’
‘Just-in-Time Schemata’ Consistently faster, scales very well Improvement decreases with larger schemas ‘Minimal Schemata’ ‘Full Schemata’ Improvement decreases with larger schemas Consistently faster, scales very well -
Chris J. Wright - [email protected] 0 5000 10000 15000 Original
Full Schemata Minimal Schemata Mutation Analysis Technique Mutation Analysis Time (ms) Original Full Schemata Minimal Schemata SQLite – Cloc Original Full Minimal -
Chris J. Wright - [email protected] 0 5000 10000 15000 Original
Full Schemata Minimal Schemata Mutation Analysis Technique Mutation Analysis Time (ms) Original Full Schemata Minimal Schemata SQLite – Cloc ~18.0s Original Full Minimal -
Chris J. Wright - [email protected] 0 5000 10000 15000 Original
Full Schemata Minimal Schemata Mutation Analysis Technique Mutation Analysis Time (ms) Original Full Schemata Minimal Schemata SQLite – Cloc ~18.0s ~18.7s Original Full Minimal -
Chris J. Wright - [email protected] 0 5000 10000 15000 Original
Full Schemata Minimal Schemata Mutation Analysis Technique Mutation Analysis Time (ms) Original Full Schemata Minimal Schemata SQLite – Cloc ~18.0s ~18.7s ~8.28s Original Full Minimal -
Chris J. Wright - [email protected] 0 500000 1000000 1500000 2000000
Original Full Schemata Minimal Schemata Mutation Analysis Technique Mutation Analysis Time (ms) Original Full Schemata Minimal Schemata SQLite – RiskIt Original Full Minimal -
Chris J. Wright - [email protected] 0 500000 1000000 1500000 2000000
Original Full Schemata Minimal Schemata Mutation Analysis Technique Mutation Analysis Time (ms) Original Full Schemata Minimal Schemata SQLite – RiskIt ~20.2 min Original Full Minimal -
Chris J. Wright - [email protected] 0 500000 1000000 1500000 2000000
Original Full Schemata Minimal Schemata Mutation Analysis Technique Mutation Analysis Time (ms) Original Full Schemata Minimal Schemata SQLite – RiskIt ~20.2 min ~31.8 min Original Full Minimal -
Chris J. Wright - [email protected] 0 500000 1000000 1500000 2000000
Original Full Schemata Minimal Schemata Mutation Analysis Technique Mutation Analysis Time (ms) Original Full Schemata Minimal Schemata SQLite – RiskIt ~20.2 min ~31.8 min ~2.5 min Original Full Minimal -
Chris J. Wright - [email protected] Results – SQLite ‘Full Schemata’
Increasingly worsened with larger schemas -
Chris J. Wright - [email protected] Results – SQLite ‘Minimal Schemata’
‘Full Schemata’ Increasingly worsened with larger schemas -
Chris J. Wright - [email protected] Results – SQLite ‘Minimal Schemata’
‘Full Schemata’ Increasingly worsened with larger schemas Consistently faster, scales very well -
Chris J. Wright - [email protected] Results – SQLite ‘Minimal Schemata’
‘Full Schemata’ Increasingly worsened with larger schemas Consistently faster, scales very well -
Chris J. Wright - [email protected] Future Work & Limitations Detailed
Timing Case Studies DBMSs -
Chris J. Wright - [email protected] Future Work & Limitations Approaches
Detailed Timing Case Studies DBMSs -
Chris J. Wright - [email protected] Future Work & Limitations Approaches
Detailed Timing Case Studies DBMSs Parallel Configurations -
Chris J. Wright - [email protected] Future Work & Limitations Test
Suite Approaches Detailed Timing Case Studies DBMSs Parallel Configurations -
Chris J. Wright - [email protected] Test Suite Generation • SchemaAnalyst
tool • Gregory Kapfhammer -
Chris J. Wright - [email protected] Test Suite Generation • SchemaAnalyst
tool • Gregory Kapfhammer • Tuesday 11:00am, Research & Industrial Track -
Chris J. Wright - [email protected] Conclusions • Mutant Schemata and
Parallelisation can both reduce the cost of mutation analysis -
Chris J. Wright - [email protected] Conclusions • Mutant Schemata and
Parallelisation can both reduce the cost of mutation analysis • The ‘Minimal Schemata’ approach... -
Chris J. Wright - [email protected] Conclusions • Mutant Schemata and
Parallelisation can both reduce the cost of mutation analysis • The ‘Minimal Schemata’ approach... ...consistently faster than original -
Chris J. Wright - [email protected] Conclusions • Mutant Schemata and
Parallelisation can both reduce the cost of mutation analysis • The ‘Minimal Schemata’ approach... ...consistently faster than original ...gives a reduction of up to 10x -
Chris J. Wright - [email protected] Conclusions • Mutant Schemata and
Parallelisation can both reduce the cost of mutation analysis • The ‘Minimal Schemata’ approach... ...consistently faster than original ...gives a reduction of up to 10x ...scales very well (for our case studies) -
Chris J. Wright - [email protected] Conclusions • Mutant Schemata and
Parallelisation can both reduce the cost of mutation analysis • The ‘Minimal Schemata’ approach... ...consistently faster than original ...gives a reduction of up to 10x ...scales very well (for our case studies) ...doesn’t require parallel DBMS access -
Chris J. Wright - [email protected] Conclusions • Mutant Schemata and
Parallelisation can both reduce the cost of mutation analysis • The ‘Minimal Schemata’ approach... ...consistently faster than original ...gives a reduction of up to 10x ...scales very well (for our case studies) ...doesn’t require parallel DBMS access • Website: http://schemaanalyst.org/ -
Chris J. Wright - [email protected] Conclusions • Mutant Schemata and
Parallelisation can both reduce the cost of mutation analysis • The ‘Minimal Schemata’ approach... ...consistently faster than original ...gives a reduction of up to 10x ...scales very well (for our case studies) ...doesn’t require parallel DBMS access • Website: http://schemaanalyst.org/