ESI CIT 2

Progress.NET

Lukas

The case I worked on was provided by the ESI department of the CIT, which is responsible for most IT-related platforms available to or supporting the student. Such platforms include e-mail, Nestor (the digital learning environment of the university), Ocasys, but also Progress.NET, which I worked on. Progress.NET is a software product actively developed by the University of Groningen, and it handles all student study enrollments coming from Studielink, aswell as all administration of student information and payment.

Important to all software development, especially in crucial environments such as Progress.NET, are unit tests. These tests ensure certain parts of the software are functioning as they should, and using unit tests you can easily see where your problem is if your software is not functioning correctly. Seeing as Progress.NET has been in development for several years now, these tests have grown into a testsuite that is taking up to 4 hours every night. My task was to see if this nightly testing could be sped up.

In the first week I was mostly getting familiar with the huge codebase, which has had tens of developers contributing to it over the years, each with his or her own coding styles. After this, I started on converting certain sets of properties that a developer can give to a test into a less error-prone and more intuitive set. This was well received by other developers at the ESI.

Luckily I was given access to a lot of debugging and profiling tools, so I could quickly see where the bigger problems were. During my case I was able to bring the testing down by about 1,5 hours. This was due to the testsuite using the database where it is not necessary, which makes the testing very slow. Unfortunately, this problem is still scattered across most tests in Progress.NET, and was outside the scope of my case. This did, however, result in an opening for a summer job for me!

Lukas de Boer