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