Valid XHTML     Valid CSS2    

 

Projet de programmation en Licence professionnelle

(année 2020/2021)

 

Génération universelle de données pour tests logiciels

 

-- suite (et fin ?) --

 

 

Présentation du projet

Le projet UDG doit permettre de générer des fichiers de données aléatoires complexes, au format CSV, XML et SQL.

La génération s'exécute en ligne de commandes et la spécification des contraintes de génération se fait par page Web, via soit un formulaire soit un fichier de configuration XML.

On consultera la page  projet2016  pour voir les objectifs initiaux du projet puis les pages  projet2017 ,  projet2017 , et  projet2017  pour voir les réalisations effectuées.

L'utilisation de fichiers XML pour la spécification des générations se révèle à l'usage un peu difficile. On se propose donc d'utiliser un format beaucoup plus simple, nommé format UDG pour spécifier les contraintes de génération.

Voici des exemples de tels fichiers :


     ## exemple de fichier au format udg (fichier demo1.udg)
     
     projet demo1
     
       table personnes n=100 # sous-entendu : null=0%
         id         idString start=M length=6
         pren       dict=prenoms col=prenom
         sexe       label 1:homme;2:femme
         age        num min=18 max=90 # sous-entendu : dec=0
     
     

     ## fichier demo2.udg
     
     projet demo2
     
       table  temperatures # sous-entendu n=100 null=0
         id         autoinc
         celsius    num
         fahrenheit num formule=a*celsius+b
     

     # exemple de fichier au format udg avec tables liées (fichier demo3.udg)
     
     projet demo3
     
       table produits n=100 null=1%
         id         idString start=PR length=6
         produit    phrase
         refproduit mask=XXY-999
         reflabel   mask=xy_-990
     
       table commandes n=30 null=1
         id           autoinc
         idrefproduit idref=produits.id
         quantité     num min=0 max=100
     
     

Il reste également à compléter le générateur en ligne de commandes.

 

Détails des actions à réaliser pour la série 1 :

On se focalise ici sur la partie génération en ligne de commandes.

  1. La première chose à faire est une analyse de l'existant de ce qui est complétement réalisé opérationnel afin de produire une documentation utilisateur (en mode ligne de commandes, en mode Web) et une documentation programmeur. On en profitera pour lister les bugs éventuels, imprécisions de la documentation, les défauts de l'interface Web et on pourra prévoir de nouveaux exemples plus complets.

  2. On viendra ensuite décrire formellement le format UDG afin de pouvoir construire en ligne de commandes un traducteur PHP de fichiers au format UDG vers le format XML. Enfin, on réalisera ce traducteur.

  3. On viendra enfin analyser soigneusement le problème de l'import MySQL et implémenter en PHP cet import afon de rendre actif le bouton Lire MySQL de l'interface Web.

Il faudra sans doute non pas réécrire tout le code déjà existant mais plutôt le factoriser, peut-être ajouter des classes d'objets, ajouter du test (via PHPUnit ?) afin de rendre le projet plus robuste.

 

Détails des actions à réaliser pour la série 2 :

Il y a quelques bugs à corriger dans l'interface (lesquels ?).

L'interface de prévisualisation est sans doute à améliorer.

Mettre au point les deux tâches de la série 1 : import MySQL et traduction du format UDG en XML.

 

Code-source de la page.

 

retour gH    Retour à la page principale de   (gH)