Certification du logiciel

  • Cours (CM) 16h
  • Cours intégrés (CI) -
  • Travaux dirigés (TD) 6h
  • Travaux pratiques (TP) 8h
  • Travail étudiant (TE) -

Langue de l'enseignement : Français

Niveau de l'enseignement : B2-Avancé - Utilisateur indépendant

Description du contenu de l'enseignement

Tout développement logiciel est confronté au défi d'éviter les bugs ou, après coup, de vérifier leur absence. L’objectif de cette U.E. est de présenter différentes techniques permettant de garantir la correction d'un logiciel avec un bon degré de confiance. On présentera des méthodes d'analyse statique avec preuves formelles et des méthodes de test.

Première partie : Méthodologie du test de logiciels. Classification des méthodes et types de tests. Tests en boîte blanche/boîte noire. Tests combinatoires, approche pair-wise. Tests aux limites. Critères de couverture et approche par mutations. Tests unitaires et bouchons. Génération automatique de tests par exécution symbolique/concolique.Les liens avec la preuve seront mis en évidence. En TP, mise en oeuvre de test unitaire et logiciel de calcul de couverture.

Deuxième partie : Programmation par contrats. Notion d’invariant de boucle. Logique de Hoare. Calcul de la plus faible précondition. Génération d’obligations de preuves. En TP, mise en oeuvre en langage c à l’aide du langage de spécifications ACSL et du logiciel Frama-c.

Compétences à acquérir

À l'issue de cette UE, un étudiant est capable de :
- mettre en oeuvre des tests unitaires avec calcul de couverture
- choisir la méthode de certification/test adaptée aux besoins du projet
- écrire une spécification formelle
- prouver un programme simple

Pré-requis obligatoires

À l'entrée de cette UE, un étudiant devrait avoir suivi ou être capable de :
- traduire un énoncé de la langue naturelle vers la logique
- manipuler un système formel
- programmation orientée objet

Contact

UFR de mathématique et d'informatique

7, rue René Descartes
67084 STRASBOURG CEDEX
0368850200

Formulaire de contact