Capgemini, together with the FEA systems integrator and other partners, develops a new tool to control intelligent quality assurance in a large software system
Client: Bundesagentur für Arbeit (Federal Employment Agency, FEA)
Industry: Public Sector
Client Challenge: Avoidance of programming errors in the further development of a large, business critical software application
Solution: Working with Capgemini, the FEA introduced a machine learning-based, static code analysis tool to find patterns and tools that could support error-free code
- Identification of code patterns and software errors
- Avoidance of hotfixes
- Identification of useful rules that affect functional and non-functional requirements
FEA provides services to millions of citizens
The Federal Employment Agency (FEA) is one of the largest users of information technology in Germany. It offers a broad range of services in the labor and training markets for citizens as well as companies and institutions. A nationwide network of employment agencies and branch offices ensures these services are carried out in a timely and efficient manner. In addition, the agency conducts labor market and occupational research, labor market observation and reporting, and records labor market statistics.
It also disburses unemployment benefits such as Arbeitslosengeld II, known as “Hartz IV.” Because this is the basic provision for citizens without assets and sufficient income, punctual and correct payment is particularly important.
Identification of hidden software errors is a challenge
The system used by the FEA for the calculation and payment of about 25 billion Euros in unemployment benefits per year consists of about 800,000 lines of code and performs millions of transactions each month. Prior to the release of each update, conventional quality control methods thoroughly test the software. However, even for advanced developers, there are errors that are hard to identify using standard code review methods. Tests cover the majority of the code, but errors often reside in the sections that are not fully evaluated. Once an error occurs in production, the FEA needs to react instantly, usually with a hotfix.
As a long-standing service provider at the FEA, Capgemini possessed a great deal of insight into the challenges the organization faced. During the operative business of a large FEA IT process, the project team became fully aware of the client‘s challenge and, in collaboration with the client, decided to solve the problem using an innovative, machine learning-based approach.
The implementation was carried out in cooperation with the FEA IT systems integrator. In addition, the chair for Information Systems, Processes, and Systems at the University of Potsdam was involved in research on the topic in advance.
Intelligent system identifies patterns and rules to prevent errors
The FEA had very high-quality requirements and already used static code analysistools. They analyzed code against pre-defined rules and, if a rule was violated, it was identified as a potential code error. However, this meant that only errors violating existing rules could be found. It was therefore difficult to identify complex problems and solve them without hotfixes. Machine learning provides the ability to find even previously unknown errors.
The FEA and Capgemini worked together to develop a machine learning-based, static code analysis tool to find patterns and rules for error-free code in a code base. Now, more errors are identified and corrected before they can cause damage.
The result counts: efficient and effective prevention of software failures
The FEA can now identify code errors more easily during testing, which further reduces software malfunctions. In addition, it will be easier to avoid similar issues in the future by recognizing sources of error more reliably before the release of the software through patterns and rule violations hidden in the code.
After two months of deployment, the system has already found useful rules for functional and non-functional requirements. For example, the system detects if code used for closing a transaction is missing and thus prevents performance issues. In addition, the system indicates if existing helper methods can solve a problem, which provides a simpler solution than repeatedly re-coding the same issue.
The collaborative approach
Together with the FEA, its system integrator, and a group of students of the Chair of Business Informatics, Processes, and Systems at the University of Potsdam, Capgemini has founded a research group for machine learning in static code analysis. The concept of the Collaborative Business ExperienceTM is a central component of the corporate philosophy and is intended to support business processes and innovations through a collaborative and people-centered approach. In this case, every second week there was a telephone exchange with all participants on how additional patterns and association rules could be found in the code and used for better error detection.