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 @...
[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!
[05/2019] I'm hiring 2 PhD students in the area of software testing. See here for details.
[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.
[08/2018] The paper "A Test Case Prioritization Genetic Algorithm guided by the Hypervolume Indicator" was accepted for the IEEE Transactions on Software Engineering.
[12/2017] The paper "On The Dichotomy of Debugging Behavior Among Programmers" was accepted for ICSE 2018.
[11/2017] The paper "Developer Testing in The IDE: Patterns, Beliefs, And Behavior" was accepted for the IEEE Transactions on Software Engineering.
[09/2017] The paper "Does Refactoring of Test Smells Induce Fixing Flaky Tests?" that Fabio Palomba and I co-authored won the IEEE TCSE Most distinguished paper award at ICSME 2017.
[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!
[01/2016] I gave a keynote at the Dutch Software Engineering Symposium entitled: "Software Analytics: The Dark Side and the Test Side". See the slides here.
[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:
Gema Rodriguez-Perez (research associate, 2018), working on social structures in software developmen teams. [homepage, DBLP]
Joseph Hejderup (scientific programmer, 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).