Functional Testing Lessons Learned

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.

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.