the impact of equivalent redundant and quasi mutants on
play

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.


  1. Behavioural Equivalence Patterns • NOT NULL on PRIMARY KEY columns • Implicit NOT NULL on PRIMARY KEY • (Only PostgreSQL and HyperSQL)

  2. Behavioural Equivalence Patterns • NOT NULL on PRIMARY KEY columns

  3. Behavioural Equivalence Patterns • NOT NULL on PRIMARY KEY columns 1 CREATE TABLE T ( 1 CREATE TABLE T ( 2 A CHAR , 2 A CHAR NOT NULL, 3 PRIMARY KEY (A) 3 PRIMARY KEY (A) 4 ); 4 );

  4. Behavioural Equivalence Patterns

  5. Behavioural Equivalence Patterns • UNIQUE and PRIMARY KEY with shared columns

  6. Behavioural Equivalence Patterns • UNIQUE and PRIMARY KEY with shared columns 1 CREATE TABLE T ( 1 CREATE TABLE T ( 2 A CHAR , 2 A CHAR , 3 PRIMARY KEY (A), 3 PRIMARY KEY (A) 4 UNIQUE (A) 4 ); 5 );

  7. Quasi-mutants

  8. Quasi-mutants • Operators produce DBMS-agnostic mutants

  9. Quasi-mutants • Operators produce DBMS-agnostic mutants • Some DBMSs have implicit constraints

  10. Quasi-mutants • Operators produce DBMS-agnostic mutants • Some DBMSs have implicit constraints • Valid for some DBMSs, invalid for others ✗ ✗ SQLite ✓ PostgreSQL HyperSQL

  11. Quasi-mutants • Operators produce DBMS-agnostic mutants • Some DBMSs have implicit constraints • Valid for some DBMSs, invalid for others ✗ ✗ SQLite ✓ PostgreSQL HyperSQL •

  12. Quasi-mutants ✗ HyperSQL ✗ SQLite ✓ PostgreSQL

  13. Quasi-mutants • Cannot adversely affect mutation score ✗ HyperSQL ✗ SQLite ✓ PostgreSQL

  14. Quasi-mutants • Cannot adversely affect mutation score • …but may preclude some optimisations ✗ HyperSQL ✗ SQLite ✓ PostgreSQL

  15. Quasi-mutants • Cannot adversely affect mutation score • …but may preclude some optimisations • Remove when DBMS will ‘reject’ them SQLite ✓ ✗ HyperSQL ✗ PostgreSQL

  16. Types of Quasi-mutants

  17. Types of Quasi-mutants • Representative example

  18. Types of Quasi-mutants • Representative example • DBMS: PostgreSQL, HyperSQL

Recommend


More recommend