Une couverture combinant tests et preuves pour la vérification formelle

Actuellement, le développement d’un logiciel de taille industriel repose généralement surdes tests ou des preuves unitaires pour garantir rigoureusement ses exigences. En outre, il adéjà été montré que l’utilisation combinée du test et de la preuve unitaires est plus efficaceque l’utilisation d’une...

Full description

Bibliographic Details
Main Author: Le, Viet Hoang
Other Authors: Toulouse, ISAE
Language:fr
Published: 2019
Subjects:
Online Access:http://www.theses.fr/2019ESAE0023/document
id ndltd-theses.fr-2019ESAE0023
record_format oai_dc
spelling ndltd-theses.fr-2019ESAE00232020-01-15T03:22:46Z Une couverture combinant tests et preuves pour la vérification formelle A coverage combining tests and proofs for formal verification Vérification de programmes Test unitaire Preuve de programmes Combinaison d'analyse Couverture de code Program verification Unit testing Program proving Analysis combination Code coverage Actuellement, le développement d’un logiciel de taille industriel repose généralement surdes tests ou des preuves unitaires pour garantir rigoureusement ses exigences. En outre, il adéjà été montré que l’utilisation combinée du test et de la preuve unitaires est plus efficaceque l’utilisation d’une seule de ces deux techniques. Néanmoins, un ingénieur en vérificationhésite encore à utiliser ces deux techniques conjointement, faute d’une notion de couverturecommune au test et à la preuve. Définir une telle notion est l’objet de cette thèse.En effet, nous introduisons une nouvelle couverture, appelée « couverture label-mutant ».Elle permet de représenter les critères de couverture structurelle habituels du test, comme lacouverture des instructions, la couverture des branches ou la couverture MC/DC et de décidersi le critère choisi est satisfait en utilisant une technique de vérification formelle, qu’elle soitpar test, par preuve ou par une combinaison des deux. Elle permet également de représenterles critères de couverture fonctionnelle. Nous introduisons aussi dans cette thèse une méthodereposant sur des outils automatiques de test et de preuve pour réduire l’effort de vérificationtout en satisfaisant le critère de couverture choisi. Cette méthode est mise en oeuvre au seinde la plateforme d’analyse de code C (Frama-C), fournissant ainsi à un ingénieur un moyenopérationnel pour contrôler et réaliser la vérification qu’il souhaite. Currently, industrial-strength software development usually relies on unit testing or unitproof in order to ensure high-level requirements. Combining these techniques has already beendemonstrated more effective than using one of them alone. The verification engineer is yetnot been to combine these techniques because of the lack of a common notion of coverage fortesting and proving. Defining such a notion is the main objective of this thesis.We introduce here a new notion of coverage, named « label-mutant coverage ». It subsumesmost existing structural coverage criteria for unit testing, including statement coverage,branch coverage or MC/DC coverage, while allowing to decide whether the chosen criterionis satisfied by relying on a formal verification technique, either testing or proving or both.It also subsumes functional coverage criteria. Furthermore, we also introduce a method thatmakes use of automatic tools for testing or proving in order to reduce the verification costwhile satisfying the chosen coverage criterion. This method is implemented inside Frama-C, aframework for verification of C code (Frama-C). This way, it offers to the engineer a way tocontrol and to perform the expected verifications. Electronic Thesis or Dissertation Text fr http://www.theses.fr/2019ESAE0023/document Le, Viet Hoang 2019-07-11 Toulouse, ISAE Wiels, Virginie Signoles, Julien
collection NDLTD
language fr
sources NDLTD
topic Vérification de programmes
Test unitaire
Preuve de programmes
Combinaison d'analyse
Couverture de code
Program verification
Unit testing
Program proving
Analysis combination
Code coverage

spellingShingle Vérification de programmes
Test unitaire
Preuve de programmes
Combinaison d'analyse
Couverture de code
Program verification
Unit testing
Program proving
Analysis combination
Code coverage

Le, Viet Hoang
Une couverture combinant tests et preuves pour la vérification formelle
description Actuellement, le développement d’un logiciel de taille industriel repose généralement surdes tests ou des preuves unitaires pour garantir rigoureusement ses exigences. En outre, il adéjà été montré que l’utilisation combinée du test et de la preuve unitaires est plus efficaceque l’utilisation d’une seule de ces deux techniques. Néanmoins, un ingénieur en vérificationhésite encore à utiliser ces deux techniques conjointement, faute d’une notion de couverturecommune au test et à la preuve. Définir une telle notion est l’objet de cette thèse.En effet, nous introduisons une nouvelle couverture, appelée « couverture label-mutant ».Elle permet de représenter les critères de couverture structurelle habituels du test, comme lacouverture des instructions, la couverture des branches ou la couverture MC/DC et de décidersi le critère choisi est satisfait en utilisant une technique de vérification formelle, qu’elle soitpar test, par preuve ou par une combinaison des deux. Elle permet également de représenterles critères de couverture fonctionnelle. Nous introduisons aussi dans cette thèse une méthodereposant sur des outils automatiques de test et de preuve pour réduire l’effort de vérificationtout en satisfaisant le critère de couverture choisi. Cette méthode est mise en oeuvre au seinde la plateforme d’analyse de code C (Frama-C), fournissant ainsi à un ingénieur un moyenopérationnel pour contrôler et réaliser la vérification qu’il souhaite. === Currently, industrial-strength software development usually relies on unit testing or unitproof in order to ensure high-level requirements. Combining these techniques has already beendemonstrated more effective than using one of them alone. The verification engineer is yetnot been to combine these techniques because of the lack of a common notion of coverage fortesting and proving. Defining such a notion is the main objective of this thesis.We introduce here a new notion of coverage, named « label-mutant coverage ». It subsumesmost existing structural coverage criteria for unit testing, including statement coverage,branch coverage or MC/DC coverage, while allowing to decide whether the chosen criterionis satisfied by relying on a formal verification technique, either testing or proving or both.It also subsumes functional coverage criteria. Furthermore, we also introduce a method thatmakes use of automatic tools for testing or proving in order to reduce the verification costwhile satisfying the chosen coverage criterion. This method is implemented inside Frama-C, aframework for verification of C code (Frama-C). This way, it offers to the engineer a way tocontrol and to perform the expected verifications.
author2 Toulouse, ISAE
author_facet Toulouse, ISAE
Le, Viet Hoang
author Le, Viet Hoang
author_sort Le, Viet Hoang
title Une couverture combinant tests et preuves pour la vérification formelle
title_short Une couverture combinant tests et preuves pour la vérification formelle
title_full Une couverture combinant tests et preuves pour la vérification formelle
title_fullStr Une couverture combinant tests et preuves pour la vérification formelle
title_full_unstemmed Une couverture combinant tests et preuves pour la vérification formelle
title_sort une couverture combinant tests et preuves pour la vérification formelle
publishDate 2019
url http://www.theses.fr/2019ESAE0023/document
work_keys_str_mv AT leviethoang unecouverturecombinanttestsetpreuvespourlaverificationformelle
AT leviethoang acoveragecombiningtestsandproofsforformalverification
_version_ 1719308721754996736