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=100Il 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.
Retour à la page principale de (gH)