Valerio Terragni

ORCID: 0000-0001-5885-9297
Publications
Citations
Views
---
Saved
---
About
Contact & Profiles
Research Areas
  • Software Testing and Debugging Techniques
  • Software Engineering Research
  • Software Reliability and Analysis Research
  • Software System Performance and Reliability
  • Evolutionary Algorithms and Applications
  • Advanced Malware Detection Techniques
  • Metaheuristic Optimization Algorithms Research
  • Scientific Computing and Data Management
  • Teaching and Learning Programming
  • Web Data Mining and Analysis
  • Advanced Database Systems and Queries
  • Semantic Web and Ontologies
  • Adversarial Robustness in Machine Learning
  • Viral Infectious Diseases and Gene Expression in Insects
  • Reinforcement Learning in Robotics
  • Machine Learning and Data Classification
  • Online Learning and Analytics
  • Anomaly Detection Techniques and Applications
  • Topic Modeling
  • Technology Adoption and User Behaviour
  • Mobile and Web Applications
  • Green IT and Sustainability
  • CRISPR and Genetic Engineering
  • Advanced Data Storage Technologies
  • Experimental Learning in Engineering

University of Auckland
2021-2025

Hong Kong University of Science and Technology
2015-2023

University of Hong Kong
2015-2023

Southern University of Science and Technology
2023

McGill University
2023

Mondragon University
2023

Engineering Software Research and Development (United States)
2023

Università della Svizzera italiana
2017-2021

University of Pennsylvania
2020

Wake locks are widely used in Android apps to protect critical computations from being disrupted by device sleeping. Inappropriate use of wake often seriously impacts user experience. However, little is known on how real-world and the impact their misuses. To bridge gap, we conducted a large-scale empirical study 44,736 commercial 31 open-source apps. By automated program analysis manual investigation, observed (1) common points where acquired released, (2) 13 types computational tasks that...

10.1145/2950290.2950297 article EN 2016-11-01

Today millions of mobile apps are downloaded and used all over the world. Mobile distributed via different app stores, such as Google Play Store, Apple App Windows Phone Store. One most intriguing challenges in development is its fragmentation with respect to platforms (e.g., Android, iOS, Phone). Recently, companies like IBM Adobe a growing community developers advocate hybrid possible solution fragmentation. Hybrid consistent across built on Web standards. In this paper, we present an...

10.1109/mobserv.2015.14 article EN IEEE International Conference on Mobile Services 2015-06-01

Metamorphic testing is a popular approach that aims to alleviate the oracle problem in software testing. At core of this are Relations (MRs), specifying properties hold among multiple test inputs and corresponding outputs. Deriving MRs mostly manual activity, since their automated generation challenging largely unexplored problem. This paper presents <sc xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">GenMorph</small> , technique automatically...

10.1109/tse.2024.3407840 article EN IEEE Transactions on Software Engineering 2024-05-31

Metamorphic Testing (MT) alleviates the oracle problem by defining oracles based on metamorphic relations (MRs) that govern multiple related inputs and their outputs. However, designing MRs is challenging, as it requires domain-specific knowledge. This hinders widespread adoption of MT. We observe developer-written test cases can embed domain knowledge encodes MRs. Such encoded could be synthesized for testing not only original programs but also other share similar functionalities. In this...

10.1145/3656340 article EN ACM Transactions on Software Engineering and Methodology 2024-06-29

A paradigm shift is underway in Software Engineering, with AI systems such as LLMs playing an increasingly important role boosting software development productivity. This trend anticipated to persist. In the next years, we expect a growing symbiotic partnership between human developers and AI. The Engineering research community cannot afford overlook this trend; must address key challenges posed by integration of into process. paper, present our vision future AI-driven world explore that...

10.1145/3715003 article EN ACM Transactions on Software Engineering and Methodology 2025-01-24

One of the most intriguing challenges in mobile apps development is its fragmentation with respect to platforms (e.g., Android, Apple iOS, Windows Phone). Large companies like IBM and Adobe a growing community developers advocate hybrid as possible solution fragmentation. Hybrid are consistent across built on web standards. How performing production settings still highly debated, limited objective evidence.In this paper, we present first realistic investigation into through solid empirical...

