Software development is not just about coding – testing ensures the quality of the software and is an equally important part of its life cycle. Who could explain this better than software hero Andreas Rupprecht, who has been a Test Engineer at knowis since 2017. In this interview, he explains why chasing bugs is not enough in his job, and if you must be able to program as a software tester.
knowis is a software company that specializes in the financial industry, particularly the lending business. This is a strictly regulated area with very high standards for the quality of software applications.
One approach of agile software development is to find and correct errors as early as possible in the process. The quality of the code is therefore an important issue for software developers during development. However, it is also crucial to look at the finished product, the isfinancial banking platform, as a whole – and, above all, from the customer's perspective. This is where the testing team comes in.
In the following interview, Andreas Rupprecht tells us how testing works at knowis. In 2015, during his business informatics studies, he laid the foundation for his professional career at knowis with an internship and subsequent employment as a working student.
"What I particularly appreciate at knowis is the flat hierarchies and the relaxed interaction with one another. I've found a lot of cool people here with the same interests, with whom I regularly make plans beyond the work relationship, for example to go biking together."
You are part of the testing team. What is this team responsible for exactly?
There is a quote from John Ruskin that describes our work very aptly: “Quality is never an accident; it is always the result of intelligent effort”. Our team is specifically responsible for testing the knowis product isfinancial. Put simply, we click through the software and put its correctness, functionality and usability through its paces. We do this from the perspective of the future user. In addition, Product Management involves the testing team in the requirement process from the start. So, if we can foresee from a requirement that its implementation could lead to quality defects, we have the chance to intervene at this early point to prevent problems later on in the finished software.
Test Analysts make up part of our team. Their task is to look at the requirements for the software together with our Product Management team. They write test case designs, draw up test plans, and make specifications for how we want to test our release.
As a Test Engineer, are you mainly on the hunt for bugs?
Well, you could say that, but it sounds a lot easier than it is if you put it that way. Developers of course review the code they are working on, but they don't test the bigger picture. I'll explain it using an example: If you embed a text field in an application, the text field itself may work, but it may not work anymore if a number field is built in above it. That's why it's our job to integrate the software modules into the UI and thus test the big picture in interaction with other things. To test in the UI, we also have to build our test apps ourselves.
What are common methods or procedures for testing software?
For us, quality assurance comes first. At the beginning of every release, we do a risk analysis to assess which and how many of the features are critical. We try to assess the effects of possible errors in the customer's software. Then we need to decide how much to automate and how much to test manually. We do feature tests in parallel with the actual development process. At the end of the release, we have a large number of regression tests; this means repeatable test cases. This ensures that no new errors have crept into existing parts of the software through modifications. Another option is to include use case tests in which a complete customer scenario is run through end-to-end.
How do you become a software tester? Which skills are important for this job?
THE classic software tester does not exist. But there are a few qualities that you should have to work in testing. You need an eye for details. Maybe this is also one of the reasons why my co-workers were so quick to nominate me for the position of safety officer. In addition, you should have a quality-focused way of working and be motivated to get to the bottom of things. A certain amount of flexibility and creativity is also required, because in an agile process like our development, there are always unpredictable things that can influence your work and force you to think outside the box. What is also necessary: good communication skills, because as a tester you are always in a lively exchange with other teams; at knowis mostly with Development and Product Management. Pointing out mistakes to people is often not the most rewarding task, so a little sure instinct helps a lot.
In addition to these soft skills, the technical background is important, especially as a Test Engineer. It is of course an advantage if the programming level is high enough that you can easily exchange ideas with the developers about the software. In any case, you should have basic knowledge of programming languages such as Java, JavaScript and Typescript. But you don't need to know everything; you just have to know where to look when in doubt or who to ask.
Do these qualities also influence what you do in your leisure time?
I do a lot of sports to balance my job: I regularly work out in the gym, go hiking or mountain biking. As you would expect from a computer scientist, I’m also a little nerdy: I am a gamer. But I am also a real family person and love to spend time with my wife, my brother – for example doing sports – and my parents.
Computer science is your passion, but you don't have the right bike to join the software heroes crew? Then you might take advantage of our 'Business Bike' employee benefit. Take a look at our careers page to discover other job benefits and find out what might be your future role at knowis.