As a side effect of a digitalized world, software developers are under constant pressure to deliver new features very quickly, while maintaining high software quality. This becomes more and more challenging as the code grows in size and complexity. While agile development puts extra emphasis on writing tests that can be re-executed repeatedly, most programmers find themselves dealing with old code with not much documentation and not many tests in place.
In this presentation, we will go over some opportunities and possibilities for automating software testing and debugging processes, and improving software quality in general. We will discuss methodologies for stress testing and compatibility testing in the context of Java applications, and will present delta debugging as a practical automated approach for debugging regression problems.
We will wrap up the presentation by an overview of our experience on incorporating testing tools into our own software development process at Horus software GmbH. Our almost 10-years-old software product is a Java-based, multi-layer software consisting of a graphical UI, client, server, and database components. Horus regularly integrates contributions from external sources such as university theses and research projects. While such contributions make exciting software features, they are not always written by experienced programmers, which makes it particularly challenging for us to ensure the desired product quality. In this presentation, we report on practical approaches and ideas that help us test and evaluate our code at various levels, and thus improve our users’ experience.
Dr. Mana Taghdiri is the lead software developer at Horus GmbH. She has received her Masters and PhD degrees in the field of Computer Science, Software Design from MIT in Massachusetts, USA. She has worked as a senior software engineer on the design of a Just-In-Time compiler at MathWorks Inc, and later joined KIT as a junior professor in Informatics, supervising the Automated Software Analysis group. She has several publications on automatic software checking and requirements analysis. She has received two ACM/SIGSOFT distinguished paper awards for her work on scalable software analysis, and research grants for her ideas on automating software verification.