- Software Testing and Debugging Techniques
- Software System Performance and Reliability
- Advanced Malware Detection Techniques
- Software Reliability and Analysis Research
- Business Process Modeling and Analysis
- Software Engineering Research
- Service-Oriented Architecture and Web Services
- Advanced Software Engineering Methodologies
- Cloud Computing and Resource Management
- Security and Verification in Computing
- IoT and Edge/Fog Computing
- E-Government and Public Services
- Energy Efficient Wireless Sensor Networks
- Network Security and Intrusion Detection
- Green IT and Sustainability
- Anomaly Detection Techniques and Applications
- Mobile Ad Hoc Networks
- VLSI and Analog Circuit Testing
- Scientific Computing and Data Management
- Model-Driven Software Engineering Techniques
- Wireless Networks and Protocols
- Data Stream Mining Techniques
- Formal Methods in Verification
- Embedded Systems Design Techniques
- Computational Physics and Python Applications
University of Milano-Bicocca
2015-2024
University of Milan
2021
Università di Camerino
2006-2018
Stony Brook University
2008
Istituto di Matematica Applicata e Tecnologie Informatiche
2008
Automatic test case generation is a key ingredient of an efficient and cost-effective software verification process. In this paper we focus on testing applications that interact with the users through GUI, present AutoBlackTest, technique to automatically generate cases at system level. AutoBlackTest uses reinforcement learning, in particular Q-Learning, learn how application under stimulate its functionalities. The empirical results show can execute relevant portion code test, reveal...
By leveraging large clusters of commodity hardware, the Cloud offers great opportunities to optimize operative costs software systems, but impacts significantly on reliability applications. The lack control applications over execution environments largely limits applicability state-of-the-art approaches that address issues by relying heavyweight training with injected faults. In this paper, we propose LOUD, a lightweight fault localization approach relies positive only, and can thus operate...
AI-based code assistants are promising tools that can facilitate and speed up development. They exploit machine learning algorithms natural language processing to interact with developers, suggesting snippets (e.g., method implementations) be incorporated into projects. Recent studies empirically investigated the effectiveness of using simple exemplary problems re-implementation well-known algorithms), which fail capture spectrum nature tasks actually faced by developers.
AI assistants can help developers by recommending code to be included in their implementations (e.g., suggesting the implementation of a method from its signature). Although useful, these recommendations may mirror copyleft available public repositories, exposing risk reusing that they are allowed reuse only under certain constraints specific license for derivative software). This paper presents large-scale study about frequency and magnitude this phenomenon ChatGPT. In particular, we...
Testing Advanced Driving Assistance Systems (ADAS), such as lane-keeping functions, requires creating road topologies or using predefined benchmarks. However, the test cases in existing ADAS benchmarks are often designed specific formats (e.g., OpenDRIVE) and tailored to models. This limits their reusability interoperability with other simulators models, making it challenging assess functionalities independently of platform-specific details used create cases. paper evaluates SensoDat, a...
Monitoring is a key feature to enhance systems with the capability anticipate, detect, predict, and mitigate failures, while providing Quality of Service (QoS) monitoring Level Agreements (SLAs) guarantee. frameworks can serve these purposes by deploying probes according many possible patterns that have different features, for instance in terms efficiency privacy. So far, probe deployment not been systematically defined, analyzed assessed. Thus, engineers who design configure their take...
In this paper we present AutoBlackTest, a tool for the automatic generation of test cases interactive applications. AutoBlackTest interacts with application though its GUI, and uses reinforcement learning techniques to understand interaction modalities generate relevant testing scenarios. Early results show that has potential automatically discovering bugs generating useful system regression suites.
SUMMARY Testing GUI‐based applications is hard and time consuming because it requires exploring a potentially huge execution space by interacting with the graphical interface of applications. Manual testing can cover only small subset functionality provided complex interfaces, thus, automatic techniques are necessary to extensively validate systems. This paper presents AutoBlackTest, technique automatically generate test cases at system level. AutoBlackTest uses reinforcement learning, in...
Android apps must work correctly even if their execution is interrupted by external events. For instance, an app properly a phone call received, or after its layout redrawn because the smartphone has been rotated. Since these events may require destroying, when interrupted, and recreating, resumed, foreground activity of app, only way to prevent loss state information save restore it. This behavior be explicitly implemented developers, who often miss implement it properly, releasing affected...
Generative AI is changing the way developers interact with software systems, providing services that can produce and deliver new content, crafted to satisfy actual needs of developers. For instance, ask for code directly from within their IDEs by writing natural language prompts, integrated based on generative AI, such as Copilot, immediately respond prompts ready-to-use snippets. Formulating prompt appropriately, incorporating useful information while avoiding any overload, be an important...
AI-based code assistants are increasingly popular as a means to enhance productivity and improve quality. This study compares four assistants, GitHub Copilot, Tabnine, ChatGPT, Google Bard, in method generation tasks, assessing their ability produce accurate, correct, efficient code. Results show that useful, with complementary capabilities, although they rarely generate ready-to-use correct
Applications that process complex data, such as maps, personal book information, travel etc., are becoming extremely common. Testing applications is hard, because they require realistic and coherent test inputs expensive to generate manually difficult synthesize automatically. So far the research on case generation techniques has focused mostly generating sequences synthetic inputs, payed little attention of inputs.
Software libraries implement APIs that deliver reusable functionalities. To correctly use these functionalities, software applications must satisfy certain correctness policies, for instance policies about the order some API methods can be invoked and values used parameters. If are violated, may produce misbehaviors failures at runtime. Although this problem is general, incorrectly more frequent in contexts. For instance, Android provides a rich rapidly evolving set of might by app...
Android apps should be designed to cope with stop-start events, which are the events that require stopping and restoring execution of an app while leaving its state unaltered. These can caused by run-time configuration changes, such as a screen rotation, context-switches, switch from one another. When event occurs, saves app, handles event, finally restores saved state. To let save restore correctly, must provide appropriate support. Unfortunately, developers often implement this support...
It is a general opinion that applicative cooperation represents useful vehicle for the development of e-government. At architectural level, solutions are quite stable, but organizational and methodological problems prevent expected needed among different administrations. Moreover, introduction digital government requires considerable involvement resources can be unsustainable small public This work shows how above mentioned (partially) solved with Shared Services Center (SSC).
5G standard emerges at a particular time in technology history when cloud transforms deeply almost all industries and services: it becomes obvious that innovations have to be made cloud-native for being successful. must become the ubiquitous fabric blending universal connectivity (to humans, robots, sensors...) with versatility scalability. For realizing this vision, another model than laaS adopted, Platform as Service (PaaS), which should built support telco-grade requirements combine sort...
Cloud systems are large scalable distributed that must be carefully monitored to timely detect problems and anomalies. While a number of cloud monitoring frameworks available, only few solutions address the problem adaptively dynamically selecting indicators collected, based on actual needs operator. Unfortunately, these either limited infrastructure-level or technology-specific, for instance, they designed work with OpenStack but not other platforms. This paper presents VARYS framework,...
Android applications are executed on smartphones equipped with a variety of resources that must be properly accessed and controlled, otherwise the correctness executions stability entire environment might negatively affected. For example, apps acquire, use, release microphones, cameras, other multimedia devices, behavior use same compromised. Unfortunately, several do not correctly, for instance, due to faults inaccurate design decisions. By interacting these apps, users may experience...
Android apps share resources, such as sensors, cameras, and Global Positioning System, that are subject to specific usage policies whose correct implementation is left programmers. Failing satisfy these may cause resource leaks, is, acquire but never release resources. This might have different kinds of consequences, unable use resources or unnecessarily active wasting battery. Researchers proposed several techniques detect fix leaks. However, the unavailability public benchmarks faulty...
Cloud systems are complex and large where services provided by different operators must coexist eventually cooperate. In such a environment, controlling the health of both whole environment individual is extremely important to timely effectively react misbehaviours, unexpected events, failures. Although there solutions monitor cloud at granularity levels, how relate many KPIs that can be collected about system information properly reported open questions. This paper reports early results we...