- document
-
Botocan, Cristian Alexandru (author), Deshmukh, Piyush (author), Makridis, Pavlos (author), Huidobro, Jorge Romeu (author), Sundarrajan, Mathanrajan (author), Aniche, Maurício (author), Zaidman, A.E. (author)Software testing is one of the most important aspects of modern software development. To ensure the quality of the software, developers should ideally write and execute automated tests regularly as their code-base evolves. TestKnight, a plugin for the IntelliJ IDEA integrated development environment (IDE), aims to help Java developers improve...conference paper 2022
- document
-
Aniche, Maurício (author), Treude, Christoph (author), Zaidman, A.E. (author)One of the main challenges that developers face when testing their systems lies in engineering test cases that are good enough to reveal bugs. And while our body of knowledge on software testing and automated test case generation is already quite significant, in practice, developers are still the ones responsible for engineering test cases...journal article 2021
- document
-
Barros Cândido, J. (author), Haesen, Jan (author), Aniche, Maurício (author), van Deursen, A. (author)Logging is a development practice that plays an important role in the operations and monitoring of complex systems. Developers place log statements in the source code and use log data to understand how the system behaves in production. Unfortunately, anticipating where to log during development is challenging. Previous studies show the...conference paper 2021
- document
-
van der Leij, David (author), Binda, J.R. (author), van Dalen, Robbert (author), Vallen, Pieter (author), Luo, Yaping (author), Aniche, Maurício (author)The sound identification of refactoring opportunities is still an open problem in software engineering. Recent studies have shown the effectiveness of machine learning models in recommending methods that should undergo different refactoring operations. In this work, we experiment with such approaches to identify methods that should undergo an...conference paper 2021
- document
-
Harty, Julian (author), Zhang, Haonan (author), Wei, Lili (author), Pascarella, L. (author), Aniche, Maurício (author), Shang, Weiyi (author)Software logs are of great value in both industrial and open-source projects. Mobile analytics logging enables developers to collect logs remotely from their apps running on end user devices at the cost of recording and transmitting logs across the Internet to a centralised infrastructure.This paper makes a first step in characterising...conference paper 2021
- document
-
Beigelbeck, Aaron (author), Aniche, Maurício (author), Cito, Jürgen (author)Detecting performance issues due to suboptimal code during the development process can be a daunting task, especially when it comes to localizing them after noticing performance degradation after deployment. Static analysis has the potential to provide early feedback on performance problems to developers without having to run profilers with...conference paper 2021
- document
-
van Oort, B. (author), Cruz, Luis (author), Aniche, Maurício (author), van Deursen, A. (author)Artificial Intelligence (AI) and Machine Learning (ML) are pervasive in the current computer science landscape. Yet, there still exists a lack of software engineering experience and best practices in this field. One such best practice, static code analysis, can be used to find code smells, i.e., (potential) defects in the source code,...conference paper 2021
- document
-
Schröder, C.J. (author), van der Feltz, Adriaan (author), Panichella, A. (author), Aniche, Maurício (author)Deciding what constitutes a single module, what classes belong to which module or the right set of modules for a specific software system has always been a challenging task. The problem is even harder in large-scale software systems composed of thousands of classes and hundreds of modules. Over the years, researchers have been proposing...conference paper 2021
- document
-
Grent, Henk (author), Akimov, Aleksei (author), Aniche, Maurício (author)Web APIs may have constraints on parameters, such that not all parameters are either always required or always optional. Moreover, the presence or value of one parameter could cause another parameter to be required, or parameters could have restrictions on what kinds of values are valid. Having a clear overview of the constraints helps API...conference paper 2021
- document
-
Aniche, Maurício (author), Mulder, F. (author), Hermans, Felienne (author)Grading large classes has become a challenging and expensive task for many universities. The Delft University of Technology (TU Delft), located in the Netherlands, has observed a large increase in student numbers over the past few years. Given the large growth of the student population, grading all the submissions results in high costs. We...conference paper 2021
- document
-
Langhout, Chris (author), Aniche, Maurício (author)Although writing code seems trivial at times, problems arise when humans misinterpret what the code actually does. One of the potential causes are "atoms of confusion", the smallest possible patterns of misinterpretable source code. Previous research has investigated the impact of atoms of confusion in C code. Results show that developers make...conference paper 2021
- document
-
Sellik, Hendrig (author), van Paridon, Onno (author), Gousios, G. (author), Aniche, Maurício (author)Mistakes in binary conditions are a source of error in many software systems. They happen when developers use, e.g., < or > instead of <= or >=. These boundary mistakes are hard to find and impose manual, labor-intensive work for software developers. While previous research has been proposing solutions to identify errors in boundary...conference paper 2021
- document
-
Barros Cândido, J. (author), Aniche, Maurício (author), van Deursen, A. (author)Modern software development and operations rely on monitoring to understand how systems behave in production. The data provided by application logs and runtime environment are essential to detect and diagnose undesired behavior and improve system reliability. However, despite the rich ecosystem around industry- ready log solutions, monitoring...journal article 2021
- document
-
Larios Vargas, E. (author), Aniche, Maurício (author), Treude, Christoph (author), Bruntink, Magiel (author), Gousios, G. (author)The selection of third-party libraries is an essential element of virtually any software development project. However, deciding which libraries to choose is a challenging practical problem. Selecting the wrong library can severely impact a software project in terms of cost, time, and development effort, with the severity of the impact depending...conference paper 2020
- document
-
Wijaya, Herman (author), Aniche, Maurício (author), Mathur, Aditya (author)A novel approach is proposed for constructing models of anomaly detectors using supervised learning from the traces of normal and abnormal operations of an Industrial Control System (ICS). Such detectors are of value in detecting process anomalies in complex critical infrastructure such as power generation and water treatment systems. The traces...conference paper 2020
- document
-
Arnar Briem, Jón (author), Smit, Jordi (author), Sellik, Hendrig (author), Rapoport, Pavel (author), Gousios, G. (author), Aniche, Maurício (author)Mistakes in boundary conditions are the cause of many bugs in software. These mistakes happen when, e.g., developers make use of '<' or '>' in cases where they should have used '<=' or '>='. Mistakes in boundary conditions are often hard to find and manually detecting them might be very time-consuming for developers. While...conference paper 2020
- document
-
Tómasdóttir, Kristín (author), Aniche, Maurício (author), van Deursen, A. (author)A linter is a static analysis tool that warns software developers about possible code errors or violations to coding standards. By using such a tool, errors can be surfaced early in the development process when they are cheaper to fix. For a linter to be successful, it is important to understand the needs and challenges of developers when using...journal article 2020
- document
-
Aniche, Maurício (author), Maziero, Erick (author), Durelli, Rafael (author), Durelli, Vinicius (author)Refactoring is the process of changing the internal structure of software to improve its quality without modifying its external behavior. Empirical studies have repeatedly shown that refactoring has a positive impact on the understandability and maintainability of software systems. However, before carrying out refactoring activities,...journal article 2020
- document
-
Aniche, Maurício (author), Hermans, F.F.J. (author), van Deursen, A. (author)Software testing is an important topic in software engineering education, and yet highly challenging from an educational perspective: students are required to learn several testing techniques, to be able to distinguish the right technique to apply, to evaluate the quality of their test suites, and to write maintainable test code. In this paper,...conference paper 2019
- document
-
Aniche, Maurício (author), Yoder, Joseph W. (author), Kon, Fabio (author)According to the extensive 50-year-old body of knowledge in object-oriented programming and design, good software designs are, among other characteristics, lowly coupled, highly cohesive, extensible, comprehensible, and not fragile. However, with the increased complexity and heterogeneity of contemporary software, this might not be enough. This...conference paper 2019