Automation in Customs Management using GXtest and GeneXus
Concepto is a Uruguayan company specializing in developing comprehensive solutions for foreign trade. Its main focus is customs software. Among its most important developments is the GIA platform (Integrated Customs Management), designed to centralize and optimize the control of foreign trade operations, including the management of imports, exports, transits, fee collections, and associated risk management.
GIA ensures dynamism, security, and transparency in interactions with customs authorities across Latin America.
"GIA must operate 24 hours a day, 365 days a year. A possible failure in this system can halt all foreign trade activities of a country. That is why it is vital for this system to be robust," adds Enrique Almeida, Software Engineer and Director of Concepto.
Therefore, it became imperative to:
"Our developers make daily commits to GXserver, and Jenkins automatically checks every hour for any changes. If it detects any, it starts the build process of the Knowledge Base, which takes about an hour. Additionally, every night we deploy the system in a test environment, using a database that is a copy of the previous day's production environment. We then execute the 140 automated flows, which takes about two hours. Afterward, we send developers a report generated with Allure, informing both them and the development leads about the system's status. With this methodology, any detected error is immediately reported and corrected before reaching production. Also, if we find errors outside of the automated tests, we incorporate them into the next sprint to ensure they are covered in the future. In this way, we have achieved progressive automation that prevents the recurrence of problems and ensures system quality," adds Almeida.
The automation of tests and the setup of continuous integration also impacted the work methodology. Concepto achieved an agile development methodology and fostered a DevOps culture within the team.
"Having the same tool to develop and modify tests greatly speeds up the work, as you can work with the same team without needing to hire an external company to handle the testing.
Although the delivery frequency to the client does not solely depend on the system development cycle—since delivery is managed by another company responsible for administering and monitoring the production environment—Concepto is fully prepared to meet the timelines requested by customs authorities, whether on a weekly, biweekly, or monthly basis. Moreover, the team has the ability to perform intermediate releases during a sprint when customs request urgent updates.
Among the most important benefits are:
The Problem
In a mission-critical system like GIA, constant changes to attributes and tables frequently affected unrelated areas, leading to errors that could reach production. The lack of exhaustive regression testing—due to limited time for manual testing—posed significant risks in terms of system robustness and compliance with the Service Level Agreement (SLA), exposing Concepto to potential penalties and fines."GIA must operate 24 hours a day, 365 days a year. A possible failure in this system can halt all foreign trade activities of a country. That is why it is vital for this system to be robust," adds Enrique Almeida, Software Engineer and Director of Concepto.
Therefore, it became imperative to:
- Perform daily regression tests on critical modules.
- Increase test coverage and detect errors early.
- Reduce the occurrence of errors in production.
- Adopt a scalable solution to automate repetitive processes.
The Solution: GXtest as the Core of Automation
In 2012, Concepto implemented GXtest 3 for end-to-end regression testing in critical flows. Tests were executed automatically in a controlled environment, allowing developers to analyze the results the next day. In 2020, with the migration to GeneXus 16, GXtest 4 was implemented, introducing:- GXtest Recorder to automatically record flows.
- Unit testing on system logic, integrated into the continuous integration pipeline with Jenkins.
"Our developers make daily commits to GXserver, and Jenkins automatically checks every hour for any changes. If it detects any, it starts the build process of the Knowledge Base, which takes about an hour. Additionally, every night we deploy the system in a test environment, using a database that is a copy of the previous day's production environment. We then execute the 140 automated flows, which takes about two hours. Afterward, we send developers a report generated with Allure, informing both them and the development leads about the system's status. With this methodology, any detected error is immediately reported and corrected before reaching production. Also, if we find errors outside of the automated tests, we incorporate them into the next sprint to ensure they are covered in the future. In this way, we have achieved progressive automation that prevents the recurrence of problems and ensures system quality," adds Almeida.
The Results
The use of GXtest transformed the way Concepto ensures the quality of GIA. By automating critical tests and establishing a continuous integration pipeline, Concepto managed to reduce the impact of errors and optimize development and testing times.The automation of tests and the setup of continuous integration also impacted the work methodology. Concepto achieved an agile development methodology and fostered a DevOps culture within the team.
"Having the same tool to develop and modify tests greatly speeds up the work, as you can work with the same team without needing to hire an external company to handle the testing.
Although the delivery frequency to the client does not solely depend on the system development cycle—since delivery is managed by another company responsible for administering and monitoring the production environment—Concepto is fully prepared to meet the timelines requested by customs authorities, whether on a weekly, biweekly, or monthly basis. Moreover, the team has the ability to perform intermediate releases during a sprint when customs request urgent updates.
Among the most important benefits are:
- Reduction of production errors
Automation has significantly decreased the number of errors reaching production, aligning with the quality standards of the SLA (Service Level Agreement).
- Operational peace of mind
With automated regression tests, the team can confidently deploy new versions.
- Agility in migrations
Automated testing has become a cornerstone during GeneXus and Oracle updates, ensuring a smooth transition.
- Smart automation
GXtest enabled extending test coverage without significantly increasing resources.
- Adaptability
Integration with existing tools and the ability to record new flows ensured the system’s continuous evolution.
- DevOps culture
Automation fostered collaboration among developers, minimizing errors and optimizing processes.