Capgemini, together with the FEA systems integrator and other partners, develops a new tool to control intelligent quality assurance in a large software system
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 labour 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 labour market and occupational research, labour market observation and reporting, and records labour 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 organisation 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 analysis tools. They analysed 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.
Capgemini developed 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 recognising 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
The Collaborative Business ExperienceTM is central to Capgemini philosophy and a pillar of our service delivery.
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-centred 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.