Software quality takes on different forms. There is the internal perspective, or the perspective that software developers experience when working with the software: is the code easy to read, modify, test, etc. There is also the external perspective, or how the users of the software application perceive its dependability.

The Delft Software Engineering Research Group works on both fronts, which are often intertwined as well.

Software Quality

The quality of source code can have far-reaching effects on productivity, testability, and even overall developer happiness. We are interested in a broad area of software quality topics.

Some current topics:

  • Use of static analysis tools: How are developers using automatic static analysis tools for improving their code quality? Can we improve the existing tools?
  • Use of code reviews: How do code reviews contribute to code quality? Who should perform code reviews?
  • Influence of development tools or paradigms: How does pull-based development influence quality? How does Continuous Integration (CI) help? What does DevOps do in terms of improving code quality?
  • Code quality measurement: What are the best ways to measure the quality of source code?
  • Software refactoring: How can we help developers in refactoring their large-scale complex software systems? Can we automatically recommend pieces of code that need refactoring?

Software Testing

Software pervades modern society. The systems that come to life through software play critical roles from an economic, safety, security and scientific standpoint, thus making their dependability indispensable. Software testing is our first line of defense against software failure, but is often lacking. Many software engineers do not know how to test, how much to test, what to test, or think of test activities as unproductive.

Some current topics:

  • Mutation testing: how can we make mutation testing easier to apply to real-world software systems?
  • Test analytics: how can we make software engineers more aware of their test activities (and help them in steering their future test activities)
  • Test code quality: How does test code quality influence the ease by which bugs can be located?
  • Test case generation: related to the work done in the CI4SE research line.
  • Developer-centric perspective on testing: what are some of the difficulties that developers encounter when starting/willing to test?