Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to main content
Mauro Pezze'

    Mauro Pezze'

    This repository provides the replication package of our paper "PREVENT: A Semi-Supervised Approach to Predict Software Failures in Production". It includes the codes, results, inputs and train datasets.
    Thread-safe classes are common in concurrent object-oriented programs. Testing such classes is important to ensure the reliability of the concurrent programs that rely on them. Recently, researchers have proposed the automated generation... more
    Thread-safe classes are common in concurrent object-oriented programs. Testing such classes is important to ensure the reliability of the concurrent programs that rely on them. Recently, researchers have proposed the automated generation of concurrent (multi-threaded) tests to expose concurrency faults in thread-safe classes (thread-safety violations). However, generating fault-revealing concurrent tests within an affordable time-budget is difficult due to the huge search space of possible concurrent tests. In this paper, we present DepCon, an approach to effectively reduce the search space of concurrent tests by means of both parallel and conflict dependency analyses. DepCon is based on the intuition that only methods that can both interleave (parallel dependent) and access the same shared memory locations (conflict dependent) can lead to thread-safety violations when concurrently executed. DepCon implements an efficient static analysis to compute the parallel and conflict dependencies among the methods of a class and uses the computed dependencies to steer the generation of tests towards concurrent tests that exhibit the computed dependencies. We evaluated DepCon by experimenting with a prototype implementation for Java programs on a set of thread-safe classes with known concurrency faults. The experimental results show that DepCon is more effective in exposing concurrency faults than state-of-the-art techniques.
    this file with prentcsmacro.sty for your meeting,
    Many symbolic program analysis techniques rely on SMT solvers to verify properties of programs. Despite the remarkable progress made in the development of such tools, SMT solvers still represent a main bottleneck to the scalability of... more
    Many symbolic program analysis techniques rely on SMT solvers to verify properties of programs. Despite the remarkable progress made in the development of such tools, SMT solvers still represent a main bottleneck to the scalability of these techniques. Recent approaches tackle this bottleneck by reusing solutions of formulas that recur during program analysis, thus reducing the number of queries to SMT solvers. Current approaches only reuse solutions across formulas that are equivalent to, contained in or implied by other formulas, as identified through a set of predefined rules, and cannot reuse solutions across formulas that differ in their structure, even if they share some potentially reusable solutions. In this paper, we propose a novel approach that can reuse solutions across formulas that share at least one solution, regardless of their structural resemblance. Our approach exploits a novel heuristic to efficiently identify solutions computed for previously solved formulas and most likely shared by new formulas. The results of an empirical evaluation of our approach on two different logics show that our approach can identify on average more reuse opportunities and is markedly faster than competing approaches.
    ABSTRACT SOQUA 2007 aims to bring together researchers, engineers, and practitioners to discuss and evaluate latest challenges, breakthroughs and experiences in the field of software quality assurance, and to identify open issues and... more
    ABSTRACT SOQUA 2007 aims to bring together researchers, engineers, and practitioners to discuss and evaluate latest challenges, breakthroughs and experiences in the field of software quality assurance, and to identify open issues and future trends in this area. Among the many quality assurance topics, SOQUA 2007 puts special focus on the role that emerging self adaptive and self-healing solutions can play in quality assurance. The program committee had the difficult task to select 17 papers out of 27 high-quality submissions from all over the world. The selected papers cover 11 countries and 5 continents, and many aspects of software quality assurance, including: self-healing and self-adaptive solutions, testing, quality assurance processes, process modeling, failure analysis and anticipation, quality of requirements, and variability modeling. These papers represent a significant contribution to the state of the art in the field. The workshop program consists of 1 keynote address given by Wilhelm Schäfer, 5 paper sessions hosting the authors' presentations, and 2 discussion sessions on hot-topics in the field.
    ABSTRACT
    ABSTRACT
    Abstract-Object-oriented (OO) software development is now widely practiced because of its potential for im-provement in design and maintenance. Several authors, for example [1], [2], [3], and [4] ,have addressed the test-ing of OO... more
    Abstract-Object-oriented (OO) software development is now widely practiced because of its potential for im-provement in design and maintenance. Several authors, for example [1], [2], [3], and [4] ,have addressed the test-ing of OO systems. None of the researchers claim that testing ...
    GUI testing is an important but expensive activity. Recently, research on test reuse approaches for Android applications produced interesting results. Test reuse approaches automatically migrate human-designed GUI tests from a source app... more
    GUI testing is an important but expensive activity. Recently, research on test reuse approaches for Android applications produced interesting results. Test reuse approaches automatically migrate human-designed GUI tests from a source app to a target app that shares similar functionalities. They achieve this by exploiting semantic similarity among textual information of GUI widgets. Semantic matching of GUI events plays a crucial role in these approaches. In this paper, we present the first empirical study on semantic matching of GUI events. Our study involves 253 configurations of the semantic matching, 337 unique queries, and 8,099 distinct GUI events. We report several key findings that indicate how to improve semantic matching of test reuse approaches, propose SemFinder a novel semantic matching algorithm that outperforms existing solutions, and identify several interesting research directions.
    ABSTRACT
    The IPTES toolset and methodology are based on end-user specifications written using the language proposed by Ward and Mellor (SA/SD-RT), and a kernel model based on High Level Timed Petri Nets (HLTPNs), that guarantees non ambiguity of... more
    The IPTES toolset and methodology are based on end-user specifications written using the language proposed by Ward and Mellor (SA/SD-RT), and a kernel model based on High Level Timed Petri Nets (HLTPNs), that guarantees non ambiguity of the end-user specifications and supports powerful analysis and simulation techniques. SA/SD-RT specifications are automatically mapped onto HLTPNs, that are executed and analyzed. Results of execution and analysis are reported back at the end-user level in terms of SA/SD-RT. SA/SD-RT is composed by a hierarchy of models, each one used for modeling the system under development at a different abstraction level, so that the specifications migrate from a logical description level (Logical Model) to executable code (Implementation Model). In this document we focus on the Physical Model. In previous documents, the kernel functionalities of the physical model and their mapping onto HLTPNs have been defined. Such functionalities, referred to as the limited I...
    Inferring models of program behavior from execution samples can provide useful information about a system, also in the increasingly common case of systems that evolve and adapt in their lifetime, and without requiring large developers’... more
    Inferring models of program behavior from execution samples can provide useful information about a system, also in the increasingly common case of systems that evolve and adapt in their lifetime, and without requiring large developers’ effort. Techniques for learning models of program behavior from execution traces shall address conflicting challenges of recall, specificity and performance: They shall generate models that comprehensively represent the system behavior (recall) while limiting the amount of illegal behaviors that may be erroneously accepted by the model (specificity), and should infer the models within a reasonable time budget to process industrial scale systems (performance). In our early work, we designed GK-tail, an approach that can infer guarded finite state machines that model the behavior of object-oriented programs in terms of sequences of method calls and constraints on the parameter values. GK-tail addresses well two of the three main challenges, since it infers guarded finite state machines with a high level of recall and specificity, but presents severe limitations in terms of performance that reduce its scalability. In this paper, we present GK-tail+, a new approach to infer guarded finite state machines from execution traces of object-oriented programs. GK-tail+ proposes a new set of inference criteria that represent the core element of the inference process: It largely reduces the inference time of GK-tail while producing guarded finite state machines with a comparable level of recall and specificity. Thus, GK-tail+ advances the preliminary results of GK-tail by addressing all the three main challenges of learning models of program behavior from execution traces.
    Software systems evolve during development and maintenance, and many test cases designed for the early versions of the system become obsolete during the software lifecycle. Repairing test cases that do not compile due to changes in the... more
    Software systems evolve during development and maintenance, and many test cases designed for the early versions of the system become obsolete during the software lifecycle. Repairing test cases that do not compile due to changes in the code under test and generating new test cases to test the changed code is an expensive and time consuming activity that could benefit from automated approaches. In this paper we propose an approach for automatically repairing and generating test cases during software evolution. Differently from existing approaches to test case generation, our approach uses information available in existing test cases, defines a set of heuristics to repair test cases invalidated by changes in the software, and generate new test cases for evolved software. The results obtained with a prototype implementation of the technique show that the approach can effectively maintain evolving test suites, and perform well compared to competing approaches.
    ... lorenzoli@disco.unimib.it Leonardo Mariani University of Milano Bicocca Department of Informatics, Systems and Communication viale Sarca, 336 20126 Milan, Italy mariani@disco.unimib.it Mauro Pezzè ∗ University of Milano ...
    ABSTRACT Service-oriented applications do not fully benefit from standard APIs yet, and many applications fail to use interchangeably all the services that implement a standard service API. This paper presents an approach to develop... more
    ABSTRACT Service-oriented applications do not fully benefit from standard APIs yet, and many applications fail to use interchangeably all the services that implement a standard service API. This paper presents an approach to develop adaptation strategies that improve service interchangeability for service-oriented applications based on standard APIs. In our approach, an adaptation strategy consists of sets of parametric adaptation plans (called test-and-adapt plans), which execute test cases to reveal the occurrence of interchangeability problems, and activate runtime adaptors according to the test results. Throughout the paper, we formalize the structure of the parametric test-and-adapt plans and of their execution semantics, present an algorithm for identifying correct execution orders through sets of test-and-adapt plans, provide empirical evidence of the occurrence of interchangeability problems for sample applications and services, and discuss the effectiveness of the approach in terms of avoided failures, runtime overheads and development costs.
    ... 3.10 Automated Regression Testing of Modified Software ... show that the approach provides an improvement over previous techniques, in particular purely model-based approaches. ... Out of 42 faults found by an automatic testing tool... more
    ... 3.10 Automated Regression Testing of Modified Software ... show that the approach provides an improvement over previous techniques, in particular purely model-based approaches. ... Out of 42 faults found by an automatic testing tool in two widely used Eiffel libraries, AutoFix-E ...
    This booklet contains the proceedings of the Workshop on Software Engineering and Petri Nets (SEPN), held on June 26, 2000. The workshop was held in conjunction with the 21st International Conference on Application and Theory of Petri... more
    This booklet contains the proceedings of the Workshop on Software Engineering and Petri Nets (SEPN), held on June 26, 2000. The workshop was held in conjunction with the 21st International Conference on Application and Theory of Petri Nets (ICATPN-2000), organised by the CPN group of the Department of Computer Science, University of Aarhus, Denmark. The SEPN workshop papers are available in electronic form via the web page:<br />http://www.daimi.au.dk/pn2000/proceedings

    And 78 more