Valid XHTML     Valid CSS2    

 

Projet de programmation en Licence professionnelle

(année 2019/2020)

 

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

 

-- suite --

 

 

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 la page  projet2017  pour voir les objectifs à moyen terme du projet.

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.

La première chose à faire est une analyse de l'existant de ce qui est maintenant opérationnel et de ce qui est encore à développer ou à améliorer au niveau de la génération. On pourra notamment lire le fichier Rapport_2.pdf de l'archive du site nommée Udg.zip. Au passage, on essaiera d'améliorer le rapport de génération pour qu'il soit plus lisible.

On viendra ensuite essayer de générer des fichiers de données à 2 ou 3 tables liées avec le générateur actuel à partir de fichiers XML de configuration afin de voir ce qu'il faut modifier pour qu'il soit opérationnel. On utilisera les équivalents XML des trois fichiers UDG présentés plus haut comme exemples de génération à réaliser.

On pourra aussi tester si les tables présentées dans les examens sen2016_3 et decra2018_3 sont facilement générables avec le système actuel.

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

Il faudra sans doute non pas réécrire 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 :

On se focalise ici sur la partie génération en page Web et donc sur l'interface.

Comme il faut sans doute changer cette interface, on passera en revue les autres sites qui correspondent à Random Data Generator et on détaillera leur interface Web. On produira un tableau résumé de comparaison de ces sites avec UDG (taille des données, type des colonnes, exports...).

Dans la mesure où la partie 1 du projet a changé le fichier udg.xsd -- voir Generateur.zip -- on commencera par modifier l'interface et le fichier TraitementsForm.php pour que la génération soit à nouveau possible. On viendra vérifier que l'interface Web est fonctionnelle sur des petits et des grands écrans, quitte à modifier les feuilles de style.

Il serait intéressant de modifier les éléments de saisie dans la page Web afin de les aligner, comme sur le site mockaroo. On pourra essayer de comprendre comment ce site fonctionne via Javascript et on fournira une mini version de udg via une adaptation de ce site.

En fin de génération, on viendra afficher une page de rapport sur la génération avec des résumés, des graphiques...

On mettra en ligne une documentation programmeur sur le projet pour les prochaines versions du site.

 

Code-source de la page.

 

retour gH    Retour à la page principale de   (gH)