Continuous Integration Process for Rail System

Who is the client?

The client is a continental distribution channel of railways for online sales of high-speed and conventional rail travel.

What was the client trying to achieve?

In the beginning, the main focus was to test the desktop application and the Web Services APIs manually. Initially the process was to call individual WS requests one after another and manually collecting the required information from one’s response, use it for the next one’s request (while manually verifying all information present in the response). With time, and as the number of Partners increased on the Client’s end, it became difficult to finish all tests with 100% coverage for every release with the available resources. To overcome the shortcoming, Data-Core introduced an Automated testing process for the Web Services. Now from calling all WS requests and transferring data to verifying all information returned in respective WS responses – all are done automatically.

With increased Partners on the Client’s end, it became difficult to finish all tests

What challenges were encountered?

The challenge was to re-format and upload all test cases in a Test Management tool. Data-Core first used a tool that was not meeting all needs so the team switched to one that met each requirement. Then the Framework was designed for the Automation script preparation. It was also challenging to keep the scripts aligned with the updated sale/after sale conditions for different products. There are around 30 different product families which are sold around the world with different sale/after sale conditions divided into 4 partitions.

30 different Product families which were sold around the world

What services did Data-Core provide?

To achieve a successful result from this automation campaign the following was done:

At first, the automation could only performed until the Payment step. Then an output file was generated with all the affected bookings, which in turn was paid manually one by one in the 3rd party website. Because it is not possible to be done by using SoapUI – Data-Core introduced Selenium and integrated with SoapUI. The bookings were then automatically sent to 3rd party merchants for payment. Once successfully paid, the booking comes back to Web Services for issuing the PDF email (tickets).

Originally, all the scenarios were executed in Soap UI of a local PC which demanded an attentive resource to manipulate different issues. The test result of test completion details were not globally available for the clients. To eliminate the shortcoming, Data-Core introduced a Version-2 where all Test Projects are executed in Jenkins and can be scheduled to run automatically without any resource requirement. The entire process is open to the client and Data-Core, so anyone (with proper authorization) can access the results and see the current process or the completion details.

In Summary…

Data-Core currently does all testing for each release. The entire Automation process created re-usable codes to reduce time. The creation of classes and methods as per products/pages/modules (kind of ‘Page Object Models’ concept) enabled easy understanding. Strategy development is now possible to identify savings opportunities, assess market dynamics and develop an informed sourcing strategy.

  • Test automation efforts reduced overall testing costs
    Previously 3 resources were used to finish the tests in estimated time, now only one resource is used to finish everything twice before the deadline.
  • Test cycle times lowered by 60%, even with more tests done
    In Manual type testing it was a big challenge to finish all tests with highest possible test coverage as per the estimations, due to multiple uncontrolled factors. With the onset of the automation process, even more exhaustive test coverage was added.
  • Platform coverage increased by 116%
    With Manual testing, only 250 Test cases were performed and now it has more than doubled to 540 testcases.
  • Reduction of test execution timelines
    As an example, for the Test Suit containing 200 to complete manually it would take almost 17 days (12 TCper 8hours per person as per SLA). Now it takes almost 3 hours to complete the execution in Jenkins server automation process. And another 2-3 days to analyze and create defects according to the number of failed scenarios.
  • Defect reduction
    Since the coverage has expanded and more exhaustive testing is possible through the automation process. We have seen the number of defects found during testing has increased by 20% and number of defects found in production has decreased by 15%.

Test cycle times lowered by 60%, even with more tests done

Platform coverage increased by 116%