Slide 1

Slide 1 text

Infec&on: PHP Muta&on Tes&ng Framework by Michelangelo van Dam (@DragonBe)

Slide 2

Slide 2 text

MICHELANGELO VAN DAM I'm a senior #php architect, co-founder and #ceo of @in2itvof, #community leader at @phpbenelux, coach at @CoderDojoBelgium, #MVP, #digitalnomad, likes #coffee. Infec&on: PHP Muta&on Tes&ng Framework by Michelangelo van Dam (@DragonBe)

Slide 3

Slide 3 text

Infec&on: PHP Muta&on Tes&ng Framework by Michelangelo van Dam (@DragonBe)

Slide 4

Slide 4 text

Infec&on: PHP Muta&on Tes&ng Framework by Michelangelo van Dam (@DragonBe)

Slide 5

Slide 5 text

Small, impactful changes • Function Signature (public, protected visibility) • Unwrapping functions and arrays • Binary Arithmetic • Rounding • Boolean substitution • Conditional boundaries • Equal or identical checks • Negated conditionals • Increments • Return values • Removal mutators • Loops • Sorting • Literal numbers • Exceptions • Type casting • Regex • Extensions Infec&on: PHP Muta&on Tes&ng Framework by Michelangelo van Dam (@DragonBe)

Slide 6

Slide 6 text

An example of a mutation id = (string) $data['id']; } $this->rsvp = 0; if (array_key_exists('yes_rsvp_count', $data)) { $this->rsvp = $data['yes_rsvp_count']; } Infec&on: PHP Muta&on Tes&ng Framework by Michelangelo van Dam (@DragonBe)

Slide 7

Slide 7 text

An example of a mutation id = (string) $data['id']; } $this->rsvp = 1; if (array_key_exists('yes_rsvp_count', $data)) { $this->rsvp = $data['yes_rsvp_count']; } Infec&on: PHP Muta&on Tes&ng Framework by Michelangelo van Dam (@DragonBe)

Slide 8

Slide 8 text

An example of a mutation id = (string) $data['id']; } $this->rsvp = 1; if (array_key_exists('yes_rsvp_count', $data)) { $this->rsvp = $data['yes_rsvp_count']; } Infec&on: PHP Muta&on Tes&ng Framework by Michelangelo van Dam (@DragonBe)

Slide 9

Slide 9 text

Infec&on: PHP Muta&on Tes&ng Framework by Michelangelo van Dam (@DragonBe)

Slide 10

Slide 10 text

Infec&on: PHP Muta&on Tes&ng Framework by Michelangelo van Dam (@DragonBe)

Slide 11

Slide 11 text

Infec&on: PHP Muta&on Tes&ng Framework by Michelangelo van Dam (@DragonBe)

Slide 12

Slide 12 text

Live Demo Infec&on: PHP Muta&on Tes&ng Framework by Michelangelo van Dam (@DragonBe)

Slide 13

Slide 13 text

Conclusion • Write tests! • Cover mutations • Repeat Infec&on: PHP Muta&on Tes&ng Framework by Michelangelo van Dam (@DragonBe)

Slide 14

Slide 14 text

Get started today! composer require --dev infection/infection ./vendor/bin/infection Infec&on: PHP Muta&on Tes&ng Framework by Michelangelo van Dam (@DragonBe)

Slide 15

Slide 15 text

Improving quality one test at a &me www.in2it.be Infec&on: PHP Muta&on Tes&ng Framework by Michelangelo van Dam (@DragonBe)