130 research outputs found
Towards Testing and Analysis of Systems that Use Serialization
AbstractObject serialization facilitates the flattening of structured objects into byte streams and is therefore important for all component-based applications that strongly rely on data-exchange among components. Unfortunately, implementing and controlling the serialization mechanisms may expose the software to subtle faults. This paper paves the way towards testing and analysis techniques specifically tailored to the assessment of software that uses serialization. In particular, we introduce a taxonomy of abstractions and terms to semantically characterize and classify the main data-exchange cases, which serialization can be involved with. The resulting conceptual framework provides a means to forecast how erroneous implementations of serialization would look like in different cases, thus enabling the focusing of testing and analysis techniques to address serialization-related faults
Test generation for high coverage with abstraction refinement and coarsening (ARC)
Testing is the main approach used in the software industry to expose failures. Producing thorough test suites is an expensive and error prone task that can greatly benefit from automation. Two challenging problems in test automation are generating test input and evaluating the adequacy of test suites: the first amounts to producing a set of test cases that accurately represent the software behavior, the second requires defining appropriate metrics to evaluate the thoroughness of the testing activities. Structural testing addresses these problems by measuring the amount of code elements that are executed by a test suite. The code elements that are not covered by any execution are natural candidates for generating further test cases, and the measured coverage rate can be used to estimate the thoroughness of the test suite. Several empirical studies show that test suites achieving high coverage rates exhibit a high failure detection ability. However, producing highly covering test suites automatically is hard as certain code elements are executed only under complex conditions while other might be not reachable at all. In this thesis we propose Abstraction Refinement and Coarsening (ARC), a goal oriented technique that combines static and dynamic software analysis to automatically generate test suites with high code coverage. At the core of our approach there is an abstract program model that enables the synergistic application of the different analysis components. In ARC we integrate Dynamic Symbolic Execution (DSE) and abstraction refinement to precisely direct test generation towards the coverage goals and detect infeasible elements. ARC includes a novel coarsening algorithm for improved scalability. We implemented ARC-B, a prototype tool that analyses C programs and produces test suites that achieve high branch coverage. Our experiments show that the approach effectively exploits the synergy between symbolic testing and reachability analysis outperforming state of the art test generation approaches. We evaluated ARC-B on industry relevant software, and exposed previously unknown failures in a safety-critical software component
Stochastic models for phytoplankton dynamics in marine ecosystems
In this thesis, the stochastic advection-reaction-diffusion models are analyzed to obtain the vertical stationary spatial distributions of the main groups of picophytoplankton, which account about for 80% of total chlorophyll on average in Mediterranean Sea. In Chapter 1 we give a short presentation of the experimental and phytoplanktonic data collected during different oceanographic surveys in Mediterranean Sea. In Chapter 2 we introduce the deterministic and stochastic approaches (one-population model) adopted to describe the picoeukaryotes dynamics in Sicily Channel. Moreover, numerical results for the biomass concentration are compared with experimental data by using chi-squared goodness-of-fit test. In Chapter 3 we modify the previous one-population model to study the population dynamics of two picophytoplankton groups, i.e. picoeukaryotes and picoprokaryotes (Prochlorococcus). The agreement between theoretical results and experimental findings is checked by using two comparative methods: chi-squared goodness-of-fit test and Kolmogorov-Smirnov (K-S) test. In Chapter 4 we introduce a deterministic model used to perform the spatio-temporal analysis of five picophytoplankton species sampled in a site of the Tyrrhenian Sea: numerical results are compared with experimental data acquired during different oceanographic surveys in the period from 24 November 2006 to 9 June 2007. The models investigated in the chapters 2, 3 and 4, show that real distributions are well reproduced by theoretical profiles. Specifically, position, shape and magnitude of the theoretical deep chlorophyll maximum exhibit a good agreement with the experimental values. Finally, conclusions and future prospects of this thesis are discussed
Self-Test Components for Highly Reconfigurable Systems
Abstract Verification of component-based systems presents new challenges not yet completely addressed by existing testing techniques. This paper proposes a new approach for automatically testing highly reconfigurable component-based systems, i.e., systems that can be obtained by changing some components. The paper presents an industrial case that motivates our research and proposes a testing infrastructure that tracks run-time information for components. The collected information is used for automatic testing new versions of existing components and new configurations of existing systems
Automatically Generating Test Cases for Safety-Critical Software via Symbolic Execution
Automated test generation based on symbolic execution can be beneficial for
systematically testing safety-critical software, to facilitate test engineers
to pursue the strict testing requirements mandated by the certification
standards, while controlling at the same time the costs of the testing process.
At the same time, the development of safety-critical software is often
constrained with programming languages or coding conventions that ban
linguistic features which are believed to downgrade the safety of the programs,
e.g., they do not allow dynamic memory allocation and variable-length arrays,
limit the way in which loops are used, forbid recursion, and bound the
complexity of control conditions. As a matter of facts, these linguistic
features are also the main efficiency-blockers for the test generation
approaches based on symbolic execution at the state of the art. This paper
contributes new evidence of the effectiveness of generating test cases with
symbolic execution for a significant class of industrial safety
critical-systems. We specifically focus on Scade, a largely adopted model-based
development language for safety-critical embedded software, and we report on a
case study in which we exploited symbolic execution to automatically generate
test cases for a set of safety-critical programs developed in Scade. To this
end, we introduce a novel test generator that we developed in a recent
industrial project on testing safety-critical railway software written in
Scade, and we report on our experience of using this test generator for testing
a set of Scade programs that belong to the development of an on-board signaling
unit for high-speed rail. The results provide empirically evidence that
symbolic execution is indeed a viable approach for generating high-quality test
suites for the safety-critical programs considered in our case study
Design for Testability for Highly Reconfigurable Component-Based Systems
Abstract Highly-reconfigurable component-based systems, i.e., systems that are built form existing components and are distributed in many versions and configurations, are becoming increasingly popular. The design and verification of such systems presents new challenges. In this paper we propose a design approach that facilitates analysis and testing of different configurations by identifying and tracking relations among requirements, logic components and resources. The approach proposed in the paper allows for easily identifying different dependencies among resources, components and requirements and thus spotting the tests that must be re-executed to assure the desired level of quality
Advances in Meniscal Tissue Engineering
Meniscal tears are the most common knee injuries and have a poor ability of healing. In the last few decades, several techniques have been increasingly used to optimize meniscal healing. Current research efforts of tissue engineering try to combine cell-based therapy, growth factors, gene therapy, and reabsorbable scaffolds to promote healing of meniscal defects. Preliminary studies did not allow to draw definitive conclusions on the use of these techniques for routine management of meniscal lesions. We performed a review of the available literature on current techniques of tissue engineering for the management of meniscal tears
Biological Strategies to Enhance Healing of the Avascular Area of the Meniscus
Meniscal injuries in the vascularized peripheral part of the meniscus have a better healing potential than tears in the central avascular zone because meniscal healing principally depends on its vascular supply. Several biological strategies have been proposed to enhance healing of the avascular area of the meniscus: abrasion therapy, fibrin clot, organ culture, cell therapy, and applications of growth factors. However, data are too heterogeneous to achieve definitive conclusions on the use of these techniques for routine management of meniscal lesions. Although most preclinical and clinical studies are very promising, they are still at an experimental stage. More prospective randomised controlled trials are needed to compare the different techniques for clinical results, applicability, and cost-effectiveness
Identification of Premature Senescence Cells in the Brain of the HIV-1 Transgenic Rat (HIV-TG Rat)
n/
- …