10.1109/mobilesoft.2015.15 article EN 2015-05-01

Popular Q&A sites like StackOverflow have collected numerous code snippets. However, many of them do not complete type information, making uncompilable and inapplicable to various software engineering tasks. This paper analyzes this problem, proposes a technique CSNIPPEX automatically convert snippets into compilable Java source files by resolving external dependencies, generating import declarations, fixing syntactic errors. We implemented as plug-in for Eclipse evaluated it with 242,175...

10.1145/2931037.2931058 article EN 2016-07-07

One of the major challenges in verification complex industrial Cyber-Physical Systems is difficulty determining whether a particular system output or behaviour correct not, so-called test oracle problem. Metamorphic testing alleviates problem by reasoning on relations that are expected to hold among multiple executions under test, which known as Relations (MRs). However, development effective MRs often challenging and requires involvement domain experts. In this paper, we present case study...

10.1145/3468264.3473920 article EN 2021-08-18

Assertion oracles are executable boolean expressions placed inside the program that should pass (return true) for all correct executions and fail false) incorrect executions. Because designing perfect assertion is difficult, assertions often to distinguish between In other words, they prone false positives negatives. this paper, we propose GAssert (Genetic ASSERTion improvement), first technique automatically improve oracles. Given an oracle evidence of negatives, implements a novel...

10.1145/3368089.3409758 article EN 2020-11-08

GUI testing is an important but expensive activity. Recently, research on test reuse approaches for Android applications produced interesting results. Test automatically migrate human-designed tests from a source app to target that shares similar functionalities. They achieve this by exploiting semantic similarity among textual information of widgets. Semantic matching events plays crucial role in these approaches. In paper, we present the first empirical study events. Our involves 253...

10.1145/3460319.3464827 article EN 2021-07-08

This paper details the eleventh edition of Java Unit Testing Competition, covering its setup, challenges, and findings. The competition featured five test case generation tools: EVOSUITE, KEX-CONCOLIC, KEX-SYMBOLIC, UTBOT-CONCOLIC, UTBOT-FUZZER, all which were evaluated on a benchmark 100 classes taken from 5 open-source Projects. We assessed generated cases based code mutation coverage, as well human understandability-a metric introduced in this competition.

10.1109/sbft59156.2023.00025 article EN 2023-05-01

Every programming language has its own style conventions and best practices, which help developers to write readable maintainable code. Learning code is an essential skill that every professional software engineer should master. As such, students develop good habits for early on, when they start learning how program. Unfortunately, manually assessing students' with timely detailed feedback often infeasible, static analysis tools are unsuitable educational contexts. This paper presents...

10.1109/icse-seet58685.2023.00024 article EN 2023-05-01

Concurrent programs proliferate as multi-core technologies advance. The regression testing of concurrent often requires running a failing test for weeks before catching faulty interleaving, due to the myriad possible interleavings memory accesses arising from program executions. As result, conventional approach that selects sub-set cases without considering is insufficient. In this paper we present RECONTEST address problem by selecting new arise code changes. These must be explored in order...

10.5555/2818754.2818787 article EN International Conference on Software Engineering 2015-05-16

One of the most intriguing challenges in mobile apps development is its fragmentation with respect to platforms (e.g., Android, Apple iOS, Windows Phone). Large companies like IBM and Adobe a growing community developers advocate hybrid as possible solution fragmentation. Hybrid are consistent across built on web standards. How performing production settings still highly debated, limited objective evidence.In this paper, we present first realistic investigation into through solid empirical...

10.5555/2825041.2825051 article EN 2015-05-16

Previous techniques on concurrency testing have mainly focused exploring the interleaving space of manually written test code to expose faulty interleavings shared memory accesses. These assume availability failure-inducing tests. In this paper, we present AutoConTest, a coverage-driven approach generate effective concurrent that achieve high coverage. AutoConTest consists three components. First, it computes coverage requirements dynamically and iteratively during sequential generation,...

