Jeffrey Payne, Granbury Solutions
Busy restaurants are one of the most hostile computing environments on the planet and yet the quality and reliability requirements for restaurant point-of-sale systems are incredibly high. If the point-of-sale system stops working, the entire restaurant grinds to a halt.
This presentation will show how Granbury built an automated continuous integration test infrastructure for its in-store and online ordering systems based on Selenium WebDriver. Called Crossfire, this in-house testing tool uses a JSON based DSL to model restaurant order workflow and build new test cases without requiring any knowledge of WebDriver or Selenium.
Using Spring for dependency injection, the same test cases can be run against several different POS systems and online ordering systems, thereby ensuring consistency of pricing calculations and discounts across various order entry platforms. The page object pattern is used to isolate and reuse WebDriver code. An additional product level abstraction layer is used to isolate product specific interactions, enabling the same test cases to be run against several different products at once.
Special simulation tools also make it possible to automate scheduled events, daylight savings time change behavior, caller id integration, receipt and kitchen printer job flow, etc. Bamboo remote agents deployed on the actual in-store hardware are used to run the tests against all supported operating system, browser, and mobile device combinations.
This presentation will also discuss the institutional barriers to test automation and how to confront them by demonstrating how a comprehensive test automation suite can be a major competitive advantage and an asset almost as valuable as the products it supports.