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

Embrace Your Inner Grumpy: Metatesting in 2016

Embrace Your Inner Grumpy: Metatesting in 2016

Presentation I gave at GPUG on January 27, 2016

27601bca8f38e75cbcf9d2dc843f0b32?s=128

Chris Hartjes

January 27, 2016
Tweet

Transcript

  1. Embrace Your Inner Grumpy Metatesting in 2016 Chris Hartjes GPUG

    - January 27, 2016
  2. A little something about me • PHP user since 1998

    • testing advocate since 2004 • writer of PHP books at http://grumpy-learning.com • working at Mozilla as QA engineer in Cloud Services • organize TrueNorthPHP • /dev/hell podcast • OpenCFP head honcho
  3. What is Metatesting?

  4. It starts with… Magic: The Gathering?

  5. Mature Testing Tools Are Available

  6. Mature Testing Tools • PHPUnit — http://phpunit.de • Behat —

    http://behat.org • PHPSpec — http://www.phpspec • Codeception — http://codeception.com
  7. Mature Testing Tools • Don’t reinvent mature tools • Extend

    them for your own needs
  8. Open Source Drives Acceptance

  9. Open Source • Every popular framework has extensive test suites

    • Lack of tests speaks volumes about intent • Great entry point into contributing
  10. Proof Exists To Back The Promises

  11. Proof Exists • Study commissioned by IBM and Microsoft •

    White paper -> http://research.microsoft.com/en- us/groups/ese/nagappan_tdd.pdf
  12. Proof Exists • TDD clearly takes more time… • …but

    results in fewer bugs in production
  13. “Hey boss, for just one extra day per week on

    this project we can get up to 90% fewer bugs making it into production”
  14. Testing Moves Bugs To A Cheaper Phase

  15. Cheaper Fixes • cheapest time to fix bugs is when

    the developer finds them during their work • cost of bugs needs to be evaluated as multiples of developer costs
  16. Cheaper Fixes • cultural costs • opportunity costs

  17. Build Systems Are Finally Easy To Use

  18. Build Systems • Jenkins — https://jenkins-ci.org • Travis-CI — https://travis-ci.org

  19. Build Systems • Great side effects • Highlights pain points

  20. Awesome Complementary Tools

  21. Complementary Tools • code coverage • static analysis

  22. Complementary Tools • Code Climate — https://codeclimate.com • Scrutinizer —

    https://scrutinizer-ci.com
  23. “Tracking improvements via tests lets you know the team is

    on track and doing good work.”
  24. It will never be more difficult to test PHP code

  25. The time investment in tests produces tangible results

  26. I still suck at Magic but are good at Metatesting

  27. Questions? chartjes@grumpy-learning.com Twitter - @grmpyprogrammer Buy my stuff at http://grumpy-learning.com