EDBT 2026 Demo / reviewers in the wild / expert
Nikolai Kosmatov
dblp:98/3847
· DBLP profile ↗
60ranked-venue papers
9as first author
22since 2021 · last 2026
0000-0003-1557-2813ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 51 · 8 first-author · 18 since 2021Theory of computation · 15 · 1 first-author · 10 since 2021Security and privacy · 1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | SeaCoral: A Collaborative Test Generation Toolset for Industrial Orchestration of Testing ToolsabstractAbstract Formal methods have been successfully used to develop advanced test generation techniques. While various test generation tools and test coverage criteria have been proposed, their adoption in industrial practice remains fragmented. This paper presents , a novel open-source toolset for testing C programs, which aims to facilitate the industrial application of diverse testing technologies by integrating them within a single framework. offers a comprehensive set of testing services, ranging from the specification of test objectives for selected test coverage criteria, through test case generation and the detection of uncoverable objectives, to the measurement of the resulting coverage. It integrates a rich set of analyzers: the fuzzer , the model-checker , the dynamic symbolic execution tool , and the static analyzer for detecting uncoverable test objectives. These analyzers enrich each other’s results through a shared store of test objectives and a shared corpus of test cases. Particular attention is paid to the careful handling of runtime errors and initialization functions, which are essential for industrial applications. Initial experiments confirm the benefits of the proposed toolset. Nicolas Berthier, Steven de Oliveira, Nikolai Kosmatov, Delphine Longuet |
FM (2) | 3 |
| 2026 | Formal Verification for Security Certification: From a First Success to Sustainable Industrial UsageabstractAbstract The application of formal methods in an industrial context remains a delicate and time-consuming task, and each successful project contributes to improving productivity. This experience report summarizes five years of applying formal verification for Common Criteria-based security certification of a JavaCard Virtual Machine at Thales. Since the first successful formal verification—directly over the source code with the verification platform—was achieved in 2021, five highest-level Common Criteria certifications (at EAL6 and EAL7 levels) have been obtained during the past five years. The strong guarantees of functional correctness and security provided by source code-based verification are essential for security-critical products such as smart cards. This paper traces the evolution of the project from an initial success to the continuous application of formal verification, and discusses the main challenges, applied solutions, and opportunities for further improvement. Adel Djoudi, Nikolai Kosmatov |
FM (2) | 2 |
| 2026 | Introduction to the Special Collection on iFM 2024
Nikolai Kosmatov, Laura Kovács |
Formal Aspects Comput. | 1 |
| 2025 | Prove your Colorings: Formal Verification of Cache Coloring of Bao HypervisorabstractAbstract Hypervisors allow sharing of computing resources between applications—possibly of various levels of criticality—that makes them increasingly relevant for modern embedded systems. In this context, memory isolation properties (including low-level cache isolation) are essential to guarantee. This paper presents a case study on formal verification of the cache coloring mechanism implemented in the Bao hypervisor. It proposes an original technique for coloring memory pages and assigning to each virtual machine only pages of certain colors, aimed to provide strong isolation guarantees. The implementation presents several challenges for formal verification, such as bit-level operations, complex arithmetic operations, multiple levels of nested loops, and linked lists. We identify two subtle bugs in the existing implementation breaking the expected guarantees, and propose bug fixes. We provide formal specification for the key functions of the mechanism and verify their (fixed) version in the verification platform with a few lemmas proved in the proof assistant. We present our specification choices, verification approach and obtained results. Finally, we outline possible optimizations of the current implementation. Axel Ferréol, Laurent Corbin, Nikolai Kosmatov |
FASE | 3 |
| 2025 | Formal Verification of PKCS#1 Signature Parser Using Frama-C
Martin Hána, Nikolai Kosmatov, Virgile Prevosto, Julien Signoles |
iFM | 2 |
| 2025 | Towards Formal Verification of a TPM Software Stack: Achievements and OpportunitiesabstractThe Trusted Platform Module (TPM) is a cryptoprocessor designed to protect integrity and security of modern computers. Communications with the TPM go through the TPM Software Stack (TSS). The open-source library tpm2-tss is a popular implementation of the TSS. Vulnerabilities in its code could allow attackers to recover sensitive information and take control of the system. This article presents a case study on formal verification of tpm2-tss using the Frama-C verification platform. Heavily based on linked lists and complex data structures, the library code appears to be highly challenging for the verification tool. We present several difficulties and tool limitations we faced, illustrate them with examples and describe solutions that allowed us to verify functional properties and the absence of runtime errors for a representative subset of functions. In particular, their verification required several lemmas proved in the interactive proof assistant Coq . We describe our verification results and desired tool improvements necessary to achieve a full formal verification of the target code. Yani Ziani, Téo Bernier, Nikolai Kosmatov, Frédéric Loulergue, Daniel Gracia Pérez |
Formal Aspects Comput. | 3 |
| 2024 | Combining Deductive Verification with Shape AnalysisabstractAbstract Deductive verification tools can prove a large range of program properties, but often face issues on recursive data structures. Abstract interpretation tools based on separation logic and shape analysis can efficiently reason about such structures but cannot deal with so large classes of properties. This short paper presents an ongoing work on combining both techniques. We show how a deductive verifier for C programs, Frama-C/Wp, can benefit from a shape analysis tool, MemCAD, where structural and separation properties proved in the latter become assumptions for the former. A case study on selected functions of the tpm2-tss library using linked lists confirms the interest of the approach. Téo Bernier, Yani Ziani, Nikolai Kosmatov, Frédéric Loulergue |
FASE | 3 |
| 2024 | High-Level Program Properties in Frama-C: Definition, Verification and Deduction
Virgile Robles, Nikolai Kosmatov, Virgile Prevosto, Pascale Le Gall |
ISoLA (3) | 2 |
| 2024 | Automate where Automation Fails: Proof Strategies for Frama-C/WPabstractAbstract Modern deductive verification tools succeed in automatically proving the great majority of program annotations thanks in particular to constantly evolving SMT solvers they rely on. The remaining proof goals still require interactively created proof scripts. This tool demo paper presents a new solution for an automatic creation of proof scripts in /, a popular deductive verifier for C programs. The verification engineer defines a proof strategy describing several initial proof steps, from which proof scripts are automatically generated and applied. Our experiments on a large real-life industrial project confirm that the new proof strategy engine strongly facilitates the verification process by automating the creation of proof scripts, thus increasing the potential of industrial applications of deductive verification on large code bases. Loïc Correnson, Allan Blanchard, Adel Djoudi, Nikolai Kosmatov |
TACAS (1) | 4 |
| 2024 | No Smoke Without Fire: Detecting Specification Inconsistencies with Frama-C/WP
Allan Blanchard, Loïc Correnson, Adel Djoudi, Nikolai Kosmatov |
TAP | 4 |
| 2024 | Runtime Verification for High-Level Security Properties: Case Study on the TPM Software Stack
Yani Ziani, Nikolai Kosmatov, Frédéric Loulergue, Daniel Gracia Pérez |
TAP | 2 |
| 2024 | Sound Runtime Assertion Checking for Memory Properties via Program TransformationabstractRuntime Assertion Checking (RAC) for expressive specification languages is a non-trivial verification task that becomes even more complex for memory-related properties of imperative languages with dynamic memory allocation. It is important to ensure the soundness of RAC verdicts, in particular when RAC reports the absence of failures for execution traces. This article presents a formalization of a program transformation technique for RAC of memory properties for a representative language with pointers and memory operations, including dynamic allocation and deallocation. The generated program instrumentation relies on an axiomatized observation memory model, which is essential to record and monitor memory-related properties. We prove the soundness of RAC verdicts with regard to the semantics of this language. Dara Ly, Nikolai Kosmatov, Frédéric Loulergue, Julien Signoles |
Formal Aspects Comput. | 2 |
| 2023 | Towards Formal Verification of a TPM Software Stack
Yani Ziani, Nikolai Kosmatov, Frédéric Loulergue, Daniel Gracia Pérez, Téo Bernier |
iFM | 2 |
| 2023 | Efficient computation of arbitrary control dependencies
Jean-Christophe Léchenet, Nikolai Kosmatov, Pascale Le Gall |
Theor. Comput. Sci. | 2 |
| 2022 | Certified Verification of Relational Properties
Lionel Blatter, Nikolai Kosmatov, Virgile Prevosto, Pascale Le Gall |
IFM | 2 |
| 2022 | An Efficient VCGen-Based Modular Verification of Relational Properties
Lionel Blatter, Nikolai Kosmatov, Virgile Prevosto, Pascale Le Gall |
ISoLA (1) | 2 |
| 2022 | Editorial
Christophe Gaston, Nikolai Kosmatov, Pascale Le Gall |
Softw. Qual. J. | 2 |
| 2021 | Formal Verification of a JavaCard Virtual Machine with Frama-C
Adel Djoudi, Martin Hána, Nikolai Kosmatov |
FM | 3 |
| 2021 | Runtime Abstract Interpretation for Numerical Accuracy and Robustness
Franck Védrine, Maxime Jacquemin, Nikolai Kosmatov, Julien Signoles |
VMCAI | 3 |
| 2021 | Specify and measure, cover and reveal: A unified framework for automated test generation
Sébastien Bardin, Nikolai Kosmatov, Michaël Marcozzi, Mickaël Delahaye |
Sci. Comput. Program. | 2 |
| 2021 | PolyGraph: a data flow model with frequency arithmetic
Paul Dubrulle, Nikolai Kosmatov, Christophe Gaston, Arnault Lapitre |
Int. J. Softw. Tools Technol. Transf. | 2 |
| 2021 | Correction to: PolyGraph: a data flow model with frequency arithmetic
Paul Dubrulle, Nikolai Kosmatov, Christophe Gaston, Arnault Lapitre |
Int. J. Softw. Tools Technol. Transf. | 2 |
| 2020 | Detection of Polluting Test Objectives for Dataflow Criteria
Thibault Martin, Nikolai Kosmatov, Virgile Prevosto, Matthieu Lemerre |
IFM | 2 |
| 2020 | Formal Verification of an Industrial Distributed Algorithm: An Experience Report
Nikolai Kosmatov, Delphine Longuet, Romain Soulat |
ISoLA (1) | 1 |
| 2020 | Efficient Runtime Assertion Checking for Properties over Mathematical Numbers
Nikolai Kosmatov, Fonenantsoa Maurica, Julien Signoles |
RV | 1 |
| 2019 | A Data Flow Model with Frequency ArithmeticabstractData flow formalisms are commonly used to model systems in order to solve problems of buffer sizing and task scheduling. A prerequisite for static analysis of a modeled system is the existence of a periodic schedule in which the sizes of communication channels can be bounded for an unbounded execution (consistency), and that communication dependencies do not introduce a deadlock in such an execution (liveness). In the context of Cyber-Physical Systems, components are often interfaced with the physical world and have frequency constraints. The existing data flow formalisms lack expressiveness to fully cover the expected behavior of these components. We propose an extension to Synchronous Data Flow (SDF) formalism, called Polygraph, that includes frequency constraints and adjustable communication rates. We show that with these extensions, the conditions for a model to be consistent and live are no longer sufficient, and we extend the corresponding theorems with necessary and sufficient conditions to preserve these properties. We also introduce a framework to check the liveness of a Polygraph model, implemented in the tool DIVERSITY, along with preliminary experiments to validate this approach. Paul Dubrulle, Christophe Gaston, Nikolai Kosmatov, Arnault Lapitre, Stéphane Louise |
FASE | 3 |
| 2019 | Dynamic Reconfigurations in Frequency Constrained Data Flow
Paul Dubrulle, Christophe Gaston, Nikolai Kosmatov, Arnault Lapitre |
IFM | 3 |
| 2019 | MetAcsl: Specification and Verification of High-Level PropertiesabstractModular deductive verification is a powerful technique capable to show that each function in a program satisfies its contract. However, function contracts do not provide a global view of which high-level (e.g. security-related) properties of a whole software module are actually established, making it very difficult to assess them. To address this issue, this paper proposes a new specification mechanism, called meta-properties. A meta-property can be seen as an enhanced global invariant specified for a set of functions, and capable to express predicates on values of variables, as well as memory related conditions (such as separation) and read or write access constraints. We also propose an automatic transformation technique translating meta-properties into usual contracts and assertions, that can be proved by traditional deductive verification tools. This technique has been implemented as a Frama-C plugin called MetAcsl and successfully applied to specify and prove safety- and security-related meta-properties in two illustrative case studies. Virgile Robles, Nikolai Kosmatov, Virgile Prevosto, Louis Rilling, Pascale Le Gall |
TACAS (1) | 2 |
| 2019 | Introduction to the STAF 2015 special section
Jasmin Blanchette, Francis Bordeleau, Alfonso Pierantonio, Nikolai Kosmatov, Gabriele Taentzer, Manuel Wimmer |
Softw. Syst. Model. | 4 |
| 2018 | Towards Formal Verification of Contiki: Analysis of the AES-CCM* Modules with Frama-C
Alexandre Peyrard, Nikolai Kosmatov, Simon Duquennoy, Shahid Raza |
EWSN | 2 |
| 2018 | Fast Computation of Arbitrary Control Dependencies
Jean-Christophe Léchenet, Nikolai Kosmatov, Pascale Le Gall |
FASE | 2 |
| 2018 | Time to clean your test objectivesabstractTesting is the primary approach for detecting software defects. A major challenge faced by testers lies in crafting efficient test suites, able to detect a maximum number of bugs with manageable effort. To do so, they rely on coverage criteria, which define some precise test objectives to be covered. However, many common criteria specify a significant number of objectives that occur to be infeasible or redundant in practice, like covering dead code or semantically equal mutants. Such objectives are well-known to be harmful to the design of test suites, impacting both the efficiency and precision of the tester's effort. This work introduces a sound and scalable technique to prune out a significant part of the infeasible and redundant objectives produced by a panel of white-box criteria. In a nutshell, we reduce this task to proving the validity of logical assertions in the code under test. The technique is implemented in a tool that relies on weakest-precondition calculus and SMT solving for proving the assertions. The tool is built on top of the Frama-C verification platform, which we carefully tune for our specific scalability needs. The experiments reveal that the pruning capabilities of the tool can reduce the number of targeted test objectives in a program by up to 27% and scale to real programs of 200K lines, making it possible to automate a painstaking part of their current testing process. Michaël Marcozzi, Sébastien Bardin, Nikolai Kosmatov, Mike Papadakis, Virgile Prevosto, Loïc Correnson |
ICSE | 3 |
| 2018 | Test Case Generation with PathCrawler/LTest: How to Automate an Industrial Testing Process
Sébastien Bardin, Nikolai Kosmatov, Bruno Marre, David Mentré, Nicky Williams |
ISoLA (4) | 2 |
| 2018 | MMFilter : A CHR-Based Solver for Generation of Executions under Weak Memory Models
Allan Blanchard, Nikolai Kosmatov, Frédéric Loulergue |
Comput. Lang. Syst. Struct. | 2 |
| 2018 | Cut branches before looking for bugs: certifiably sound verification on relaxed slicesabstractAbstract Program slicing can be used to reduce a given initial program to a smaller one (a slice ) that preserves the behavior of the initial program with respect to a chosen criterion. Verification and validation (V&V) of software can become easier on slices, but require particular care in the presence of errors or non-termination in order to avoid unsound results or a poor level of code reduction in slices with respect to the initial program. This article proposes a theoretical foundation for conducting V&V activities on a slice instead of the initial program. We introduce the notion of relaxed slicing that is still capable of producing small slices, even in the presence of errors or non-termination, and establish an appropriate soundness property. It allows us to give a precise interpretation of verification results (absence or presence of errors) obtained for a slice in terms of the initial program. The implementation of these results in the Coq proof assistant is presented and some of its difficult points are discussed. Jean-Christophe Léchenet, Nikolai Kosmatov, Pascale Le Gall |
Formal Aspects Comput. | 2 |
| 2018 | How testing helps to diagnose proof failuresabstractAbstract Applying deductive verification to formally prove that a program respects its formal specification is a very complex and time-consuming task due in particular to the lack of feedback in case of proof failures. Along with a non-compliance between the code and its specification (due to an error in at least one of them), possible reasons of a proof failure include a missing or too weak specification for a called function or a loop, and lack of time or simply incapacity of the prover to finish a particular proof. This work proposes a methodology where test generation helps to identify the reason of a proof failure and to exhibit a counterexample clearly illustrating the issue. We define the categories of proof failures, introduce two subcategories of contract weaknesses (single and global ones), and examine their properties. We describe how to transform a C program formally specified in an executable specification language into C code suitable for testing, and illustrate the benefits of the method on comprehensive examples. The method has been implemented in StaDy , a plugin of the software analysis platform Frama -C. Initial experiments show that detecting non-compliances and contract weaknesses allows to precisely diagnose most proof failures. Guillaume Petiot, Nikolai Kosmatov, Bernard Botella, Alain Giorgetti, Jacques Julliand |
Formal Aspects Comput. | 2 |
| 2017 | Taming Coverage Criteria Heterogeneity with LTestabstractAutomated white-box testing is a major issue in software engineering. In previous work, we introduced LTest, a generic and integrated toolkit for automated white-box testing of C programs. LTest supports a broad class of coverage criteria in a unified way (through the label specification mechanism) and covers most major parts of the testing process - including coverage measurement, test generation and detection of infeasible test objectives. However, the original version of LTest was unable to handle several major classes of coverage criteria, such as MCDC or dataflow criteria. Moreover, its practical applicability remained barely assessed. In this work, we present a significantly extended version of LTest that supports almost all existing testing criteria, including MCDC and some software security properties, through a native support of recently proposed hyperlabels. We also provide a more realistic view on the practical applicability of the extended tool, with experiments assessing its efficiency and scalability on real-world programs. Michaël Marcozzi, Sébastien Bardin, Mickaël Delahaye, Nikolai Kosmatov, Virgile Prevosto |
ICST | 4 |
| 2017 | Generic and Effective Specification of Structural Test ObjectivesabstractA large amount of research has been carried out to automate white-box testing. While a wide range of different and sometimes heterogeneous code-coverage criteria have been proposed, there exists no generic formalism to describe them all, and available test automation tools usually support only a small subset of them. We introduce a new specification language, called HTOL (Hyperlabel Test Objectives Language), providing a powerful generic mechanism to define a wide range of test objectives. HTOL comes with a formal semantics, and can encode all standard criteria but full mutations. Besides specification, HTOL is appealing in the context of test automation as it allows handling criteria in a unified way. Michaël Marcozzi, Mickaël Delahaye, Sébastien Bardin, Nikolai Kosmatov, Virgile Prevosto |
ICST | 4 |
| 2017 | Shadow state encoding for efficient monitoring of block-level propertiesabstractMemory shadowing associates addresses from an application's memory to values stored in a disjoint memory space called shadow memory. At runtime shadow values store metadata about application memory locations they are mapped to. Shadow state encodings -- the structure of shadow values and their interpretation -- vary across different tools. Encodings used by the state-of-the-art monitoring tools have been proven useful for tracking memory at a byte-level, but cannot address properties related to memory block boundaries. Tracking block boundaries is however crucial for spatial memory safety analysis, where a spatial violation such as out-of-bounds access, may dereference an allocated location belonging to an adjacent block or a different struct member. Kostyantyn Vorobyov, Julien Signoles, Nikolai Kosmatov |
ISMM | 3 |
| 2017 | Runtime Detection of Temporal Memory Errors
Kostyantyn Vorobyov, Nikolai Kosmatov, Julien Signoles, Arvid Jakobsson |
RV | 2 |
| 2017 | RPP: Automatic Proof of Relational Properties by Self-composition
Lionel Blatter, Nikolai Kosmatov, Pascale Le Gall, Virgile Prevosto |
TACAS (1) | 2 |
| 2016 | Formal Verification of a Memory Allocation Module of Contiki with Frama-C: A Case Study
Frédéric Mangano, Simon Duquennoy, Nikolai Kosmatov |
CRiSIS | 3 |
| 2016 | Cut Branches Before Looking for Bugs: Sound Verification on Relaxed Slices
Jean-Christophe Léchenet, Nikolai Kosmatov, Pascale Le Gall |
FASE | 2 |
| 2016 | Static versus Dynamic Verification in Why3, Frama-C and SPARK 2014
Nikolai Kosmatov, Claude Marché, Yannick Moy, Julien Signoles |
ISoLA (1) | 1 |
| 2016 | Frama-C, A Collaborative Framework for C Code Verification: Tutorial Synopsis
Nikolai Kosmatov, Julien Signoles |
RV | 1 |
| 2016 | Conc2Seq: A Frama-C Plugin for Verification of Parallel Compositions of C ProgramsabstractFrama-C is an extensible modular framework for analysis of C programs that offers different analyzers in the form of collaborating plugins. Currently, Frama-C does not support the proof of functional properties of concurrent code. We present Conc2Seq, a new code transformation based tool realized as a Frama-C plugin and dedicated to the verification of concurrent C programs. Assuming the program under verification respects an interleaving semantics, Conc2Seq transforms the original concurrent C program into a sequential one in which concurrency is simulated by interleavings. User specifications are automatically reintegrated into the new code without manual intervention. The goal of the proposed code transformation technique is to allow the user to reason about a concurrent program through the interleaving semantics using existing Frama-C analyzers. Allan Blanchard, Nikolai Kosmatov, Matthieu Lemerre, Frédéric Loulergue |
SCAM | 2 |
| 2016 | Fast as a shadow, expressive as a tree: Optimized memory monitoring for C
Arvid Jakobsson, Nikolai Kosmatov, Julien Signoles |
Sci. Comput. Program. | 2 |
| 2015 | A Case Study on Formal Verification of the Anaxagoros Hypervisor Paging System with Frama-C
Allan Blanchard, Nikolai Kosmatov, Matthieu Lemerre, Frédéric Loulergue |
FMICS | 2 |
| 2015 | Sound and Quasi-Complete Detection of Infeasible Test RequirementsabstractIn software testing, coverage criteria specify the requirements to be covered by the test cases. However, in practice such criteria are limited due to the well-known infeasibility problem, which concerns elements/requirements that cannot be covered by any test case. To deal with this issue we revisit and improve state-of-the-art static analysis techniques, such as Value Analysis and Weakest Precondition calculus. We propose a lightweight greybox scheme for combining these two techniques in a complementary way. In particular we focus on detecting infeasible test requirements in an automatic and sound way for condition coverage, multiple condition coverage and weak mutation testing criteria. Experimental results show that our method is capable of detecting almost all the infeasible test requirements, 95% on average, in a reasonable amount of time, i.e., less than 40 seconds, making it practical for unit testing. Sébastien Bardin, Mickaël Delahaye, Robin David, Nikolai Kosmatov, Mike Papadakis, Yves Le Traon, Jean-Yves Marion |
ICST | 4 |
| 2015 | Frama-C: A software analysis perspectiveabstractAbstract Frama-C is a source code analysis platform that aims at conducting verification of industrial-size C programs. It provides its users with a collection of plug-ins that perform static analysis, deductive verification, and testing, for safety- and security-critical software. Collaborative verification across cooperating plug-ins is enabled by their integration on top of a shared kernel and datastructures, and their compliance to a common specification language. This foundational article presents a consolidated view of the platform, its main and composite analyses, and some of its industrial achievements. Florent Kirchner, Nikolai Kosmatov, Virgile Prevosto, Julien Signoles, Boris Yakobowski |
Formal Aspects Comput. | 2 |
| 2014 | Efficient Leveraging of Symbolic Execution to Advanced Coverage CriteriaabstractAutomatic test data generation (ATG) is a major topic in software engineering. In this paper, we bridge the gap between the coverage criteria supported by state-of-the-art white-box ATG technologies, especially Dynamic Symbolic Execution, and advanced coverage criteria found in the literature. We define a new testing criterion, label coverage, and prove it to be both expressive and amenable to efficient automation. We propose several innovative techniques resulting in an effective blackbox support for label coverage, while a direct approach induces an exponential blow-up of the search space. Experiments show that our optimisations yield very significant savings allowing to leverage ATG to label coverage with only a slight overhead. Sébastien Bardin, Nikolai Kosmatov, François Cheynier |
ICST | 2 |
| 2014 | Instrumentation of Annotated C Programs for Test GenerationabstractSoftware verification and validation often rely on formal specifications that encode desired program properties. Recent research proposed a combined verification approach in which a program can be incrementally verified using alternatively deductive verification and testing. Both techniques should use the same specification expressed in a unique specification language. This paper addresses this problem within the Frama-C framework for analysis of C programs, that offers ACSL as a common specification language. We provide a formal description of an automatic translation of ACSL annotations into C code that can be used by a test generation tool either to trigger and detect specification failures, or to gain confidence, or, under some assumptions, even to confirm that the code is in conformity with respect to the annotations. We implement the proposed specification translation in a combined verification tool Study. Our initial experiments suggest that the proposed support for a common specification language can be very helpful for combined static-dynamic analyses. Guillaume Petiot, Bernard Botella, Jacques Julliand, Nikolai Kosmatov, Julien Signoles |
SCAM | 4 |
| 2014 | Behind the scenes in SANTE: a combination of static and dynamic analyses
Omar Chebaro, Pascal Cuoq, Nikolai Kosmatov, Bruno Marre, Anne Pacalet, Nicky Williams, Boris Yakobowski |
Autom. Softw. Eng. | 3 |
| 2013 | A Late Treatment of C Precondition in Dynamic Symbolic Execution Testing Tools
Mickaël Delahaye, Nikolai Kosmatov |
RV | 2 |
| 2013 | An Optimized Memory Monitoring for Runtime Assertion Checking of C Programs
Nikolai Kosmatov, Guillaume Petiot, Julien Signoles |
RV | 1 |
| 2013 | A Lesson on Runtime Assertion Checking with Frama-C
Nikolai Kosmatov, Julien Signoles |
RV | 1 |
| 2012 | Frama-C - A Software Analysis Perspective
Pascal Cuoq, Florent Kirchner, Nikolai Kosmatov, Virgile Prevosto, Julien Signoles, Boris Yakobowski |
SEFM | 3 |
| 2008 | All-Paths TestGenerationfor Programs with Internal AliasesabstractIn structural testing of programs, the all-paths coverage criterion requires to generate a set of test cases such that every possible execution path of the program under test is executed by one test case. This task becomes very complex in presence of aliases, i.e. different ways to address the same memory location. In practice, the presence of aliases may result in enumeration of possible inputs, generation of several test cases for the same path and/or a failure to generate a test case for some feasible path. This article presents the problem of aliases in the context of classical depth-first test generation method. We classify aliases into two groups: external aliases, existing already at the entry point of the function under test (due to pointer inputs), and internal ones, created during its symbolic execution. This paper focuses on internal aliases.We propose an original extension of the depth-first test generation method for C programs with internal aliases. It limits the enumeration of inputs and the generation of superfluous test cases. Initial experiments show that our method canconsiderably improve the performances of the existing tools on programs with aliases. Nikolai Kosmatov |
ISSRE | 1 |
| 2005 | A uniform deductive approach for parameterized protocol safetyabstractWe present a uniform verification method of safety properties for classes of parameterized protocols. Properties like mutual exclusion or cache coherence are automatically verified for any number of similar processes communicating by broadcast and rendezvous. The protocols are specified in a language of generalized substitutions on array data structures. Sets of states are expressed by first-order formulae with equality. Predecessors are computed by an iterative semi-algorithm. Reaching an initial state or the fixpoint is shown to be decidable and an original decision procedure is provided. As a running example, the MESI protocol illustrates this approach. Experimental results show its applicability to various properties and protocol classes. Jean-François Couchot, Alain Giorgetti, Nikolai Kosmatov |
ASE | 3 |
| 2004 | Boundary Coverage Criteria for Test Generation from Formal ModelsabstractThis paper proposes a new family of model-based coverage criteria, based on formalizing boundary-value testing heuristics. The new criteria form a hierarchy of data-oriented coverage criteria, and can be applied to any formal notation that uses variables and values. They can be used either to measure the coverage of an existing test set, or to generate tests from a formal model. We give algorithms that can be used to generate tests that satisfy the criteria. These algorithms and criteria have been incorporated into the BZ-TESTING-TOOLS (BZ-TT) tool-set for automated test case generation from B, Z and UML/OCL specifications, and have been used and validated on several industrial applications in the domain of critical software, particularly smart cards and transport systems. Nikolai Kosmatov, Bruno Legeard, Fabien Peureux, Mark Utting |
ISSRE | 1 |