Research

NodeRacer: this tool helps to detect event races in Node.js applications. It employs dynamic analysis, happens-before relation, and a guided execution with selective postponing to exercise different callback interleavings and reveal race bugs. NodeRacer helped us to uncover previously unknown bugs and flaky tests in very popular Node.js applications and libraries.
Main publications: <ICST-2020> <source code> <video>

Video Game Testing: This project intends to propose new approaches and tools for video game testing, taking into account independent game developers and indie studios. This project assumes that play-testing is an inherently human task, and as such, better engineering support may be provided. We have investigated how existing approaches for traditional software can be leveraged to test digital games, while specific aspects like fun factor, unique UI, and user experience are evaluated.
Main publications: <SBGames 2018> <SBGames 2023> <JIS 2024>

Exploratory Tests: In this project, we aim to improve the practical use of exploratory testing - a widely adopted technique for manual testing. To do so, this project intends to conduct empirical studies and proposed interventions (tools) to make this technique more effective. In particular, we have developed supporting artefacts and prototype tools for exploratory testing of mobile apps.
Main publications: <SAST-2019> <SBQS-2021> <ICEIS-2024>

MoLeWe: this tool aims to leverage model-based testing (MBT) for web tests. The tool works in 3 steps: (i) infer models from Selenium- Page object-based web tests; (ii) extending the test suite with new tests at model level; and (iii) generating new test cases from the extended model. Apart from benefits of an MBT approach, the tool reduces the effort to include new tests, can help to increase test coverage, while leveraging the existing test suite.
Main publications: <SQJO-2022> <source code>

JStateModelTester: in this project, we have developed and implemented Finite State Machine (FSM)-based methods that generate complete test suites. We have also conducted experimental studies that compare existing methods, from different perspectives like test suite characteristics, cost, and effectiveness.
Main publications: <IST-2013> <SQJ-2015> <JETTA-2020>

x-PATeSCO: this tool is a cross-platform app test script recorder. Built on top of the Appium framework, x-PATeSCO supports the recording and generation of test scripts for cross-platform mobile apps (developed in frameworks like ReactNative, Xamarin, and Apache Cordova). We have investigated different XPath expressions so that automated tests can be run robustly in different platforms like Android and iOS. x-PATeSCO has also been extended to amplify the tests by exploring known faulty patterns.
Main publications: <IETSW-2019> <SEKE-2019> <source code>

FourMA: this tool supports the adoption of model-based testing (MBT) in Android apps. By using test models, FourMA can be used to reduce the effort for concretization, and test other characteristics of apps, such as device-specific events, unpredictable users' interaction, telephony events for GSM/SMS, and sensors and hardware events.
Main publications: <SBES-2017> <source code>

Prof.Mapp: this tool analyzes the source code of mobile Android apps and collects several pieces of information. In particular, Prof.Mapp looks at the presence of automated tests, adopted frameworks, external connectivity, graphical user interface (GUI) elements, sensors, and different system configurations. With this tool, we conducted an empirical study with a sample of 663 open source mobile apps.
Main publications: <IST-2018> <source code>

CP4SE (concluded) in this project (lead by Marcelo Eler), we developed a tool that produces a profile of Java programs from the perpective of symbolic execution for software testing. With this tool, we analyzed 147 open source Java projects and compared four dimensions impacting symbolic execution: path explosion, constraint complexity, dependency, and exception-dependent paths.
Main publications: <JSS-2016> <source code>

Model-based testing of service-oriented applications (concluded): we investigated and proposed model-based testing (MBT) approaches for service-oriented applications. In particular, we worked with Finite State Machines (FSMs) and Event Sequence Graphs (ESGs) to design test models and algorithms were introduced to generate test cases. This project was concluded with my PhD defense.
Main publications: <SCC-2011> <SP&E-2014> <iiWAS-2013> <STVR-2019> <PhD dissertation>