Retalix speeds up thousands of unit and integration tests accelerating continuous integration cycle times by 90% – yielding major delivery improvements
Retalix is a former retailer-applications software company, providing wholesalers and distributors with operations management tools, supply chain & transportation management, and warehouse management.
Following Incredibuild’s project with Retalix, the company was acquired by NCR Corporation for approx. $650 million, at $30 per Retalix share.
The Retalix 10 Store and Sales Channel suite unifies and streamlines deployment & management of in-store, mobile commerce, and online storefront systems. The solution’s agile architecture enables retailers to break away from the practice of integrating disparate ‘silos’ and migrate to a unified, single-engine platform for:
- Highest flexibility
- Fastest possible time-to-market
- Outstanding centralized management, monitoring, and control
The company’s next-generation point-of-sale comprises of comprehensive, complete hardware-independent functionality. It can be deployed over an extensive range of hardware platforms and peripherals.
The solution integrates closely with all retail touchpoints, as well as with store and inventory management applications.
Developing a robust and extensible platform in the POS space requires more than high performance and fully featured solutions. It is highly essential to ensure high quality and ever-updated software test cycle. The emphasis must be on a very efficient test—from an individual developer to a system-wide process—to ensure high-quality and fast releases.
Retalix faced a complex and modular system that consumes a significant amount of resources when developing and testing its software. Having around 30,000 unit-testing processes to run in each cycle, the platform needs to scale and enable further expansion. Each iteration required the setup of its latest version. While such a version is updated, others have to wait until they can commit their own test fixes.
The objective was to see if there are other ways to shorten this build cycle. After deploying the initial solution, the group has decided to address a second challenge they identified during the implementation: the integration tests within the Continuous Integration process. Each integration process involves setting up the environment, getting VMs ready, and running the process. This needed to run 3 times a day and took about 2:30 hours (and in some cases up to 4 hours).
“Incredibuild enabled us to drastically reduce our release cycles from 2 hours to 12 minutes, allowing us to run any number of builds per day.”
Release Manager, Retalix
Retalix installed Incredibuild agents, and each developer in the group could start a unit testing cycle from their own station while using the whole sum of available cores of the agent computers. The units, which comprised about 30,000 tests, could now run in parallel.
The result was dramatic and allowed developers to completely change the way they work. With some hardware improvement, Incredibuild’s solution managed to shortened the unit test execution time from 2 hours to 12 minutes for every single developer. This is about 10 times faster. Where the overall debug version used to take about 50-70 minutes, Realtix managed to reduce it to a mere 10 minutes altogether. And the integration test went down from 50 minutes to 1.20 minutes!
The dramatic change that the test-cycle acceleration had on each developer’s performance have allowed Retalix to:
- Reduce the build process by reducing test cycle time by up to 90%
- Reduce test cycles, allowing more cycles daily
- Yield a significant delivery improvement
In addition, Retalix managed to implement and realize true shift-left methodology in their Continuous Integration and find & prevent bugs earlier in the software delivery process.
Furthermore, with Incredibuild developers can run the full unit test suit before they commit their code to the repository. This increased the continuous Integration build’s success rate, improved efficiency of the release automation process, and reduced time to materials.
The Bottom Line
30,000 Unit Testing12 mins2 hours
Integration Test in CI1.3 mins50 mins
Debug Version Reduction10 mins70 mins