Background: Countries, cities, and transport operators rely on Thales' ground transportation solutions to adapt to rapid urbanization, meet new mobility demands, and support digitalization on all levels. Our expertise in signaling, communications, fare collection, and cybersecurity gives people and goods the connected journey they need to move safely and efficiently. For this project, we had two crucial demands that needed automation:
fast time to market by reducing the time needed to create a new release through
automating tests automating code quality checks that are required by the applied safety standards
Goals: The project is realizing a safe command & control UI for railways. The goal is to have the UI configurable fast for customers with different requirements and needs.
"Jenkins gave us a powerful tool to visualize our builds and code checks. It really boosted our stamina. Fun fact: A colleague "accidentally" activated the ChuckNorris plugin and it stayed there for an entire year boosting the fun with a "yes, we can" attitude."
Solution & Results: We had a multi-tiered approach to reduce time and improve QA.
For reducing release time
Even just for a small feature, our biggest time consumer in a release is to execute all product tests. This is mandatory in our safety environment. We have automated most of our UI tests for all customers using Squish, Python, and Java which are integrated into the CI in Jenkins
For performing code quality checks
We’ve integrated FindBugs, Chekstyle, and Jacoco in the Jenkins build. We have quality gates in place that make it impossible for an error to be ignored.
For visualizing code quality reports, we’ve used the following plugins:
Build Monitor View
FindBugs
Checkstyle
DRY
JaCoCo
Test Results Analyzer
For our automation environment, we are using plugins such as:
Xvfb
Squish Jenkins
Here are our results:
Release time reduced to a third
Increased code quality
We are able to quickly find out when a generic feature breaks one of the customer’s configurations