Génération automatique de tests unitaires avec Praspel, un langage de spécification pour PHP

par Ivan Enderlin

Thèse de doctorat en Informatique

Sous la direction de Fabrice Bouquet, Frédéric Dadeau et de Alain Giorgetti.

Soutenue le 16-07-2014

à Besançon , dans le cadre de École doctorale Sciences pour l'ingénieur et microtechniques (Besançon ; Dijon ; Belfort) , en partenariat avec FEMTO-ST : Franche-Comté Electronique Mécanique Thermique et Optique - Sciences et Technologies (Besançon) (équipe de recherche) et de Franche-Comté Électronique Mécanique, Thermique et Optique - Sciences et Technologies (laboratoire) .

Le président du jury était Michel Rueher.

Le jury était composé de Fabrice Bouquet, Frédéric Dadeau, Alain Giorgetti, Michel Rueher, Arnaud Gotlieb, Lydie du Bousquet.

Les rapporteurs étaient Arnaud Gotlieb, Lydie du Bousquet.


  • Résumé

    Les travaux présentés dans ce mémoire portent sur la validation de programmes PHP à travers un nouveau langage de spécification, accompagné de ses outils. Ces travaux s’articulent selon trois axes : langage de spécification, génération automatique de données de test et génération automatique de tests unitaires.La première contribution est Praspel, un nouveau langage de spécification pour PHP, basé sur la programmation par contrat. Praspel spécifie les données avec des domaines réalistes, qui sont des nouvelles structures permettant de valider etgénérer des données. À partir d’un contrat écrit en Praspel, nous pouvons faire du Contract-based Testing, c’est à dire exploiter les contrats pour générer automatiquement des tests unitaires. La deuxième contribution concerne la génération de données de test. Pour les booléens, les entiers et les réels, une génération aléatoire uniforme est employée. Pour les tableaux, un solveur de contraintes a été implémenté et utilisé. Pour les chaînes de caractères, un langage de description de grammaires avec un compilateur de compilateurs LL(⋆) et plusieurs algorithmes de génération de données sont employés. Enfin, la génération d’objets est traitée.La troisième contribution définit des critères de couverture sur les contrats.Ces derniers fournissent des objectifs de test. Toutes ces contributions ont été implémentées et expérimentées dans des outils distribués à la communauté PHP.

  • Titre traduit

    The art of contract-based testiong in PHP with Praspel


  • Résumé

    The works presented in this memoir are about the validation of PHPprograms through a new specification language, along with its tools. These works follow three axes: specification language, automatic test data generation and automatic unit test generation. The first contribution is Praspel, a new specification language for PHP, based on the Design by Contract. Praspel specifies data with realistic domains, which are new structures allowing to validate and generate data. Based on a contract, we are able to perform Contract-based Testing, i.e.using contracts to automatically generate unit tests. The second contribution isabout test data generation. For booleans, integers and floating point numbers, auniform random generation is used. For arrays, a dedicated constraint solver has been implemented and used. For strings, a grammar description language along with an LL(⋆) compiler compiler and several algorithms for data generation are used. Finally, the object generation is supported. The third contribution defines contract coverage criteria. These latters provide test objectives. All these contributions are implemented and experimented into tools distributed to the PHP community.


Il est disponible au sein de la bibliothèque de l'établissement de soutenance.

Consulter en bibliothèque

La version de soutenance existe

Informations

  • Détails : 1 Vol. (178p.)
  • Annexes : Bibliogr. p.169-178

Où se trouve cette thèse\u00a0?

  • Bibliothèque : Bibliothèque universitaire Sciences - Sport (Besançon).
  • Disponible pour le PEB
  • Cote : SCI.BESA.2014.65
  • Bibliothèque : Bibliothèque universitaire électronique, Besançon.
Voir dans le Sudoc, catalogue collectif des bibliothèques de l'enseignement supérieur et de la recherche.