Functional Testing Lessons Learned

11:35–12:20 Thursday, 4-09-2008
Location: Saal Maritim C Level: Novice
Average rating: ****.
(4.10, 10 ratings)

Complex applications can quickly create slow and unmaintainable functional test suites. Test suites often get this way because they depend on integration points, reference data, and temporary state data. The trick to optimizing a functional test suite is a pragmatic dependency management approach.

It is generally an anti-pattern to utilize mocks or stubs in the functional test suite; however, system integration points are the perfect exception to the rule. A well devised stubbing plan can ensure that external changes don’t wreak havoc within your functional test suite.

All data is not created equal. The 50 states will likely remain the same for the foreseeable future; however, application state data, such as a promotion table, can change on a per test basis. Treating differing types of data appropriately can lead to more readable, maintainable, and performant tests.

This talk will focus on these and other ideas on how to get the most value out of a well designed functional test suite.

Photo of Jay Fields

Jay Fields

DRW Trading

Jay Fields is a software developer, speaker, and author employed by DRW Trading. He has a passion for discovering and maturing innovative solutions. His most recent work has been in the Domain Specific Language space where he has delivered applications that empowered subject matter experts to write the business rules of the applications. He is also very interested in maturing software design through software testing and software testing in general.

News and Coverage
co-presented by Ruby Central, Inc. O'Reilly
  • Engine Yard
  • Sun Microsystems
  • Brightbox
  • ELC Technologies
  • T3N

Sponsor Opportunities

For information on exhibition and sponsorship opportunities at RailsConf Europe, contact Yvonne Romaine at

Press and Media

For media-related inquiries, contact Maureen Jennings at

Contact Us

View a complete list of RailsConf Europe Contacts