Live Testing A Legacy App

Preview:

Citation preview

LIVE TESTING A LEGACY APP

WHAT THIS TALK ISN'T!

> About TDD> Framework Specific

> For testing veterans

WHAT THIS TALK IS!

> An introduction to testing jargon> A collection of techniques for starting to test your

app> Introduction to Selenium and TestBox

> Asking tough questions as well as giving answers

OTHER SESSIONS RIGHT NOW

> Lucee Panel Discussion — Room 235> Writing Highly Organized CSS — Room 238

> Ouch, It Hurst When Do That. A Tale Of Landmines And Self-Inflicted Wounds — Room 321

> Getting Started With Build Tools — Auditorium

WHO AM I?ERIC PETERSON

! Utah

" O.C. Tanner

# 1 wife, 1 kid

WHAT KIND OF THINGS MAKE AN APP A LEGACY APP?> No framework

> Few or no tests> Old or incorrect design decisions

> New or changed business requirements

NO TESTS CONTRIBUTE TO A LEGACY APP?

ABSOLUTELY!

WHY?THEY MAKE US SLOWER

HERE'S THE DEALEVERYBODY TESTS

MODERN CODE WORKS TO AUTOMATE IT

TYPES OF TESTING

> Unit Tests> Integrated Tests> Functional Tests> Application Tests> End-to-end Tests

TYPES OF TESTING (CONTINUED...)

> Regression Tests> Acceptance Tests

> Performance Tests> Accessibility Tests> Compatibility Tests

STOP!!!!

MY LEGACY APP TESTING PHILOSOPHY*(* SUBJECT TO CONSTANT CHANGE !)

> Don't stress about the kinds of tests you are writing. Slow tests are better than no tests

> Utilize Continuous Integration to offset this> Split your tests up and create multiple runners to help

as well.

MY TESTING PHILOSOPHYTEST WHAT MAKES SENSE (AND WHAT SAVES YOU

MONEY)SOME EXAMPLES:

> It broke before> We test it manually every time

> The logic is kind of hard to follow (for the next time

MY TESTING PHILOSOPHYTDD

> Helps you design the class one piece at a time (not focused on in this talk)

> Pair programming (one writes the test, the other writes the code to make the test pass)

BEST TYPES OF TESTS FOR A LEGACY APP?

Integration Testing

&

Regression Testing

BEST TOOLS TO TEST A LEGACY APP?

> Selenium> TestBox> Travis

TESTING GOTCHAS(FOR LEGACY APPS)

> Be careful of mocks> Don't test too many details

DEMOTHE LEGACY APP

DEMOINTEGRATED TEST

(SELENIUM)

DEMOUNIT TEST

DEMOREFACTORING

LAST NOTECONTINUOUS INTEGRATION

Travis CI

&

CFML CI

LAST NOTECONTINUOUS INTEGRATION

> Emails> Github Badges

> Slack Integration

LAST NOTECONTINUOUS INTEGRATION

USE WITH MULTIPLE TESTBOX RUNNERS.

THANK YOU!!

elpete

@_elpete

! dev.elpete.com

Recommended