Maurício Aniche, Assistant Professor in Software Engineering at TU Delft.

I help developers to effectively maintain and evolve their software systems. My current research interests are software maintenance (evolution, refactoring, comprehension), software testing, and software monitoring and log analysis.
Education. I got my PhD (2016) and MSc (2012) degrees in Computer Science at University of São Paulo (USP), Brazil.
Teaching. I currently teach Software Testing and Quality (CS bachelor), Software Analytics and Machine Learning for Software Engineering (CS MSc), and Software Engineering Methods (CS minor).
Industry experience. Before moving to academia, I worked as a software developer at Caelum (5 years), Locaweb (1 year), and VeriFone (3 years). Together with Caelum, I co-founded Alura, the most popular e-learning platform for software engineers in Brazil.
Book author. I have authored books about TDD, software testing automation, Object-Oriented Design, and introduction to C programming. Together, they have sold more than 10k copies.
Selected Publications
Monitoring-Aware IDEs
27th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE), 2019
We want IDEs to be more aware of what happens to the software in production. To that aim, we propose what we call a ‘monitoring-aware IDE’. After implementing a prototype, we experimented with it at Adyen, with 12 of their developers using it for a month. Our results show that such IDEs can indeed make developers more productive (and more aware about what happens with their software in the wild!)
The Adoption of JavaScript Linters in Practice: A Case Study on ESLint
Transactions on Software Engineering (TSE), 2018
We examine developers’ perceptions on JavaScript linters. Our results provide practitioners with reasons for using linters in their JavaScript projects as well as several configuration strategies and their advantages. We also provide a list of linter rules that are often enabled and disabled, which can be interpreted as the most important rules to reason about when configuring linters.
Search-Based Test Data Generation for SQL Queries
40th International Conference on Software Engineering (ICSE), 2018
We propose a search-based algorithm that generates test data for a given SQL query, using MC/DC coverage criteria. Our approach is able to generate test data for more than 90% of our dataset, and it is highly superior to others (as they tend to model the problem as CSP, which fails in most complex queries). The tool is available in our GitHub.
[Video summary] [Vídeo em português]
When Testing Meets Code Review: Why and How Developers Review Tests
40th International Conference on Software Engineering (ICSE), 2018
We studied the effort that developers put in reviewing test code (when compared to production code). We observed that developers tend to give more attention to production code when both are on the same patch, that developers mostly point code quality issues in their review (rather than missing tests, as they claim they do), and that review tools do not really help them in reviewing both the test and the class under test.
[Video summary] [Vídeo em português]
Code smells for Model-View-Controller architectures
Empirical Software Engineering Journal (EMSE), 2017
This paper proposes a set of smells that can exist in MVC applications. Empirically validates the change- and defect-proneness of classes affected by the smell as well as their evolution over time. Proposes SpringLint, a tool that automatically detects these smells in Spring MVC applications.
[Video summary] [Vídeo em português]
Latest News
- Aug/19: I'll be at FSE 2019. Come talk to me!
- Jul/19: Paper at ICSME: Comprehending Test Code: An Empirical Study.
- Jul/19: Paper at EMSE: An Empirical Catalog of Code Smells for the Presentation Layer of Android Apps.
- Jun/19: Paper at FSE 2019: Monitoring-Aware IDEs.
- Mar/19: Paper at MSR 2019: Tracing Back Log Data to its Log Statement: From Research to Practice (short practice paper).
- Feb/19: Two papers at ICSE 2019: Current Challenges in Practical Object-Oriented Software Design (short paper) and Factors Affecting Cloud Infra-Service Development Lead Times: A Case Study at ING (industry track).