Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Fast, Robust, Accurate Or how to love your tests again

David
November 18, 2022

Fast, Robust, Accurate Or how to love your tests again

An empiric take to testing.

David

November 18, 2022
Tweet

More Decks by David

Other Decks in Technology

Transcript

  1. @xuapsdev
    Fast, Robust, Accurate (WIP)
    Or how to love your tests again

    View Slide

  2. This is
    not a
    talk
    about
    opinions

    View Slide

  3. 1 - We progress
    faster with test

    View Slide

  4. 2 - Bad tests
    could be worst
    than no tests

    View Slide

  5. View Slide

  6. So, what is a
    bad test from
    an empirical
    point of view?

    View Slide

  7. View Slide

  8. Slow tests

    View Slide

  9. Slow tests
    False alarms

    View Slide

  10. Slow tests
    False alarms
    Di
    ffi
    cult to read tests

    View Slide

  11. Brittle tests
    Slow tests
    False alarms
    Di
    ffi
    cult to read tests

    View Slide

  12. Brittle tests
    Slow tests
    False alarms
    Di
    ffi
    cult to read tests
    What else?

    View Slide

  13. 3 properties
    Speed
    Detection of
    regressions
    Resistance
    to refactor

    View Slide

  14. Speed

    View Slide

  15. Resistance to refactor

    View Slide

  16. Detection of regression

    View Slide

  17. Resistance to refactor
    Detection of
    regressions
    Speed
    End to end test Trivial tests
    Brittle tests

    View Slide

  18. Oh boy my tests are really bad…

    View Slide

  19. I am so happy that my tests are
    so good…

    View Slide

  20. View Slide

  21. Lets get some data

    View Slide

  22. Speed

    View Slide

  23. DEMO

    View Slide

  24. Resistance to refactor

    View Slide

  25. Resistance to refactor

    View Slide

  26. DEMO

    View Slide

  27. Detection of regression

    View Slide

  28. Detection of regression

    View Slide

  29. DEMO

    View Slide

  30. I need to start using this right
    now

    View Slide

  31. How am I using
    this data?

    View Slide

  32. To decide how to test something

    View Slide

  33. Tune it!

    View Slide

  34. Tune it!
    Resistance to refactor
    Speed Detection of regressions

    View Slide

  35. Tune it!
    Resistance to refactor
    Speed Detection of regressions
    Resistance to refactor
    Detection of
    regressions
    Speed
    End to end test Trivial tests
    Brittle tests

    View Slide

  36. To decide if write a
    test is worthy or
    not

    View Slide

  37. No test is better than a bad test
    but, then we need something else

    View Slide

  38. O
    b
    s
    e
    r
    v
    a
    b
    i
    l
    i
    t
    y

    View Slide

  39. @xuapsdev
    @[email protected]

    View Slide

  40. Do you want an extra ball?

    View Slide

  41. Maintainability
    Extra ball

    View Slide

  42. View Slide

  43. @xuapsdev
    @[email protected]

    View Slide