Plan de validation de la plateforme Sol virtuel par les tests automatisés - Relecteurs : Nicolas Moitrier Nathalie Moitrier Cédric Nouguier
←
→
Transcription du contenu de la page
Si votre navigateur ne rend pas la page correctement, lisez s'il vous plaît le contenu de la page ci-dessous
Plan de validation de la plateforme Sol virtuel par les tests automatisés Relecteurs : Auteurs : Nicolas Moitrier Anthony Delerin Nathalie Moitrier Éric Aïvayan Cédric Nouguier planValidation.tex Version : V1.1 Date : 13 juillet 2022
Licence: c b e a Date: 13 juillet 2022 Version: 1.1 Historique des révisions Date Version Description 27/01/2014 0.1 Création du document 31/01/2014 0.1 Définition de la structure générale du document et écriture de la description de la plateforme 28/02/2014 1.0 Ajout des exigences de tests et écriture de la stratégie de test retenue pour la plateforme 03/09/2014 1.1 Reprise des cas d’utilisation et des scénarii associés
Table des matières 1 Introduction 4 1.1 Avant propos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2 Objectif du document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2 Terminologie 5 2.1 Glossaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2 Acronymes et abréviations . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3 Exigences de test 6 3.1 Exigences communes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.2 Exigences fonctionnelles spécifiques . . . . . . . . . . . . . . . . . . . . . 6 3.3 Exigences non fonctionnelles spécifiques . . . . . . . . . . . . . . . . . . . 6 4 Description de la plateforme 7 4.1 Domaine d’application et objectifs . . . . . . . . . . . . . . . . . . . . . . 7 4.2 Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 4.2.1 Programmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 4.2.2 Environnement de test . . . . . . . . . . . . . . . . . . . . . . . . 7 4.2.3 Données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 4.2.4 Documentation Utilisateur . . . . . . . . . . . . . . . . . . . . . . 7 5 Stratégie générale de test 9 5.1 Nomenclature de test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 5.1.1 Tests unitaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 5.1.2 Tests fonctionnels . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 5.2 Common . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 5.2.1 Common-toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 5.2.2 Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 5.2.3 Piscines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 5.2.4 Réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 5.2.5 Importation/exportation . . . . . . . . . . . . . . . . . . . . . . . 10 5.3 vsoil-processes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 5.4 vsoil-modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 5.5 vsoil-models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 5.6 vsoil-player . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 6 Cas de test 12 6.1 Éléments communs : Import/Export . . . . . . . . . . . . . . . . . . . . 12 6.1.1 Description des cas de test . . . . . . . . . . . . . . . . . . . . . . 12 6.1.2 Scénario de test . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 6.1.3 Cas implémentés . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 6.2 Composant de plateforme « Processes » . . . . . . . . . . . . . . . . . . 16 6.2.1 Description des cas de test . . . . . . . . . . . . . . . . . . . . . . 16 6.2.2 Scénario de test . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 6.2.3 Cas implémentés . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 6.2.4 Données de test . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Licence: c b e a Page: 2 / 56
6.3 Composant de plateforme « Modules » . . . . . . . . . . . . . . . . . . . 33 6.3.1 Description des cas de tests . . . . . . . . . . . . . . . . . . . . . 33 6.3.2 Scénario de test . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 6.3.3 Données de test . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 6.3.4 Cas implémentés . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 6.4 Composant de plateforme « Models » . . . . . . . . . . . . . . . . . . . . 42 6.4.1 Description des cas de tests . . . . . . . . . . . . . . . . . . . . . 42 6.4.2 Scénario de test . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 6.4.3 Données de test . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 6.4.4 Cas implémentés . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 6.5 Composant de plateforme « Player » . . . . . . . . . . . . . . . . . . . . 48 6.5.1 Description des cas de tests . . . . . . . . . . . . . . . . . . . . . 48 6.5.2 Scénario de test . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 6.5.3 Données de test . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 6.5.4 Cas implémentés . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 7 Intégration continue 54 7.1 Principes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 7.2 Description de l’attendu . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 7.3 Description de l’existant . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 7.4 Possibles améliorations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 8 Catalogue des tests à envisager. 56 Licence: c b e a Page: 3 / 56
1 Introduction 1.1 Avant propos Ce document a été initié par Anthony Delerin, membre du projet Sol-Virtuel et en- cadrant de la partie des tests au seins de la plateforme. Il a été modifié par Éric Aïvayan, membre du projet Sol-Virtuel dans le cadre d’un stage de fin de Master Professionnel ayant pour objet la mise en place de tests fonctionnels. 1.2 Objectif du document Ce document présente la stratégie, l’organisation, l’environnement et la planification des activités de tests et de validation de la plateforme Sol-Virtuel. Il identifie notamment les éléments à tester, les tâches correspondantes, les ressources requises pour ces tâches et les risques associés au présent plan. Licence: c b e a Page: 4 / 56
2 Terminologie 2.1 Glossaire — Processus : Les processus sont des phénomènes -physiques, chimiques ou biologiques- du sol. Au travers de leurs interactions avec les autres processus, ils décrivent des entrées et des sorties. Ces processus avec leurs E/S génèrent des dépendances, donc des graphes, appelés "squelettes". — Module : Un module est une représentation numérico-informatique d’un proces- sus. Il utilise (ou pas) des entrées de son processus. Un module produit au moins une sortie de son processus. — Modèle : Un modèle est un ensemble ordonnée de modules. Il est issu d’un sque- lette : on choisit pour chacun des processus, un module qui le représente. 2.2 Acronymes et abréviations IHM : Interface Homme-Machine. Ensemble de dispositifs matériels et logiciels per- mettant à un utilisateur de communiquer avec un système informatique. Dans notre cas, il s’agira essentiellement de l’interface utilisateur des logiciels. Licence: c b e a Page: 5 / 56
3 Exigences de test 3.1 Exigences communes Ce paragraphe rappelle les exigences communes à l’ensemble des outils développés pour la plateforme. — [EX-C-01] Les outils doivent posséder une interface (menus, messages d’erreurs ...) en anglais. — [EX-C-02] Les outils doivent pouvoir s’exécuter sous des environnements systèmes différents, et notamment les systèmes d’exploitations windows (XP et au delà) et les systèmes linux (Ubuntu). — [EX-C-03] Les outils doivent se lancer et se fermer sans générer d’erreurs. Dans le cadre de la présente version du plan de test, sont retenues comme exigences les tests suivants [EX-C-02]. 3.2 Exigences fonctionnelles spécifiques Les différentes fonctionnalités attendues par l’utilisateur de la plateforme sont simi- laires pour chaque composant de plateforme. L’utilisateur veut pouvoir : — Créer, — Modifier, — Supprimer, — Importer, — Exporter, des processus, des modules ou des modèles. Pour le composant de plateforme, l’utilisateur veut pouvoir "jouer" à plusieurs reprises un modèles avec des jeux de données différentes. Les différentes fonctionnalités et leurs exigences sont détaillés au chapitre 5. 3.3 Exigences non fonctionnelles spécifiques La plateforme Sol Virtuel et ses différents composants logiciels sont soumis des exi- gences non fonctionnelles ou techniques. Parmi ceux–ci, on peut citer : — [EX-T-01] Les différents composants de la plateforme ne peuvent et ne doivent pas s’exécuter en même temps : l’accès concurrent aux fichiers est interdit. — [EX-T-02] Certains composants de plateforme nécessitent l’accès à des compi- lateurs externes : Les compilateurs C++ ou Fortran (entre autres) doivent être accessibles. — [EX-T-03] Le temps d’exécution de chacune des actions doit être raisonnable. Licence: c b e a Page: 6 / 56
4 Description de la plateforme 4.1 Domaine d’application et objectifs 4.2 Information 4.2.1 Programmes Le logiciel est composé des programmes / exécutables suivants : vsoil-processes vsoil-modules vsoil-models vsoil-player vsoil-frontend 4.2.2 Environnement de test Le tableau ci-dessous décrit la configuration de test requise. La troisième et dernière colonne correspond au nom effectif de la machine dans l’environnement de test. Identificateur Description/Titre Nom PC Linux-x86_64 PCSOL11 PC Windows 32 bits 4.2.3 Données Le tableau ci-dessous décrit les différents fichiers de données qui seront utilisés lors de l’exécution des différents tests. Identificateur Description/Titre Nom de fichier l’official pool de la plateforme, conte- official_pools.xml nant les données officielles fournies avec celle-ci une pool vide (contenant quand même pools_empty.xml une structure XML) Ces données étant fournies avec la plateforme, elles se doivent d’être valides et conformes. Elles feront donc l’objet de tests comme le reste du code composant la plateforme. Il faudra cependant préciser que seul leur forme sera testé. 4.2.4 Documentation Utilisateur Le tableau ci-dessous présente les différentes documentations utilisateurs associées aux différents composants de la plateforme : Licence: c b e a Page: 7 / 56
Identificateur Description/Titre Nom de fichier documentation vsoil-processes vsoil-processes.pdf documentation vsoil-modules vsoil-modules.pdf documentation vsoil-models vsoil-models.pdf documentation vsoil-model_usage vsoil-model_usage.pdf documentation vsoil-player vsoil-player.pdf documentation vsoil-frontend vsoil-frontend.pdf documentation vsoil-frontend2 vsoil-frontend2.pdf documentation vsoil-common-toolbar vsoil-common-toolbar.pdf documentation vsoil-import-export vsoil-import-export.pdf Le contenu de ces documents est valide. Les seuls tests qui seront potentiellement effectués seront la génération de ces documents lors de la compilation des différents com- posants de la plateforme et leur inclusion dans le package d’installation. De plus la pré- sence de ces documents et leurs accessibilité sur le site Web de la plateforme devront être testés. Licence: c b e a Page: 8 / 56
5 Stratégie générale de test Ce chapitre résume la stratégie de test mise en place pour la validation des diffé- rents composants de la plateforme. Il précise notamment, pour chaque caractéristique du logiciel, les informations logicielles concernées ainsi que les techniques de test retenues. 5.1 Nomenclature de test Dans le cadre d’une mise en place de tests au seins d’un projet, il est important de mettre en place une nomenclature commune pour les cas de tests qui influeront la compréhension générale du code et facilitera leur possible maintenance. 5.1.1 Tests unitaires La nomenclature retenue comme convention pour la dénomination des tests unitaires est la suivante : ___ Par exemple, le test unitaire de la méthode1 de la classe1 avec le premier paramètre null attendant en retour une exception serait nommé : Classe1_Methode1_WithParam1Null_ThrowExc 5.1.2 Tests fonctionnels La nomenclature retenue comme convention pour la dénomination des tests fonction- nels est la suivante : __ Par exemple, le test fonctionnel permettant de vérifier le fonctionnement de la visua- lisation d’un processus utilisateur dans l’application vsoil-modules sera nommé : vsoil- modules_visualizeModule_userModule 5.2 Common 5.2.1 Common-toolbar L’ensemble des logiciels composants la plateforme possèdent dans leur interface une barre d’outils commune permettant d’effectuer certaines actions. — exporter / sauvegarder le travail actuel ; — sauvegarder l’espace de travail de la plateforme ; — restaurer un espace de travail ; — imprimer ; — afficher la documentation ; — afficher la page internet de la plateforme ; — contacter l’équipe de la plateforme ; — afficher la licence ; — quitter le logiciel ; — filtrer les informations ; La barre d’outils et l’ensemble de ses actions seront testés de la manière suivante : 1. de manière unitaire pour les différentes actions ; 2. à travers l’interface à l’aide de tests d’IHM pour vérifier le comportement de l’in- terface ; Licence: c b e a Page: 9 / 56
5.2.2 Documentation L’ensemble de la documentation doit être présente et accessible sur le site Web de la plateforme. Elle doit aussi être accessible depuis chaque application de manière contex- tualisée. 5.2.3 Piscines Les piscines doivent être correctement formées dans leur structure. Les données qu’elles contiennent doivent être, pour la partie officielle, conforme aux attendus. En plus de la forme, les piscines doivent être présentes et accessibles à l’application. 5.2.4 Réseau 5.2.5 Importation/exportation Une contrainte forte du cahier des charges est le partage des informations entre scien- tifiques. L’exportation doit permettre une transmission fiable de tout ou une partie du travail de recherche. Les éléments exportés doivent être conformes aux éléments présents dans les piscines de l’utilisateur. De l’autre côté, l’importation doit permettre l’ajout d’éléments extérieurs sans modifier, de manière non contrôlée, les éléments déjà en la possession de l’utilisateur. Cette partie, importante, doit faire l’objet de tests à partir de l’IHM. Cette méthodo- logie permettra de tester les mécanismes sous-jacents. 5.3 vsoil-processes Le logiciel vsoil-processes, dédié à la manipulation des processus et des squelettes, possède les fonctionnalités suivantes : — visualiser un processus ; — ajouter un processus ; — éditer un processus ; — dupliquer un processus ; — renommer un processus ; Étant alimenté par des entrées/sorties, il est possible, à partir de ce composant de plateforme, de — créer une entrée/sortie, — modifier une entrée/sortie, — supprimer une entrée/sortie. Dans le cadre du plan de validation, ces fonctionnalités seront d’abord validées à partir de la manipulation des piscines dédiées puis à travers des tests d’IHM. Nous conditionnons les tests d’IHM par les tests de manipulation. 5.4 vsoil-modules Le logiciel vsoil-modules possède 6 fonctionnalités principales : — visualiser un module ; — ajouter un module ; — dupliquer un module ; — éditer un module ; Licence: c b e a Page: 10 / 56
— renommer un module ; — supprimer un module ; Dans le cadre du plan de validation, ces fonctionnalités seront d’abord validées à partir de la manipulation des piscines dédiées puis à travers des tests d’IHM. Nous conditionnons les tests d’IHM par les tests de manipulation. 5.5 vsoil-models Le logiciel vsoil-models permet d’effectuer les actions suivantes : — visualiser un modèle ; — créer un modèle ; — créer un modèle à partir d’un modèle existant ; — éditer un modèle ; — renommer un modèle ; — supprimer un modèle ; Dans le cadre du plan de validation, ces fonctionnalités seront d’abord validées à partir de la manipulation des piscines dédiées puis à travers des tests d’IHM. Nous conditionnons les tests d’IHM par les tests de manipulation. 5.6 vsoil-player Le logiciel vsoil-player permet d’effectuer les actions suivantes : — exécuter un modèle ; — comparer des modèles ; — visualiser les résultats de l’exécution précédente d’un modèle ou d’une précédente comparaison ; La validation de ces attendus se fera uniquement par des tests d’IHM. Licence: c b e a Page: 11 / 56
6 Cas de test 6.1 Éléments communs : Import/Export 6.1.1 Description des cas de test — Les conflits de noms de manière générale. — Les conflits entre les éléments issus des piscines officielles et des piscines « utilisa- teur ». — Les conflits entre les variables, en particulier pour les entrées-sorties. — Les conflits générant de nouveaux squelettes. Les tests se feront à travers l’utilisation de l’IHM. Cas d’utilisation : Importer un processus. ID Common Import 1 Nom vs_CommonImport-NewProcess-OfficialOnly-UniqueName- SkelNoAdd Brève description L’utilisateur importe un processus utilisateur dont les entrées/- sorties sont issues de la piscine officielle et dont le nom est unique. Préconditions La boite d’introduction est ouverte. La piscine utilisateur ne contient pas un processus du même nom que celui importé. Comportement principal L’utilisateur choisit d’importer des données. Il sélectionne le fichier d’importation puis le processus à importer. Postconditions Le nouveau processus est importé et se trouve dans la piscine utilisateur. Le nombre de squelettes n’a pas bougé Cas d’utilisation : Importer un processus ID Common Import 2 Nom vs_CommonImport-NewProcess-OfficialOnly-UniqueName- SkelAdd Brève description L’utilisateur importe un processus utilisateur dont les entrées/- sorties sont issues de la piscine officielle et dont le nom est unique. Préconditions La boite d’introduction est ouverte. La piscine utilisateur ne contient pas un processus du même nom que celui importé. Comportement principal L’utilisateur choisit d’importer des données. Il sélectionne le fichier d’importation puis le processus à importer. Postconditions Le nouveau processus est importé et se trouve dans la piscine utilisateur. Le nombre de squelettes a augmenté. Cas d’utilisation : Enregistrement des utilisateurs ID Common 3 Nom vs_Common-registration-NewUser Brève description L’utilisateur s’enregistre pour la première fois. Préconditions La plateforme est installée pour la première fois. Comportement principal L’utilisateur entre les renseignements voulu. Postconditions L’utilisateur est enregistré. Licence: c b e a Page: 12 / 56
Cas d’utilisation : Enregistrement des utilisateurs ID Common 4 Nom vs_Common-registration-update Brève description L’utilisateur met à jour son enregistrement. Préconditions L’utilisateur a déjà été enregistré. Sa plateforme est mise à jour. Comportement principal L’utilisateur confirme les informations trouvées par la plate- forme. Postconditions L’enregistrement est confirmé. Cas d’utilisation : La documentation est disponible ID Common 5 Nom vs_Common-networkRessources Brève description L’ensemble de la documentation est disponible. Préconditions L’accès réseau est possible. Comportement principal On envoie une requête aux différentes adresses. Postconditions La requête aboutie 6.1.2 Scénario de test Cas d’utilisation testé Common Import 1 Nom correspondant vs_CommonImport-NewProcess- OfficialOnly-UniqueName-SkelNoAdd Application testée Élément commun aux applications Environnement d’exécution , Fichier de test vsoil-common-tester/testimportgui.cpp Jeu de données initial userpool_install.xml N° étape Action Résultat État 0 La boite d’introduction est ouverte La boite d’introduction disparait. quelque soit l’application lancée. La fenêtre de sélection du fichier à L’utilisateur clique avec le bouton importer s’ouvre. gauche de la souris sur le bouton « Importer ». 1 L’utilisateur sélectionne le fichier La fenêtre de sélection disparait et qu’il veut importer dans l’applica- la boite de dialogue d’importation tion. Puis il clique avec le bouton apparaît. gauche de la souris sur le bouton « Ouvrir ». 2 L’utilisateur sélectionne les proces- sus qu’il veut importer 3 L’utilisateur clique avec le bouton gauche de la souris sur le bouton Replace All Suite page suivante. Licence: c b e a Page: 13 / 56
N° étape Action Résultat État 4 La boite de dialogue se ferme. Les piscines utilisateur sont modifiées et contiennent les éléments sélection- nés Fin. Cas d’utilisation testé Common Export 8 à 11 Nom correspondant vs_CommonExport-exportUserProcess vs_CommonExport- exportModifiedOfficialProcess vs_CommonExport-exportModule vs_CommonExport-exportModel Application testée Environnement d’exécution , Fichier de test testexport.cpp Jeu de données initial userpool_install.xml N° étape Action Résultat État 0 L’utilisateur lance un composant de La boite d’introduction du compo- la plateforme. sant s’affiche. 1 L’utilisateur choisit d’exporter des La boite de dialogue de l’export éléments dans le format d’archive s’ouvre. vsoil. 2 L’utilisateur choisit le type d’élé- ments et les éléments à exporter. Pour les processus, il peut aussi ex- porter les modules associés. 3 L’utilisateur clique sur le bouton Une boite de dialogue demandant la « export to disc » destination apparaît. 4 L’utilisateur entre le chemin et le Le composant affiche sa boite d’in- nom de l’export puis clique sur « en- troduction. Le fichier se trouve dans registrer ». le bon répertoire avec le nom voulu et n’est pas vide. Fin. Licence: c b e a Page: 14 / 56
Cas d’utilisation testé Common 12 Nom correspondant vs_Common-registration-NewUser Application testée Environnement d’exécution , Fichier de test testregistrationgui.cpp Jeu de données initial userpool_install.xml N° étape Action Résultat État 0 L’utilisateur démarre pour la pre- La boite de dialogue de licence et mière fois un composant de la pla- d’enregistrement apparaît. teforme. 1 L’utilisateur remplit les champs correspondant à son nom, prénom, courriel et profil. 2 L’utilisateur clique sur le bouton La boite de dialogue se referme. Il « online registration ». n’y a pas eu d’erreur. Fin. Cas d’utilisation testé Common 13 Nom correspondant vs_Common-registration-update Application testée Environnement d’exécution , Fichier de test testregistrationgui.cpp Jeu de données initial userpool_install.xml N° étape Action Résultat État 0 L’utilisateur démarre un composant La boite de dialogue de licence de la plateforme après une mise à et d’enregistrement apparaît. Les jour. champs sont pré-remplis. 1 L’utilisateur clique sur le bouton La boite de dialogue se referme. Il « online registration ». n’y a pas eu d’erreur. Fin. 6.1.3 Cas implémentés — Import En plus des données de base, pour les scénarios de tests d’import il a été rajouté le processus Pour l’import seuls les cas d’utilisation Common Import 1, 3 et 5 ont été réalisés. Les actions utilisés sont le remplacement total et le renommage. La variation du nombre de squelette sur un import n’a pas été implémenté. Il faudrait pour cela faire une classe de test particulière. Aucun module ou modèle n’a été importé. — Export L’export a été réalisé sur deux processus qui couvrent les cas d’utilisation Common Export 8 et Common Export 9. Les autres cas d’utilisation n’ont pas été implémentés. Licence: c b e a Page: 15 / 56
Le fichier d’export n’est testé que par sa taille. Il faudrait vérifier que son contenu est conforme aux attentes. — Enregistrement (registration) L’enregistrement des utilisateurs a été implémenté tant pour un premier enregis- trement que pour une mise à jour à l’aide de l’interface graphique uniquement. Les données de tests sont : enum c l a s s parameterPos { NAME = 0 , DESCRIPTION = 1 , TYPE = 2 , MIN = 3 namespace parameterType { — Disponibilité des ressources Les ressources suivantes ont été testées pour leur présence. — https://www6.inrae.fr/vsoil/content/download/3096/31045/version/1/ file/schemas.ogv — https://www6.inrae.fr/vsoil/content/download/3097/31048/version/1/ file/schemas_exemple.ogv — https://www6.inrae.fr/vsoil/content/download/3098/31051/version/1/ file/schemas_exemple2.ogv — http://www.quirksmode.org/html5/videos/big_buck_bunny.ogv — vsoil : :WEBSITE_URL — vsoil : :REPOSITORYSITE_URL — vsoil : :REGISTER_URL — vsoil : :DASHBOARD_URL 6.2 Composant de plateforme « Processes » 6.2.1 Description des cas de test Pour l’ensemble des tests de ces cas d’utilisations, on a fait le choix de ne pas tester l’ensemble des éléments graphiques de la fenêtre. Bien que nous aurions souhaité vérifier que les informations graphiques soient conformes aux attentes suivant les actions utili- sateurs, nous avons écarté ces vérifications qui nous semblent d’un rapport effort/retour peu favorable. Nous nous attachons cependant à tester les éléments graphiques dont l’importance informative est capitale. Cas d’utilisation : Créer un processus. ID Pr 1 Nom vs_proc-createProcess-OfficialOnly Brève description L’utilisateur crée un processus en utilisant les entrées/sorties officielles. Préconditions Le lanceur du composant de plateforme Processes est ouvert. L’utilisateur choisit d’ajouter un processus. Comportement principal L’utilisateur définit son processus en lui donnant un nom, une catégorie et une description. il lui adjoint des entrées/sorties du catalogue officiel. Postconditions Le processus créé est ajouté à la piscine des processus utilisa- teur. Licence: c b e a Page: 16 / 56
Cas d’utilisation : Créer un processus. ID Pr 2 Nom vs_proc-createProcess-NewInOut Brève description L’utilisateur crée un processus avec une création de nouvelles entrées/sorties. Préconditions Le lanceur de composant de plateforme Processes est ouvert. L’utilisateur choisit d’ajouter un processus. Comportement principal L’utilisateur définit un processus en renseignant le nom, la catégorie et la description. Il choisit de créer une ou plusieurs nouvelles entrées/sorties. Il ouvre la fenêtre de création d’entrée/sortie et renseigne la localisation, le type, l’unité, la description et le nom. Il finit de renseigner la création d’un nouveau processus en sélectionnant les entrées et les sorties. Postconditions La ou les nouvelles entrées/sorties sont présentes dans la pis- cine des entrées/sorties utilisateur et le nouveau processus est ajouté à la piscine des processus utilisateur. Cas d’utilisation : Créer un processus. ID Pr 3 Nom vs_proc-createProcess Brève description L’utilisateur crée un processus de type «External Factor» Préconditions Le lanceur du composant de plateforme Processes est ouvert. L’utilisateur choisit d’ajouter un processus. Comportement principal L’utilisateur définit un processus de type External Factor. Il lui donne un nom et une description. Il lui adjoint des sorties uniquement. Ces sorties peuvent être officielles ou non. Postconditions Le processus créé est ajouté à la piscine des processus utilisa- teur. Cas d’utilisation : Supprimer un processus. ID Pr 4 Nom vs_proc-DeleteProcess Brève description L’utilisateur supprime un processus de la piscine utilisateur. Préconditions Le lanceur du composant de plateforme Processes est ouvert. Au moins un processus utilisateur est présent dans la piscine des processus. L’utilisateur choisit de supprimer un processus. Comportement principal L’utilisateur sélectionne dans la liste des processus utilisateurs celui qu’il veut supprimer. Postconditions Le processus utilisateur n’est plus présent dans la piscine des processus utilisateur. Licence: c b e a Page: 17 / 56
Cas d’utilisation : Supprimer une entrée/sortie. ID Pr 5 Nom vs_proc-DeleteInOut Brève description L’utilisateur supprime une entrée/sortie de la piscine utilisa- teur. Préconditions Le lanceur du composant de plateforme Processes est ouvert. Au moins une entrée/sortie utilisateur est présente dans la pis- cine des processus. L’entrée/sortie n’est pas utilisée par un processus. L’utilisateur choisit de supprimer une entrée/sortie. Comportement principal L’utilisateur sélectionne dans la liste des entrées/sorties celle qu’il veut supprimer. Postconditions L’entrée/sortie utilisateur n’est plus présente dans la piscine des entrées/sorties utilisateur. Cas d’utilisation : Supprimer une entrée/sortie. ID Pr 6 Nom vs_proc-DeleteInOut Brève description L’utilisateur supprime une entrée/sortie de la piscine utilisa- teur. Préconditions Le lanceur du composant de plateforme Processes est ouvert. Au moins une entrée/sortie utilisateur est présente dans la pis- cine des processus. L’entrée/sortie est utilisée par un (ou plu- sieurs) processus sans être l’unique entrée ou sortie du (des) processus. L’utilisateur choisit de supprimer une entrée/sortie. Comportement principal L’utilisateur sélectionne dans la liste des entrées/sorties celle qu’il veut supprimer. Postconditions L’entrée/sortie utilisateur n’est plus présente dans la piscine des entrées/sorties utilisateur ni dans les processus qui l’utili- saient. Cas d’utilisation : Supprimer une entrée/sortie. ID Pr 7 Nom vs_proc-DeleteInOut Brève description L’utilisateur supprime une entrée/sortie de la piscine utilisa- teur. Préconditions Le lanceur du composant de plateforme Processes est ouvert. Au moins une entrée/sortie utilisateur est présente dans la pis- cine des processus. L’entrée/sortie est utilisée par un processus en étant l’unique entrée ou sortie du processus. L’utilisateur choisit de supprimer une entrée/sortie. Comportement principal L’utilisateur sélectionne dans la liste des entrées/sorties celle qu’il veut supprimer. Postconditions L’entrée/sortie ne peut pas être supprimée. Licence: c b e a Page: 18 / 56
Cas d’utilisation : Modifier un processus. ID Pr 8 Nom vs_proc-ModProcess-AddingInOut Brève description L’utilisateur modifie un processus de la piscine utilisateur. Préconditions Le lanceur de composant de plateforme Processes est ouvert. Au moins un processus utilisateur est présent dans la piscine des processus. L’utilisateur choisit de modifier un processus. Comportement principal L’utilisateur modifie un processus utilisateur. Il lui ajoute une entrée ou une sortie. Postconditions Le processus utilisateur est modifié. La modification est enre- gistrée dans la piscine des processus utilisateur. Cas d’utilisation : Modifier un processus. ID Pr 9 Nom vs_proc-ModProcess-ModifyingAnInOut Brève description L’utilisateur modifie un processus de la piscine utilisateur. Préconditions Le lanceur de composant de plateforme Processes est ouvert. Au moins un processus utilisateur est présent dans la piscine des processus. Au moins une entrée/sortie du processus est modifiable. L’utilisateur choisit de modifier un processus. Comportement principal L’utilisateur modifie un processus utilisateur. Il modifie les ca- ractéristiques d’une entrée ou d’une sortie. Postconditions Le processus utilisateur est modifié. La modification est enre- gistrée dans la piscine des processus utilisateur. Cas d’utilisation : Modifier un processus. ID Pr 10 Nom vs_proc-ModProcess-ModifyingInOuts Brève description L’utilisateur modifie un processus de la piscine utilisateur. Préconditions Le lanceur de composant de plateforme Processes est ouvert. Au moins un processus utilisateur est présent dans la piscine des processus. L’utilisateur choisit de modifier un processus. Comportement principal L’utilisateur modifie un processus utilisateur. Il modifie les en- trées ou sorties du processus. Postconditions Le processus utilisateur est modifié. La modification est enre- gistrée dans la piscine des processus utilisateur. Cas d’utilisation : Dupliquer un processus officiel ID Pr 11 Nom vs_proc-duplicateOfficial Brève description L’utilisateur duplique un processus officiel. Préconditions Le lanceur de composant de plateforme Processes est ouvert. L’utilisateur choisit de dupliquer un processus. Comportement principal L’utilisateur choisit le processus à dupliquer et lui donne un nouveau nom. Postconditions Le processus dupliqué se trouve dans la piscine utilisateur avec les mêmes caractéristiques que le processus original. Licence: c b e a Page: 19 / 56
Cas d’utilisation : Faire varier le nombre de squelettes ID Pr 12 Nom vs_proc-skeletonVariations Brève description L’utilisateur crée ou supprime un processus fournissant une sortie identique à un autre processus. Préconditions Le lanceur de composant de plateforme Processes est ouvert. L’utilisateur choisit d’ajouter ou de supprimer un processus. Comportement principal L’utilisateur choisit d’ajouter un processus ayant une sortie identique à un autre processus. ou L’utilisateur choisit de supprimer un processus ayant une sortie identique à un autre processus. Postconditions Le nombre de squelettes augmente. ou Le nombre de squelettes diminue. 6.2.2 Scénario de test Cas d’utilisation testé Pr1 Nom correspondant vs_proc-createProcess-OfficialOnly Application testée Processes Environnement d’exécution , Fichier de test vsoil-processes-test/testcreateprocessesgui.h Jeu de données initial userpool_install.xml N° étape Action Résultat État 0 Le composant de plateforme Pro- L’application affiche l’interface en cesses est ouvert. On clique sur le mode ajout de processus bouton add Process. 1 L’utilisateur entre un nom valide de processus dans le champ de saisie. 2 L’utilisateur choisit dans le menu déroulant la catégorie à laquelle ap- partient son processus. 3 L’utilisateur entre une description du processus dans le champ de sai- sie. 4 L’utilisateur clique avec le bouton gauche de la souris une fois sur le bouton marqué Ø correspondant aux paramètres d’entrés choisis. 5 L’utilisateur clique avec le bouton gauche de la souris deux fois sur le bouton marqué Ø correspondant aux paramètres de sortis choisis. Suite page suivante. Licence: c b e a Page: 20 / 56
N° étape Action Résultat État Le bouton « Add Process »est non grisé et actif 6 L’utilisateur clique avec le bouton Le bouton add process est grisé gauche de la souris sur le bouton et inactif. Le processus se retrouve add process. dans la liste des processus (onglet Information for all processes. Fin. Cas d’utilisation testé Pr2 Nom correspondant vs_proc-createProcess-NewInOut Application testée Processes Environnement d’exécution , Fichier de test vsoil-processes-test/testcreateprocessesgui.h Jeu de données initial userpool_install.xml N° étape Action Résultat État 0 Le composant de plateforme Pro- L’application affiche l’interface en cesses est ouvert. On clique sur le mode ajout de processus bouton add Process. 1 L’utilisateur entre un nom valide de processus dans le champ de saisie. 2 L’utilisateur choisit dans le menu déroulant la catégorie à laquelle ap- partient son processus. 3 L’utilisateur entre une description du processus dans le champ de sai- sie. 4 L’utilisateur clique avec le bouton La fenêtre change d’onglet. L’onglet gauche de la souris sur le bouton Processes devient inactif et l’onglet Create new in-out. Inputs-Outputs devient actif. 5 L’utilisateur choisit la localisation correspondant à sa nouvelle entrée- sortie en cliquant le bouton radio adéquat. 6 L’utilisateur choisit le type de don- née de son entrée-sortie. Il clique le bouton radio correspondant. 7 L’utilisateur clique avec le bouton Une fenêtre modale apparaît. Le gauche sur le bouton de dénomina- reste de l’application n’est pas ac- tion 1 de l’entrée-sortie. cessible. 8 L’utilisateur choisit l’objet dans la première colonne. Suite page suivante. 1. Dénomination : action de donner un nom. Licence: c b e a Page: 21 / 56
N° étape Action Résultat État OU L’utilisateur clique avec le bouton gauche de la souris sur New Object et entre un nom. 9 L’utilisateur choisit de cocher l’ajout de localisation associée à son entrée–sortie. OU L’utilisateur choisit de ne pas co- cher l’ajout de la localisation asso- ciée à son entrée–sortie. 10 L’utilisateur choisit d’ajouter un premier suffixe. Il sélectionne create new suffix 1 et entre un terme dans la zone de texte sous la liste de sé- lection. OU L’utilisateur choisit d’ajouter un premier suffixe. Il choisit un terme dans la liste de sélection. OU L’utilisateur choisit de ne pas ajou- ter un premier suffixe. Il laisse la zone dans son état par défaut. 11 L’utilisateur choisit d’ajouter un deuxième suffixe. Il sélection create new suffix 2 et entre un terme dans la zone de texte sous la liste de sé- lection. OU L’utilisateur choisit d’ajouter un deuxième suffixe. Il choisit un terme dans la liste de sélection. OU L’utilisateur choisit de ne pas ajou- ter un deuxième suffixe. Il laisse la zone dans son état par défaut. Le bouton Add name in-out est ac- tif. 12 L’utilisateur clique avec le bouton La fenêtre se ferme et la fenêtre gauche de la souris le bouton Add principale redevient accessible. Le name in-out. nom construit s’affiche à côté du bouton de l’action de dénomination. 13 L’utilisateur clique sur la liste dé- roulante de sélection de l’unité. Il choisit l’unité correspond à son entrée–sortie. 14 L’utilisateur écrit une description de son entrée–sortie. Le bouton Add in-out est actif . Suite page suivante. Licence: c b e a Page: 22 / 56
N° étape Action Résultat État 15 L’utilisateur clique avec le bouton La fenêtre revient à son état initial, gauche de la souris sur le bouton le bouton Add in-out est inactif. Add in-out. 16 L’utilisateur clique avec le bouton L’onglet Inputs-Outputs devient in- gauche de la souris sur le bouton actif et l’onglet Processes redevient Return to add process. actif. 17 L’utilisateur clique avec le bouton gauche de la souris une fois sur le bouton marqué Ø correspondant aux paramètres d’entrés choisis. 18 L’utilisateur clique avec le bouton gauche de la souris deux fois sur le bouton marqué Ø correspondant aux paramètres de sortis choisis. 19 L’utilisateur clique avec le bouton gauche de la souris sur le bouton add process. Fin. Cas d’utilisation testé Pr 4 Nom correspondant vs_proc-DeleteProcess Application testée vsoil-processes Environnement d’exécution , Fichier de test Jeu de données initial userpool_install.xml N° étape Action Résultat État 0 Le composant de plateforme Pro- L’application affiche l’interface en cesses est ouvert. On clique sur le mode ajout. bouton add Process. 1 L’utilisateur sélectionne dans la L’application affiche la liste des pro- liste des modes, le mode suppres- cessus. sion. 2 L’utilisateur sélectionne dans la L’application affiche les éléments liste des processus celui qu’il veut impactés par la suppression. supprimer. 3 L’utilisateur clique sur le bouton de Une boite de confirmation apparaît. suppression. 4 L’utilisateur confirme la suppres- Le processus n’est plus présent dans sion. la piscine des processus. Fin. Licence: c b e a Page: 23 / 56
Cas d’utilisation testé Pr 5 Nom correspondant vs_proc-DeleteInOut Application testée vsoil-processes Environnement d’exécution , Fichier de test Jeu de données initial userpool_install.xml N° étape Action Résultat État 0 Le composant de plateforme Pro- L’application affiche l’interface en cesses est ouvert. On clique sur le mode ajout. bouton add Process. 1 L’utilisateur fait afficher les en- L’application affiche la liste des en- trées/sorties. trées/sorties. 2 L’utilisateur sélectionne dans la L’application affiche la liste des pro- liste des modes, le mode suppres- cessus. sion. 3 L’utilisateur sélectionne dans la L’application affiche les éléments liste des entrées/sorties celle qu’il impactés par la suppression. veut supprimer. 4 L’utilisateur clique sur le bouton de Une boite de confirmation apparaît. suppression. OU Une boite de dialogue apparaît in- diquant l’impossibilité d’effectuer l’opération. 5 L’utilisateur confirme la suppres- L’entrée/sortie n’est plus présente sion. dans la piscine des entrées/sorties. OU L’utilisateur prend connaissance de L’entrée/sortie est toujours pré- la cause de l’impossibilité et fait dis- sente dans la piscine des entrées/- paraître la boite de dialogue. sorties. Fin. Cas d’utilisation testé Pr 11 Nom correspondant vs_proc-duplicateOfficial Application testée vsoil-processes Environnement d’exécution , Fichier de test Jeu de données initial userpool_install.xml N° étape Action Résultat État 0 Le composant de plateforme Pro- L’application affiche l’interface en cesses est ouvert. On clique sur le mode dénomination. bouton Rename/Duplicate. 1 L’utilisateur sélectionne dans la liste des processus celui qu’il veut dupliquer. 2 L’utilisateur entre un nouveau nom valide Suite page suivante. Licence: c b e a Page: 24 / 56
N° étape Action Résultat État 3 L’utilisateur clique sur le bouton de La plateforme se met dans le mode duplication. de modification. Le processus dupliqué se trouve dans la piscine utilisateur. Fin. 6.2.3 Cas implémentés Les cas d’utilisation des processus ont été implémenté sur en utilisant directement le poolmapping et en utilisant l’interface utilisateur. Il n’y a pas de cas fait uniquement avec l’un ou l’autre. — Création de processus L’ensemble des cas d’utilisation de création ont été implémentés. Les données utilisées sont rassemblées dans le tableau 6.2.3. Cas Données 1 OFFICIAL_IO_ONLY_NOT_EXTERNAL 2 NEW_INOU_NOT_EXTERNAL 3 MIXED_INOUT_EXTERNAL NEW_IO_EXTERNAL Table 10: Données de tests pour les cas de création de processus. — Suppression de processus L’ensemble des processus pouvant être créé sont supprimés. — Suppression d’entrées/sorties Le cas d’utilisation Pr 5 est le seul réellement testé. Toutes les entrées/sorties créées pour la création de processus sont supprimées. Cette suppression intervient après la suppression des processus. En toute logique, les entrées/sorties ne sont pas utilisés par un processus. Les cas d’utilisation Pr 6 et Pr 7 ne sont pas implémentés. Dans le cas Pr 6, il faudrait faire une classe de test particulière supprimant une entrée puis une sortie d’un processus ayant plusieurs entrées et plusieurs sorties. Dans le cas Pr 7, il faudrait faire une classe de test particulière dont le résultat attendu serait l’impossibilité de supprimer l’entrée/sortie. — Modifier un processus Aucun des cas présentés n’a été implémenté. — Dupliquer un processus Ce cas a été implémenté : tous les processus officiels sont dupliqués et renommés en ajoutant le préfixe « test ». — Faire varier le nombre de squelettes Ce cas a été implémenté avec le processus vsoil :: tests :: processes :: NEW_IO_EXTERNAL dont le nom a été suffixé par le numéro de boucle. Dans un premier temps ce processus est ajouté pour faire augmenter le nombre de squelettes puis il est supprimé pour le faire diminuer. Licence: c b e a Page: 25 / 56
6.2.4 Données de test Ceci est une référence rapide issue du fichier vsoil_tests_keywords.h donnant tous les noms de in/out codés ou utilisés dans la plateforme de test. Toutes les définitions sont à aller chercher dans le poolelementtank (common-tests/sources/poolelementtank.cpp). - QString CREATE_MODULE_BASE = "testProcess5"; - QString ROOT_WATER_UPTAKE = "root water uptake" ; - QString DENITRIFICATION = "denitrification" ; - QString MULCH_DYNAMICS = "mulch dynamics"; - QString ORGANIC_MATTER_DYNAMICS = "organic matter dynamics"; - QString TEST_FORTRAN_VAR_SIZE_PROCESS = "test fortran char size process"; //Process category namespace category { - QString BIOLOGICAL = "biological processes"; - QString EVOLUTION = "evolution of soil properties"; - QString EXTERNAL = "external factors"; - QString GEOCHEMICAL = "geochemical processes"; - QString PHYSICAL = "physical processes"; } } namespace IO { //User is designed by his name (QString): the given name MUST match with the IO name build by the vsoil software! - QString MINIMALIST = "test msr"; - QString SHORT = "test1 bottom msr"; - QString DESCRIPTION_SPECIAL_CHAR = "testio gas rate"; - QString LONG = "very long testing object name evapotranspiration humidity daily maximum"; - QString DUPLICATE_NAME = "testio gas duplicate"; - QString SUFFIXE_AND_QUALIFIER = "testsq gas rate"; - QString TEST_CONTEXT_ENTITY ="test"; - QString NONE_SCALAR_CHARACTERISTIC ="nsc"; - QString NONE_SCALAR = TEST_CONTEXT_ENTITY+ NONE_SCALAR_CHARACTERISTIC; - QString NONE_VECTOR_CHARACTERISTIC ="nvec"; - QString NONE_VECTOR = TEST_CONTEXT_ENTITY+ NONE_VECTOR_CHARACTERISTIC; - QString PROFILE_SCALAR_CHARACTERISTIC= "psc"; - QString PROFILE_VECTOR_CHARACTERISTIC = "pvec"; - QString PROFILE_SCALAR = TEST_CONTEXT_ENTITY+ PROFILE_SCALAR_CHARACTERISTIC; - QString PROFILE_VECTOR = TEST_CONTEXT_ENTITY+ PROFILE_VECTOR_CHARACTERISTIC; Licence: c b e a Page: 26 / 56
- QString CROP_TRANSPIRATION_DEMAND = "crop transpiration demand "; - QString AGGREGATES_SOLUTES_CONCENTRATIONS = "aggregates solutes concentrations"; - QString SOIL_GAZEOUS_CONSUMPTION = "soil gazeous consumption"; - QString ORGANICMATTER_GAS_CONSUMPTION = "soil organic matter gas consumption"; - QString SOIL_GAZEOUS_CONCENTRATIONS = "soil gazeous concentrations"; - QString SOLUTION_MOBILE_CONCENTRATIONS = "soil mobile solution concentration";// test"; - QString AGGREGATES_DENITRIFICATION_RATE = "aggregates denitrification rate"; - QString DENIT_GAS_CONSUMPTION = "denit gas consumption"; - QString DENIT_GAS_PRODUCTION = "soil organic matter gas production" ; - QString SOLUTION_DENITRIFICATION_TOTAL = "soil solution denitrification total"; - QString SOLUTION_DENITRIFICATION_RATE = "soil solution denitrification rate"; - QString CROP_RESIDUES = "crop residues"; - QString CROP_RESIDUES_DEPTH = "crop residues depth"; - QString CROP_RESIDUES_GCGMS = "crop residues gcgms"; - QString CROP_RESIDUES_NC = "crop residues n c"; - QString MULCHCONTACT_DECOMPOSITION_SOLUTESINK = "mulch contact decomposition solute sink"; - QString MULCHCONTACT_DECOMPOSITION_SOLUTESOURCE = " mulch contact decomposition solute source"; - QString ORGANICFERT_INCORPORATION_DEPTH = "organicfert incorporation depth"; - QString ORGANICFERT_POOLS = "organicfert pools"; - QString ORGANICFERT_POOLS_GCGMS = "organicfert pools gcgms"; - QString ORGANICFERT_POOLS_NC = "organicfert pools n c"; - QString ORGANICMATTER_POOLS_CHANGE = "soil organic matter pools change"; - QString ROOT_BIOMASS = "root biomass"; - QString SOLUTION_PH = "soil solution pH"; - QString ORGANICMATTER_GAS_CONSUMPTIONCUMPROF = "soil organic matter gas consumptioncumprof"; - QString ORGANICMATTER_GAS_CONSUMTPTIONCUMPROFTIME = " soil organic matter gas consumptioncumproftime"; - QString ORGANICMATTER_GAS_PRODUCTIONCUMPROF = "soil organic matter gas productioncumprof"; - QString ORGANICMATTER_GAS_PRODUCTIONCUMPROFTIME = "soil organic matter gas productioncumproftime"; - QString ORGANICMATTER_HUMIFICATION_CUMPROF = "soil organic matter humification cumprof"; Licence: c b e a Page: 27 / 56
- QString ORGANICMATTER_HUMIFICATION_CUMPROFTIME = "soil organic matter humification cumproftime"; - QString ORGANICMATTER_HUMIFICATION_RATE = "soil organic matter humification rate"; - QString ORGANICMATTER_IMOBILIZATION_CUMPROF = "soil organic matter imobilization cumprof"; - QString ORGANICMATTER_IMOBILIZATION_CUMPROFTIME = "soil organic matter imobilization cumproftime"; - QString ORGANICMATTER_IMOBILIZATION_RATE = "soil organic matter imobilization rate"; - QString ORGANICMATTER_MINERALIZATION_CUMPROF = "soil organic matter mineralization cumprof"; - QString ORGANICMATTER_MINERALIZATION_CUMPROFTIME = "soil organic matter mineralization cumproftime"; - QString ORGANICMATTER_MINERALIZATION_RATE = "soil organic matter mineralization rate"; - QString ORGANICMATTER_NITRIFICATION_CUMPROF = "soil organic matter nitrification cumprof"; - QString ORGANICMATTER_NITRIFICATION_CUMPROFTIME = "soil organic matter nitrification cumproftime"; - QString ORGANICMATTER_NITRIFICATION_RATE = "soil organic matter nitrification rate"; - QString ORGANICMATTER_POOLS_C13 = "soil organic matter pools c13"; - QString ORGANICMATTER_POOLS_GCGMS = "soil organic matter pools gcgms"; - QString ORGANICMATTER_POOLS_NC = "soil organic matter pools n c"; - QString ORGANICMATTER_POOLS_N15 = "soil organic matter pools n15"; - QString ORGANICMATTER_POOLS_RATE = "soil organic matter pools rate"; - QString ORGANICMATTER_SOLUTES_CONSUMPTIONCUMPROF = " soil organic matter solutes consumptioncumprof"; - QString ORGANICMATTER_SOLUTES_CONSUMPTIONCUMPROFTIME = "soil organic matter solutes consumptioncumproftime"; - QString ORGANICMATTER_SOLUTES_PRODUCTIONCUMPROF = "soil organic matter solutes productioncumprof"; - QString ORGANICMATTER_SOLUTES_PRODUCTIONCUMPROFTIME = "soil organic matter solutes productioncumproftime"; - QString CARBON_HUMIFICATION_RATE = "carbon humification rate"; - QString CARBON_HUMIFICATION_CUMPROF = "carbon humification cumprof"; - QString CARBON_HUMIFICATION_CUMPROFTIME = "carbon humification cumproftime"; - QString ORGANICMATTER_GAS_PRODUCTION = "soil organic matter gas production"; - QString ORGANICMATTER_SOLUTES_CONSUMPTION = "soil organic matter solutes consumption"; - QString ORGANICMATTER_SOLUTES_PRODUCTION = "soil organic matter solutes production"; Licence: c b e a Page: 28 / 56
Vous pouvez aussi lire