At Peoplefluent, we have trimmed our test maintenance overhead from ~40% to less than 3% by generating our Selenium Page objects at build-time. We use Java reflection to parse our (constantly changing) presentation layer, and generate these test artifacts, which map to our customer-facing product pages.
This moves the conversation to the developer’s desk–when they change something that affects test automation, it either re-generates a new page object unnoticed, or it causes a compile-time failure, preventing them from even checking in code that will cause an automation error. As a side effect, we fully integrated our automation team with the check-ins, build processes, unit testing,and coding standards of the development team. We use the same development languages and tools, and, as a bonus, allowed any developer on the team to write, execute, and troubleshoot functional automation tests from their own workstation. This was accomplished using 100% open-source products (mainly Selenium), requiring only imagination, an investment of time, and a commitment to automating tests at the unit, integration, and functional layers. This presentation will walk through the decisions made leading to this effort, how it was done, and what would be required for any organization to be able to implement the same. We believe this is a completely new way to think about test automation, and it has allowed us to release our software with a degree of confidence we hadn’t known before!