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

The Mad Science of Testing

The Mad Science of Testing

Talk given to PHP Berkshire in June 2015.

Stuart Herbert

June 17, 2015
Tweet

More Decks by Stuart Herbert

Other Decks in Programming

Transcript

  1. @stuherbert Experiment Design • Form a hypothesis • Determine required

    pre-conditions • Execute steps • Observe changes • Draw conclusions Mad Science of Testing
  2. @stuherbert Experiment Design • Form a hypothesis • Determine required

    pre-conditions • Execute steps • Observe changes • Draw conclusions Mad Science of Testing
  3. @stuherbert Experiment Design • Form a hypothesis • Determine required

    pre-conditions • Execute steps • Observe changes • Draw conclusions Mad Science of Testing
  4. @stuherbert Experiment Design • Form a hypothesis • Determine required

    pre-conditions • Execute steps • Observe changes • Draw conclusions Mad Science of Testing
  5. @stuherbert Experiment Design • Form a hypothesis • Determine required

    pre-conditions • Execute steps • Observe changes • Draw conclusions Mad Science of Testing
  6. @stuherbert Test Design • Given a requirement to prove •

    Determine test data to use, system state before test starts • Execute code • Check return values, persistent data • Test pass / fail Mad Science of Testing
  7. @stuherbert Test Design • Given a requirement to prove •

    Determine test data to use, system state before test starts • Execute code • Check return values, persistent data • Test pass / fail Mad Science of Testing
  8. @stuherbert Test Design • Given a requirement to prove •

    Determine test data to use, system state before test starts • Execute code • Check return values, persistent data • Test pass / fail Mad Science of Testing
  9. @stuherbert Test Design • Given a requirement to prove •

    Determine test data to use, system state before test starts • Execute code • Check return values, persistent data • Test pass / fail Mad Science of Testing
  10. @stuherbert Test Design • Given a requirement to prove •

    Determine test data to use, system state before test starts • Execute code • Check return values, persistent data • Test pass / fail Mad Science of Testing
  11. @stuherbert Mad Scientist Needs • Somewhere to do mad science

    • Something to experiment on • Something crazy to attempt • A sidekick to do all the heavy lifting Mad Science of Testing
  12. @stuherbert Mad Scientist Needs • Somewhere to do mad science

    • Something to experiment on • Something crazy to attempt • A sidekick to do all the heavy lifting Mad Science of Testing
  13. @stuherbert Mad Scientist Needs • Somewhere to do mad science

    • Something to experiment on • Something crazy to attempt • A sidekick to do all the heavy lifting Mad Science of Testing
  14. @stuherbert Mad Scientist Needs • Somewhere to do mad science

    • Something to experiment on • Something crazy to attempt • A sidekick to do all the heavy lifting Mad Science of Testing
  15. @stuherbert Software Tester Needs • Somewhere to test • Something

    to test • A requirement to prove • Automation tools Mad Science of Testing
  16. @stuherbert Software Tester Needs • Somewhere to test • Something

    to test • A requirement to prove • Automation tools Mad Science of Testing
  17. @stuherbert Software Tester Needs • Somewhere to test • Something

    to test • A requirement to prove • Automation tools Mad Science of Testing
  18. @stuherbert Software Tester Needs • Somewhere to test • Something

    to test • A requirement to prove • Automation tools Mad Science of Testing
  19. @stuherbert The Laboratory • Built for mad science only •

    Full of crazy stuff • Built out of recycled junk • Often deadly to innocent trespassers! Mad Science of Testing
  20. @stuherbert The Laboratory • Built for mad science only •

    Full of crazy stuff • Built out of recycled junk • Often deadly to innocent trespassers! Mad Science of Testing
  21. @stuherbert The Laboratory • Built for mad science only •

    Full of crazy stuff • Built out of recycled junk • Often deadly to innocent trespassers! Mad Science of Testing
  22. @stuherbert The Laboratory • Built for mad science only •

    Full of crazy stuff • Built out of recycled junk • Often deadly to innocent trespassers! Mad Science of Testing
  23. @stuherbert Test Environments • Purpose built • Full of things

    unique for testing • Running on hand-me-down kit :( • Should be deadly to bad code Mad Science of Testing
  24. @stuherbert Test Environments • Purpose built • Full of things

    unique for testing • Running on hand-me-down kit :( • Should be deadly to bad code Mad Science of Testing
  25. @stuherbert Test Environments • Purpose built • Full of things

    unique for testing • Running on hand-me-down kit :( • Should be deadly to bad code Mad Science of Testing
  26. @stuherbert Test Environments • Purpose built • Full of things

    unique for testing • Running on hand-me-down kit :( • Should be deadly to bad code Mad Science of Testing
  27. @stuherbert Crazy Stuff • Reanimation • Death rays • Time

    travel • Crazy hybrids Mad Science of Testing
  28. @stuherbert Crazy Stuff • Reanimation • Death rays • Time

    travel • Crazy hybrids Mad Science of Testing
  29. @stuherbert Crazy Stuff • Reanimation • Death rays • Time

    travel • Crazy hybrids Mad Science of Testing
  30. @stuherbert Crazy Stuff • Reanimation • Death rays • Time

    travel • Crazy hybrids Mad Science of Testing
  31. @stuherbert Test Activities • Repeatable testing • Robustness tests •

    Reproduce reported faults • Test things together Mad Science of Testing
  32. @stuherbert Test Activities • Repeatable testing • Robustness tests •

    Reproduce reported faults • Test things together Mad Science of Testing
  33. @stuherbert Test Activities • Repeatable testing • Robustness tests •

    Reproduce reported faults • Test things together Mad Science of Testing
  34. @stuherbert Test Activities • Repeatable testing • Robustness tests •

    Reproduce reported faults • Test things together Mad Science of Testing
  35. @stuherbert Automation! • Repeatable heavy lifting • Upfront effort required

    • Build your own • Make it run your laboratory Mad Science of Testing
  36. @stuherbert Automation! • Repeatable heavy lifting • Upfront effort required

    • Build your own • Make it run your laboratory Mad Science of Testing
  37. @stuherbert Automation! • Repeatable heavy lifting • Upfront effort required

    • Build your own • Make it run your laboratory Mad Science of Testing
  38. @stuherbert Automation! • Repeatable heavy lifting • Upfront effort required

    • Build your own • Make it run your laboratory Mad Science of Testing