I'm a full professor in software engineering at the Delft University of Technology, The Netherlands. My research interests are in software evolution and software testing.
I received my MSc (2002) and PhD (2006) from the University of Antwerp, Belgium, where I worked in the "Lab On REengineering" (LORE) under the supervision of prof. dr. Serge Demeyer. In October 2006 I joined the Delft University of Technology as a post-doc to work together with prof. dr. Arie van Deursen. Later on I became an assistant/associate professor in the Software Engineering Research Group (SERG). For the academic year 2007-2008 I was associated with the University of Antwerp as a part-time lecturer and I've taught the System Reengineering course at the University of Leicester (UK) from 2008 till 2010. In 2013 I was the recipient of an NWO Vidi career grant for my TestRoots research proposal. In 2019, NWO awarded me with their most prestigious Vici career grant. I am teaching basic programming, software testing and software reengineering.
I am the director of studies of the BSc programma Computer Science and Engineering (CSE) at Delft University of Technology. In that role I also lead the CSE Teaching Team.
Follow me @...
[05/2021] I'm hiring 1 PhD student and 1 post-doc in the area of software testing for my NWO Vici project "TestShift". See here for details. Consider applying!
[03/2020] My former PhD student Moritz Beller wins the VERSEN PhD Award 2019-2020. Congrats Moritz!
[07/2019] I was appointed full professor in software quality.
[07/2019] My former PhD student Moritz Beller wins the IPA Best Dissertation Award. Congrats Moritz!
[04/2019] Excited to join the editorial board of the Empirical Software Engineering journal!
[26/02/2019] I was awarded a 1.5M euro NWO Vici grant (13% acceptance rate), the most prestigious Dutch individual research grant, for my TestShift proposal.
[23/11/2018] Moritz Beller graduates cum laude as the 1st PhD student of which I am officially promotor. Congratulations Moritz!
[11/2018] On November 6th, I will be co-organizing the Dutch Testing Day in Delft. See here for more details: www.testdag.nl.
[06/2017] I was elected "Best CS Teacher" 2017 at the faculty of Electrical Engineering, Mathematics and Computer Science (Delft University of Technology). Thank you all (TA, co-teacher, ...) who helped me!
[02/2015] I've presented "Making Testing Fun" at TEDxDelft on February 27th, 2015! Watch it here
[06/2014] I was appointed associate professor.
[15/05/2013] I was awarded a 800K euro NWO Vidi grant, one of the most prestigious Dutch individual research grants, for my TestRoots proposal.
I've had / am having the privilege of (co)supervising the following PhD students, post-docs & scientific programmers:
Bas Cornelissen, graduated June 23rd, 2009. Evaluating Dynamic Analysis Techniques for Program Comprehension [PhD thesis, NWO Reconstructor project, DBLP, LinkedIn]
Cor-Paul Bezemer, graduated April 14th, 2014. Performance Optimization of Multi-Tenant Software Systems [PhD thesis, MTS project sponsored by Exact, homepage, DBLP, LinkedIn].
Tiago Espinha, graduated March 20th, 2015. Web Service Growing Pains: Understanding Services and Their Clients [PhD thesis, NWO ScaleItUp project, homepage, DBLP, LinkedIn].
Cuiting Chen, graduated May 27th, 2015. Automated Fault Localization for Service-Oriented Software Systems [PhD thesis, NWO ScaleItUp project, homepage, DBLP, LinkedIn].
Frens Vonken, worked on software quality in the EQuA project. [quit the PhD program, DBLP, LinkedIn]
Petra Heck, graduated March 11th, 2016. Quality of Just-in-Time Requirements: Just-Enough and Just-in-Time. [PhD thesis, EQuA project, homepage, DBLP, LinkedIn].
Mark Swillus working on software testing [homepage, DBLP, LinkedIn]. Supervised together with Mauricio Aniche.
Georgios Gousios (2013-2014), working on developer testing and GitHub in the TestRoots project [homepage, DBLP, LinkedIn]. Now assistant professor at Delft University of Technology.
Annibale Panichella (2015-2016), working on testing in the TestRoots project [homepage, DBLP, LinkedIn]. Now assistant professor at Delft University of Technology.
Fabio Palomba (2017), working on software quality and testing in the TestRoots project [homepage, DBLP, LinkedIn]. Now assistant professor at University of Salerno, Italy.
Gema Rodriguez-Perez (2018), working on social structures in software development teams. [homepage, DBLP, LinkedIn, jointly supervised with Alexander Serebrenik]. Now assistant professor at the University of British Columbia, Okanagan, Canada.
Gemma Catolino (2019-2020), working on software testing. [homepage, DBLP, LinkedIn]. Now post-doc at Jheronimus Academy of Data Science.
Joseph Hejderup (2015-2016) in the Pourquoi project [LinkedIn].
Fabio Palomba, University of Salerno (Sept-Dec 2015).
Mauricio Aniche, University of São Paulo (Jan-Apr 2016).
Dario Di Nucci, University of Salerno (May-Jul 2016 + March-May 2017).
Gemma Catolino, University of Salerno (2017+2018+2019).
My research interests can be situated in the larger area of software evolution and software testing.
My primary aim is to better understand what difficulties software engineers face (1) when maintaining the software and (2) when testing the software. I often use empirical research methods to get to the bottom of these difficulties. In a subsequent design science step, I try to develop tools and techniques to alleviate these difficulties.
More specifically, I have worked on reverse engineering existing software to better understand how it works and to offer people new to a software project a head start when trying to understand a software system. Something which is especially important in the light of missing or outdated requirements.
I also have a keen interest in trying to understand how making changes to a software impacts its quality. In particular, how people test for the changes and what problems they face when testing in general.
In other research, I also investigate: code clone management, repository mining, performance optimization, multi-tenancy, web API stability, agile requirements engineering (Just-In-Time Requirements Engineering) and automated static analysis tools (ASATs).