Slide 1

Slide 1 text

PseudoSweep A Pseudo-Tested Code Identifier Megan Maton, Gregory M. Kapfhammer, Phil McMinn

Slide 2

Slide 2 text

PseudoSweep Finds Pseudo-tested Code in Java 8–11 Projects Use with Gradle or Maven Projects 2 https://maven.apache.org/ https://docs.gradle.org/current/userguide/userguide.html

Slide 3

Slide 3 text

Pseudo-tested Code 3 Code that is executed by the test suite, yet when removed, the test suite continues to pass.

Slide 4

Slide 4 text

Identifying pseudo-tested code 4 Production Code Test Suite

Slide 5

Slide 5 text

Identifying pseudo-tested code 5 Production Code Test Suite ⟳

Slide 6

Slide 6 text

Identifying pseudo-tested code 6 Production Code Test Suite ⟳

Slide 7

Slide 7 text

Identifying pseudo-tested code 7 Production Code Test Suite ⟳

Slide 8

Slide 8 text

Identifying pseudo-tested code 8 Production Code Test Suite ⟳

Slide 9

Slide 9 text

Identifying pseudo-tested code 9 Production Code Test Suite ⟳

Slide 10

Slide 10 text

Identifying pseudo-tested code 10 Production Code Test Suite ✅

Slide 11

Slide 11 text

Identifying pseudo-tested code 11 Production Code Test Suite ⟳

Slide 12

Slide 12 text

Identifying pseudo-tested code 12 Production Code Test Suite ⟳ ✅ The test suite didnʼt notice the missing statement…

Slide 13

Slide 13 text

PseudoSweep reveals these pseudo-tested statements 13

Slide 14

Slide 14 text

Using PseudoSweep 14

Slide 15

Slide 15 text

15

Slide 16

Slide 16 text

1. Instrument Original Instrumented 16

Slide 17

Slide 17 text

17

Slide 18

Slide 18 text

2. Sweep 18 Production Code Test Suite ⟳ ⟳ ✅ ❌

Slide 19

Slide 19 text

19

Slide 20

Slide 20 text

3. Analyze 20 Results Elements

Slide 21

Slide 21 text

21

Slide 22

Slide 22 text

4. Restore Original Instrumented 22

Slide 23

Slide 23 text

Solutions 23 Add assertions Add behaviour specific tests Remove redundant code

Slide 24

Slide 24 text

https://github.com/PseudoTested/PseudoSweep 24