Synergies between Education, Training, and Research: How the Institute of Computer Science does Industry-Relevant Research in Software Engineering

Dietmar Pfahl, Professor of Software Engineering, co-authored the article “Synergies between Education, Training, and Research: How the Institute of Computer Science does Industry-Relevant Research in Software Engineering”.

Doing industry-relevant research is the mission of the Institute of Computer Science at the University of Tartu. This new publication in one of the top-notch software engineering journals is an excellent example of how we fulfil this mission. Moreover, it is an example of how our education is the starting point for an exemplary career in industry, how we collaborate internationally with other research institutes and universities, and how we establish a system of give-and-take between industry and academia. All this gives us the basis for doing meaningful research. But let’s start from the top.

Software quality is of paramount importance for both, the end-users of software and the developers of software. For end-users, obviously, it is important that the software they use has the functionality that it expected at a satisfactory level of quality. For developers, quality is a cost driver. Investing into ineffective quality assurance activities is a waste of money. Moreover, delivering low-quality software is costly, because it usually incurs much unpaid rework.

In modern, agile software development environments, a key to high quality at low cost has been proposed by experts: Test-Driven Development (TDD). In a nutshell, TDD means that developers first implement tests (which can be executed automatically) and then implement the functionality of the new system. It has been claimed that the advantage of TDD s that it guarantees a minimum of quality at an affordable cost. But what about a mature software development organisation that does sufficient testing after implementing the functionality? Many studies have been conducted by academics that aim to find out whether the promises of TDD actually hold and, indeed, outweigh the high learning curve associated with introducing the TDD process in a company.

Core idea of Test-Driven Development (TDD)

In our study, which was conducted at a large company located in Tartu, we trained developers in TDD and conducted experiments in which we tried to understand how the complexity of the task influence the cost-effectiveness of TDD. The experiment was carefully prepared by our partners at universities in Spain (Madrid) and Finland (Oulu). The results of our experiments show that the complexity of the task has a stronger impact on software quality than the chosen development approach (i.e., TDD versus not TDD). Our results also indicated that TDD was not better than not using TDD. This result contradicts previous studies and might be due to the specific experimental set-up, i.e., the fact that the participants in the experiments were new to TDD and did not have enough time to learn it properly.

Kerli Rungi, former student at the University of Tartu, now Head of Service Delivery at Testlio, Tallinn

This research would not have been possible without Kerli Rungi, one of the co-authors of the publication. Kerli is a former student in software engineering at the University of Tartu. She earned her BSc degree in 2005 and her MSc degree in 2010 both from the University of Tartu. From 2005 until 2016 she was a software quality manager at Playtech, Tartu office. In November 2016, Kerli joined Testlio in Tallinn, where she now is Head of Service Delivery.

Full reference to the article: A. Tosun, O. Dieste, S. Vegas, D. Pfahl, K. Rungi and N. Juristo, “Investigating the Impact of Development Task on External Quality in Test-Driven Development: An Industry Experiment,” in IEEE Transactions on Software Engineering.

doi: 10.1109/TSE.2019.2949811