Hi, I'm Maurício Aniche, Assistant Professor at TU Delft.

I help developers to effectively maintain and evolve their software systems. My current research interests are software maintenance, runtime monitoring and DevOps, and software testing.

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 (Computer Science bachelor), Software Architecture (Software Engineering MSc track), Software Engineering Methods (Computer Science minor).

Industry experience. Before moving to academia, I worked as software developer for 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 around 10k copies.

Selected Publications

  • Code smells for Model-View-Controller architectures
    Maurício Aniche, Gabriele Bavota, Christoph Treude, Marco Gerosa, Arie van Deursen.
    Empirical Software Engineering Journal, 2017.
    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]

  • SATT: Tailoring Code Metric Thresholds for Different Software Architectures
    Maurício Aniche, Christoph Treude, Andy Zaidman, Arie van Deursen, Marco Gerosa.
    16th IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM), 2016.
    Analyzes the distribution of different code metrics as to understand how traditional threshold derivation techniques behave among different architectural roles. Proposes SATT, an approach that derives specific thresholds for specific architectural roles of the system architecture.

  • Search-Based Test Data Generation for SQL Queries
    Jeroen Castelein, Maurício Aniche, Mozhan Soltani, Annibale Panichella, Arie van Deursen
    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
    Davide Spadini, Maurício Aniche, Margaret Storey, Magiel Bruntink, Alberto Bacchelli
    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]

  • An Exploratory Study on Faults in Web API Integration in a Large-Scale Payment Company
    Joop Aué, Maurício Aniche, Maikel Lobbezoo, Arie van Deursen
    40th International Conference on Software Engineering (ICSE) - Industry Track, 2018
    We studied and catalogued the common mistakes that developers make when trying to integrate to a (complex) web API after analysis 2MM exception log entries. We hope developers will avoid such mistakes from now on. We also provide suggestions for API developers and researchers on how to facilitate such process.

Latest News