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

9 ways to test your spaghetti code

9 ways to test your spaghetti code

From Nordic Testing Days 2019

Mads Opheim

May 30, 2019
Tweet

More Decks by Mads Opheim

Other Decks in Technology

Transcript

  1. Nordic Testing Days
    9 ways to test your
    spaghetti code
    Mads Opheim
    @MadsOpheim
    1

    View Slide

  2. Tere!
    I’m Mads.
    I’m a developer
    2

    View Slide

  3. Spaghetti
    code?
    3

    View Slide

  4. The 9 ways
    4

    View Slide

  5. 5
    1. Test all
    or
    Test small

    View Slide

  6. 6
    2. Set your
    dependencies

    View Slide

  7. 7

    View Slide

  8. Singletons
    8

    View Slide

  9. 3. Package-protect
    problematic parts
    9

    View Slide

  10. Tools for your toolbox
    10

    View Slide

  11. 4. Do simple refactorings to
    get your code under test
    11

    View Slide

  12. In general: untangling
    and looking at one part at a
    time
    12

    View Slide

  13. You’re not as smart
    as you think you are
    13

    View Slide

  14. Well-designed code
    is testable code
    14

    View Slide

  15. 15
    5. Help your team

    View Slide

  16. You’ll forget things
    16

    View Slide

  17. 6. Run your tests - and care
    17

    View Slide

  18. 7. Feature toggles
    18

    View Slide

  19. 8. One mile at a time
    19

    View Slide

  20. Refactor in separate
    commits
    20

    View Slide

  21. 9. Test-driven
    development
    21

    View Slide

  22. Test-driven
    spaghetti
    22

    View Slide

  23. TDD on legacy code
    in practice
    23

    View Slide

  24. Tip 10, 11 and onwards
    24

    View Slide

  25. 25
    The Deadline For Kunngjøring
    Is Four Weeks()

    View Slide

  26. 26
    Properties For Namsmann
    Mainly Follow The Same
    Rules as Hovedstevnevitne()

    View Slide

  27. You’ll do stupid things -
    and that’s ok
    27

    View Slide

  28. Be consistent
    28

    View Slide

  29. Give me
    more
    @lisacrispin,
    @lisihocke,
    @techgirl1908,
    @maaretp...
    29

    View Slide

  30. Key takeaways
    30
    1. Good code design improves testability
    2. TDD on spaghetti code: TDD + test
    spaghetti code
    3. Write tests for you legacy code -
    you can do it!

    View Slide

  31. Thank you!
    @MadsOpheim
    [email protected]
    31

    View Slide