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>