i dream of gen'ning: scala check is black magic

48
I DREAM OF GEN’NING SCALACHECK IS BLACK MAGICK Kelsey Gilmore-Innis (@kelseyinnis) + Stew O’Connor (@StewOConnor)

Upload: pagerduty

Post on 16-Jul-2015

113 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: I dream of Gen'ning: Scala Check is Black Magic

I DREAM OF GEN’NING SCALACHECK IS BLACK MAGICK

Kelsey Gilmore-Innis (@kelseyinnis) + Stew O’Connor (@StewOConnor)

Page 2: I dream of Gen'ning: Scala Check is Black Magic

PROPERTY-BASED TESTING

Page 3: I dream of Gen'ning: Scala Check is Black Magic
Page 4: I dream of Gen'ning: Scala Check is Black Magic
Page 5: I dream of Gen'ning: Scala Check is Black Magic
Page 6: I dream of Gen'ning: Scala Check is Black Magic
Page 7: I dream of Gen'ning: Scala Check is Black Magic
Page 8: I dream of Gen'ning: Scala Check is Black Magic
Page 9: I dream of Gen'ning: Scala Check is Black Magic

BACKGROUND

Page 10: I dream of Gen'ning: Scala Check is Black Magic
Page 11: I dream of Gen'ning: Scala Check is Black Magic

GENERATES • RUNS • SHRINKS

Page 12: I dream of Gen'ning: Scala Check is Black Magic
Page 13: I dream of Gen'ning: Scala Check is Black Magic
Page 14: I dream of Gen'ning: Scala Check is Black Magic

GENERATORS

Page 15: I dream of Gen'ning: Scala Check is Black Magic

OUT OF THE BOTTLE• Boolean, Byte, Char, String, Int, Double, Long

• Throwable, Date

• Option, Either, Tuple2-Tuple9, Function1-Function5

• Array, List, ArrayList, Stream, Set, Map

• alphaChar, alphaNumChar, alphaLowerChar, alphaUpperChar

• alphaStr, numStr, identifier

Page 16: I dream of Gen'ning: Scala Check is Black Magic

EDGE CASE BIAS

Page 17: I dream of Gen'ning: Scala Check is Black Magic
Page 18: I dream of Gen'ning: Scala Check is Black Magic

FANCY GENS

Page 19: I dream of Gen'ning: Scala Check is Black Magic

.choose, .oneOf, .someOf

Page 20: I dream of Gen'ning: Scala Check is Black Magic
Page 21: I dream of Gen'ning: Scala Check is Black Magic

COMPOSING GENS

map • flatMap • filter/suchThat

Page 22: I dream of Gen'ning: Scala Check is Black Magic
Page 23: I dream of Gen'ning: Scala Check is Black Magic
Page 24: I dream of Gen'ning: Scala Check is Black Magic
Page 25: I dream of Gen'ning: Scala Check is Black Magic

.suchThat

Page 26: I dream of Gen'ning: Scala Check is Black Magic
Page 27: I dream of Gen'ning: Scala Check is Black Magic
Page 28: I dream of Gen'ning: Scala Check is Black Magic

http://etorreborre.blogspot.com/2011/02/scalacheck-generator-for-json.html

Page 29: I dream of Gen'ning: Scala Check is Black Magic

FREQUENCY

Page 30: I dream of Gen'ning: Scala Check is Black Magic
Page 31: I dream of Gen'ning: Scala Check is Black Magic

P1 BUG: BEYONCÉ NOT FOUND

Page 32: I dream of Gen'ning: Scala Check is Black Magic

PERFORMANCE TESTING

Page 33: I dream of Gen'ning: Scala Check is Black Magic

ROUND-TRIP PROPERTIES

Page 34: I dream of Gen'ning: Scala Check is Black Magic

ROUND-TRIP PROPERTIES

Page 35: I dream of Gen'ning: Scala Check is Black Magic

NEGATIVE TESTING

Page 36: I dream of Gen'ning: Scala Check is Black Magic

RUNNING SCALACHECK TESTS

Page 37: I dream of Gen'ning: Scala Check is Black Magic

INTEGRATION

Page 38: I dream of Gen'ning: Scala Check is Black Magic

PARAMS

Page 39: I dream of Gen'ning: Scala Check is Black Magic

SCALACHECK + SELENIUMhttps://github.com/jessitron/js-with-scalacheck

Page 40: I dream of Gen'ning: Scala Check is Black Magic

COMMANDS

Page 41: I dream of Gen'ning: Scala Check is Black Magic

TESTING SERVER NETWORKShttp://scalacheck.org/files/scaladays2014/index.html

Page 42: I dream of Gen'ning: Scala Check is Black Magic

SIMULATION TESTING

Page 43: I dream of Gen'ning: Scala Check is Black Magic

SHRINKING

Page 44: I dream of Gen'ning: Scala Check is Black Magic
Page 45: I dream of Gen'ning: Scala Check is Black Magic

MAKING IT LOOK EASY

Page 46: I dream of Gen'ning: Scala Check is Black Magic
Page 47: I dream of Gen'ning: Scala Check is Black Magic
Page 48: I dream of Gen'ning: Scala Check is Black Magic

BYE!