10.1145/2884781.2884876 article EN Proceedings of the 44th International Conference on Software Engineering 2016-05-13

Comprehending the degree to which software components support testing is important accurately schedule activities, train developers, and plan effective refactoring actions. Software testability estimates such property by relating code characteristics test effort. The main studies of reported in literature investigate relation between class metrics effort terms size complexity associated suites. They report a moderate correlation some test-effort metrics, but suffer from two limitations: (i)...

10.1145/3387904.3389273 article EN 2020-07-13

Intermittent test failures (test flakiness) is common during continuous integration as modern software systems have become inherently non-deterministic. Understanding the root cause of flakiness crucial intermittent might be result real non-deterministic defects in production code, rather than mere errors code. Given a flaky test, existing techniques for causing compare runtime behavior its passing and failing executions. They achieve this by repetitively executing on an instrumented version...

10.1145/3377816.3381742 article EN 2020-06-27

Modern software applications rely heavily on the usage of libraries, which provide reusable functionality, to accelerate development process. As libraries evolve and release new versions, systems that depend those (the clients) should update their dependencies use these versions as could, for example, include critical fixes security vulnerabilities. However, updating is not always a smooth process, it can result in failures clients if version includes breaking changes. Yet, there little...

10.1145/3597926.3598147 article EN cc-by 2023-07-12

A paradigm shift is underway in Software Engineering, with AI systems such as LLMs gaining increasing importance for improving software development productivity. This trend anticipated to persist. In the next five years, we will likely see an symbiotic partnership between human developers and AI. The Engineering research community cannot afford overlook this trend; must address key challenges posed by integration of into process. paper, present our vision future AI-Driven world explore that...

10.48550/arxiv.2406.07737 preprint EN arXiv (Cornell University) 2024-06-11

Libraries play a significant role in software development as they provide reusable functionality, which helps expedite the process. As libraries evolve, release new versions with optimisations like bug fixes, and patches for known security vulnerabilities. To obtain these optimisations, client applications that depend on must update to use latest version. However, this can cause failures clients if includes breaking changes. These changes be divided into syntactic semantic (behavioral) While...

10.1145/3643782 article EN cc-by Proceedings of the ACM on software engineering. 2024-07-12

Automated assessment is commonly used across the spectrum of computing courses offered by Tertiary institutions. Such frequently intended to address scalability feedback that essential for learning, and accreditation purposes. Although many reviews automated have been reported, voices teachers are not present. In this paper we present a variety cases illustrate some varied motivations experiences teaching using assessment.

10.1145/3576123.3576124 article EN 2023-01-19

Reproducing field failures is the first essential step for understanding, localizing and removing faults. concurrency hard due to need of synthesizing a test code jointly with thread interleaving that induce failure in presence limited information from field. Current techniques reproducing focus on identifying failure-inducing interleavings, leaving largely open problem manifests such interleavings. In this paper, we present ConCrash, technique automatically generate codes reproduce violate...

10.1145/3106237.3106292 article EN 2017-08-02

Automatic generators of GUI tests often fail to generate semantically relevant test cases, and thus miss important scenarios. To address this issue, adaptation techniques can be used automatically meaningful from cases applications with similar functionalities.In paper, we present ADAPTDROID, a technique that approaches the problem as search-problem, uses evolutionary testing adapt (including oracles) across Android apps. In our evaluation 32 popular apps, ADAPTDROID successfully adapted in...

10.1109/ast52587.2021.00016 article EN 2021-05-01

Developing correct and efficient concurrent programs is difficult error-prone, due to the complexity of thread synchronization. Often, developers alleviate such problem by relying on thread-safe classes, which encapsulate most synchronization-related challenges. Thus, testing classes crucial ensure reliability concurrency aspects programs. Some recent techniques corresponding tools tackle automatically generating tests. In this paper, we present a comprehensive study state-of-the-art an...

10.1145/3238147.3238224 article EN 2018-08-20
Coming Soon ...