17 research outputs found
Runtime verification using Larva
Larva, which has been in use and continuous development for almost a decade, has been extended in several ways and used in a wide range of scenarios, from industrial deployment to educational ones. In this paper we give an overview of Larva and give an overview of its extensions and uses.peer-reviewe
Dépliage de Boucles Versus Précision Numérique
Les calculs en nombres flottants sont intensivement utilisés dans divers domaines, notamment les
systèmes embarqués critiques. En général, les résultats de ces calculs sont perturbés par les erreurs
d’arrondi. Dans un scenario critique, ces erreurs peuvent être accumulées et propagées, générant ainsi
des dommages plus ou moins graves sur le plan humain, matériel, financier, etc. Il est donc souhaitable
d’obtenir les résultats les plus précis possibles lorsque nous utilisons l’arithmétique flottante.
Pour remédier à ce problème, l’outil Salsa [7] permet d’améliorer la précision des calculs en corrigeant
partiellement ces erreurs d’arrondi par une transformation automatique et source à source des
programmes. La principale contribution de ce travail consiste à analyser, à étudier si l’optimisation
par dépliage de boucles améliore plus la précision numérique des calculs dans le programme initial.
À cours terme, on souhaite définir un facteur de dépliage de boucles, c’est à dire, trouver quand est-ce
qu’il est pertinent de déplier la boucle dans le programme
MUPPAAL:Reducing and Removing Equivalent and Duplicate Mutants in UPPAAL
peer reviewedMutation Testing (MT) is a test quality assessment technique that creates mutants by injecting artificial faults into the system and evaluating the ability of tests to distinguish these mutants. We focus on MT for safety-critical Timed Automata (TA). MT is prone to equivalent and duplicate mutants, the former having the same behaviour as the original system and the latter other mutants. Such mutants bring no value and induce useless test case executions. We propose MUPPAAL, a tool that: (1) offers a new operator reducing the occurrence of mutant duplicates; (2) an efficient bisimulation algorithm removing remaining duplicates; (3) leverages existing equivalence-avoiding mutation operators. Our experiments on four UPPAAL case studies indicate that duplicates represent up to 32% of all mutants and that the MUPPAAL bisimulation algorithm can identify them more than 99% of the time
Toward a Standard Benchmark Format and Suite for Floating-Point Analysis
We introduce FPBench, a standard benchmark format for
validation and optimization of numerical accuracy in
floating-point computations. FPBench is a first step toward addressing an increasing need in our community for comparisons and combinations of tools from different
application domains. To this end, FPBench provides a basic
floating-point benchmark format and accuracy measures for comparing different tools. The FPBench format and measures allow comparing and composing different floating-point tools. We describe the FPBench format and measures and show that FPBench expresses benchmarks from recent papers
in the literature, by building an initial benchmark suite drawn from these papers. We intend for FPBench to grow into a standard benchmark suite for the members of the floating-point tools research community
Intra-procedural Optimization of the Numerical Accuracy of Programs
Numerical programs performing
oating-point computations
are very sensitive to the way formulas are written. These last years, several
techniques have been proposed concerning the transformation of
arithmetic expressions in order to improve their accuracy and, in this article,
we go one step further by automatically transforming larger pieces
of code containing assignments and control structures. We define a set
of transformation rules allowing the generation, under certain conditions
and in polynomial time, of larger expressions by performing limited formal
computations, possibly among several iterations of a loop. These
larger expressions are better suited to improve the numerical accuracy
of the target variable. We use abstract interpretation-based static analysis
techniques to over-approximate the roundoff errors in programs and
during the transformation of expressions. A prototype has been implemented
and experimental results are presented concerning classical numerical
algorithm analysis and algorithm for embedded systems
Authoring and automatic verification of interactive multimedia scores
International audienceThe advances in authoring of interactive scores call for a thorough analysis of the written scores. A possible way to ensure correctness of an interactive score is through the use of formal techniques such as model checking. In this work, we present a visual model of the inter-media sequencer i-score and we propose a Timed Automata encoding to reason about the interactive scores written in this software. The verification of some properties of interactive scores is presented, along an evaluation of the performance of the model-checking process with uppaal
RML: Runtime Monitoring Language
Runtime verification is a relatively new software verification technique that aims to prove the correctness of a specific run of a program, rather than statically verify the code. The program is instrumented in order to collect all the relevant information, and the resulting trace of events is inspected by a monitor that verifies its compliance with respect to a specification of the expected properties of the system under scrutiny. Many languages exist that can be used to formally express the expected
behavior of a system, with different design choices and degrees of expressivity.
This thesis presents RML, a specification language designed for runtime verification, with the goal of being completely modular and independent from the instrumentation and the kind of system being monitored. RML is highly expressive, and allows one to express complex, parametric, non-context-free properties concisely. RML is compiled down to TC, a lower level calculus, which is fully formalized with a deterministic, rewriting-based semantics.
In order to evaluate the approach, an open source implementation has been developed, and several examples with Node.js programs have been tested. Benchmarks show the ability of the monitors automatically generated from RML specifications to effectively and efficiently verify complex properties