• Aucun résultat trouvé

Réinvestir les scénarios de test de la plate-forme d'apprentissage Moodle pour stimuler les échanges sur ces fonctionnalités

N/A
N/A
Protected

Academic year: 2022

Partager "Réinvestir les scénarios de test de la plate-forme d'apprentissage Moodle pour stimuler les échanges sur ces fonctionnalités"

Copied!
40
0
0

Texte intégral

(1)

Réinvestir les scénarios de test de la plate-forme d'apprentissage Moodle

pour stimuler les échanges sur ces fonctionnalités

Alain Corbière

alain.corbiere@univ-lemans.fr

(2)

Réinvestir les scénarios de test de la plate-forme d'apprentissage Moodle

pour stimuler les échanges sur ces

fonctionnalités

(3)

Réinvestir les scénarios de test de la plate-forme d'apprentissage Moodle

pour stimuler les échanges sur ces fonctionnalités

@mod @mod_label

Feature: Check label visibility works

In order to check label visibility works As a teacher

I should create label activity @javascript

Scenario: Hidden label activity should be show as hidden.

Given the following "courses" exist:

| fullname | shortname | category | | Test | C1 | 0 |

And the following "course enrolments" exist:

| user | course | role |

| admin | C1 | editingteacher | Given I log in as "admin"

And I follow "Test"

And I turn editing mode on

When I add a "label" to section "1" and I fill the form with:

| Label text | Swanky label | | Visible | Hide |

Then "Swanky label" activity should be hidden

\mod\label\tests\behat\label_visibility.feature (version 2.9.0)

(4)

Utilise un langage semi-formel (Gherkin)

→ Concepts communs

→ Fonctionnalité (Feature)

→ Scénario (Scenario)

plate-forme d'apprentissage Moodle pour stimuler les échanges sur ces

fonctionnalités

(5)

Utilise un langage semi-formel (Gherkin)

→ Structure commune

→ u ne fonctionnalité décrit plusieurs scénarios

→ Une fonctionnalité répond à trois questions

→ Quel est son intérêt ?

→ Qui en bénéficie ?

→ Que fait-elle ?

Réinvestir les scénarios de test de la plate-forme d'apprentissage Moodle

pour stimuler les échanges sur ces fonctionnalités

(6)

Feature: Check label visibility works

In order to check label visibility works As an teacher

I should create label activity

\mod\label\tests\behat\label_visibility.feature (version 2.9.0) plate-forme d'apprentissage Moodle

pour stimuler les échanges sur ces fonctionnalités

(7)

Feature: (titre de la fonctionnalité) In order to (Quel est son intérêt ?) As (Qui en bénéficie ?)

I (Que fait-elle ?)

Réinvestir les scénarios de test de la plate-forme d'apprentissage Moodle

pour stimuler les échanges sur ces fonctionnalités

\mod\label\tests\behat\label_visibility.feature (version 2.9.0)

(8)

Utilise un langage semi-formel (Gherkin)

→ Structure commune

→ u ne fonctionnalité décrit plusieurs scénarios

→ Un scénario répond à trois questions

→ Quelle est la situation initiale ?

→ Quel est l’événement à observer ?

→ Quel est le résultat attendu ?

plate-forme d'apprentissage Moodle pour stimuler les échanges sur ces

fonctionnalités

(9)

Réinvestir les scénarios de test de la plate-forme d'apprentissage Moodle

pour stimuler les échanges sur ces fonctionnalités

@mod @mod_label

Feature: Check label visibility works

In order to check label visibility works As a teacher

I should create label activity @javascript

Scenario: Hidden label activity should be show as hidden.

Given the following "courses" exist:

| fullname | shortname | category | | Test | C1 | 0 |

And the following "course enrolments" exist:

| user | course | role |

| admin | C1 | editingteacher | Given I log in as "admin"

And I follow "Test"

And I turn editing mode on

When I add a "label" to section "1" and I fill the form with:

| Label text | Swanky label | | Visible | Hide |

Then "Swanky label" activity should be hidden

\mod\label\tests\behat\label_visibility.feature (version 2.9.0)

(10)

Scenario: (description d'un comportement attendu) Given (Quelle est la situation initiale ?)

When (Quel est l’événement à observer ?) Then (Quel est le résultat attendu ?)

plate-forme d'apprentissage Moodle pour stimuler les échanges sur ces

fonctionnalités

\mod\label\tests\behat\label_visibility.feature (version 2.9.0)

(11)

Réinvestir les scénarios de test de la plate-forme d'apprentissage Moodle

pour stimuler les échanges sur ces fonctionnalités

Feature

Scenario

Step

type: Given|When|Then etc..

*

*

@mod @mod_label

Feature: Check label visibility works

In order to check label visibility works As a teacher

I should create label activity @javascript

Scenario: Hidden label activity should be show as hidden.

Given the following "courses" exist:

| fullname | shortname | category | | Test | C1 | 0 |

And the following "course enrolments" exist:

| user | course | role |

| admin | C1 | editingteacher | Given I log in as "admin"

And I follow "Test"

And I turn editing mode on

When I add a "label" to section "1" and I fill the form with:

| Label text | Swanky label | | Visible | Hide |

Then "Swanky label" activity should be hidden @javascript

Scenario: Visible label activity should be shown as visible.

Given the following "courses" exist:

| fullname | shortname | category | | Test | C1 | 0 |

And the following "course enrolments" exist:

| user | course | role |

| admin | C1 | editingteacher | Given I log in as "admin"

And I follow "Test"

And I turn editing mode on

When I add a "label" to section "1" and I fill the form with:

| Label text | Swanky label | | Visible | Show |

Then "Swanky label" activity should be visible

(12)

Utilise un langage semi-formel (Gherkin)

→ Créé dans le cadre du projet Cucumber de la communauté Ruby ;

plate-forme d'apprentissage Moodle pour stimuler les échanges sur ces

fonctionnalités

https://github.com/cucumber/cucumber/wiki/Gherkin

« Gherkin is the language that Cucumber understands. It is a Business Readable, Domain Specific Language that lets you describe software’s behaviour without detailing how that behaviour is implemented.

Gherkin serves two purposes — documentation and automated tests. The third is a bonus feature — when it yells in red it’s talking to you, telling you what code you should write. »

(13)

Réinvestir les scénarios de test de la plate-forme d'apprentissage Moodle

pour stimuler les échanges sur ces

fonctionnalités

(14)

plate-forme d'apprentissage Moodle pour stimuler les échanges sur ces

fonctionnalités

« The aim of this integration is to allow Moodle components to have its own set of features and steps definitions, this allows BDD (behavior-driven development) in Moodle and allows us to execute periodically the whole set of tests to detect regressions and test the Moodle features in different environments (browsers, DBs engines, web servers...). »

https://en.wikipedia.org/wiki/Behavior-driven_development https://docs.moodle.org/dev/Behat_integration

« Although BDD is principally an idea about how software development should be managed by both business interests and technical insight, the practice of BDD does assume the use of specialized software tools to support the development process….

….Acceptance criteria should be written in terms of scenarios and implemented as classes: Given [initial context], when [event occurs], then [ensure some outcomes]....

Starting from this point, North and others developed the BDD framework over a period of years, finally framing it as a communication and collaboration framework for developers, QA and non- technical or business participants in a software project. »

(15)

Réinvestir les scénarios de test de la plate-forme d'apprentissage Moodle

pour stimuler les échanges sur ces fonctionnalités

projet Behat choisi par Moodle

→ Inspiré par le projet Cucumber de la communauté Ruby ;

→ Encouragé la collaboration entre les différents acteurs d'un projet de développement.

https://docs.moodle.org/dev/Process

→ Utilisateur

→ Développeur

→ Validation du code (Automate)

→ Intégrateur

→ Testeur

→ Maintenance

… the use of specialized software tools to support the development process …

(16)

plate-forme d'apprentissage Moodle pour stimuler les échanges sur ces

fonctionnalités

Moodle 2.5

43 Features

147 Definitions

Moodle 2.6

53 Features

217 Definitions

Moodle 2.8

99 Features

255 Definitions Moodle

2.7

92 Features

235 Definitions

Moodle 2.9

331 Features

254 Definitions Moodle

2.4

0 Features

0 Definitions

Feature * Scenario * Step

12/2012 05/2013 11/2013 05/2014 11/2014 05/2015

(17)

Réinvestir les scénarios de test de la plate-forme d'apprentissage Moodle

pour stimuler les échanges sur ces fonctionnalités

Moodle 2.5

43 Features

147 Step definitions

Moodle 2.6

53 Features

217 Step definitions

Moodle 2.8

99 Features

255 Step definitions Moodle

2.7

92 Features

235 Step definitions

Moodle 2.9

331 Features

254 Step definitions Moodle

2.4

0 Features

0 Step definitions

behat -dl behat.yml

Feature Scenario Step

type: Given|When|Then etc..

Step definition

type: Given|When|Then etc..

* *

<< matching >>

(18)

plate-forme d'apprentissage Moodle pour stimuler les échanges sur ces

fonctionnalités

Moodle 2.5

43 Features

147 Step definitions

Moodle 2.6

53 Features

217 Step definitions

Moodle 2.8

99 Features

255 Step definitions Moodle

2.7

92 Features

235 Step definitions

Moodle 2.9

331 Features

254 Step definitions Moodle

2.4

0 Features

0 Step definitions

Logique de la plate-forme (exprime les moyens)

behat -dl behat.yml Logique métier (exprime les besoins)

Feature Scenario Step

type: Given|When|Then etc..

Step definition

type: Given|When|Then etc..

* *

<< matching >>

(19)

Given

page course should

Checks

of

quiz mode

an

into

can

P

pages may

tree

was Put

looks out

left

activity

SELECTORSTRING

value

exist select

table workshop

move

advanced

grade

does action

values before

fields

actions used

Waits

remove relative

Chooses import

must

IDNUMBERSTRING dialogue been

system

specific matches

loaded TEXTSTRING

message expand LINKSTRING

break Uploads

down

main comment named

heading

toggle

right

listings

behat -dl Concepts utilisés dans la définition d'une étape (Step)

… terms of scenarios ... (dictionnaire de concepts)

(20)

Feature

Scenario Background

Step

* 0..1

* *

\backup\util\ui\tests\behat\backup_courses.feature (version 2.9.0)

Background d'un Feature: Décrit la séquence d'étapes (Steps) exécutée systématiquement avant chaque

scénario.

plate-forme d'apprentissage Moodle pour stimuler les échanges sur ces

fonctionnalités

… a communication and collaboration framework for developers, ... or business participants in a software project …

(21)

Feature

Scenario Background

Step

* 0..1

* *

\backup\util\ui\tests\behat\backup_courses.feature (version 2.9.0)

@core @core_backup

Feature: Backup Moodle courses

In order to save and store course contents As an admin

I need to create backups of courses Background:

Given the following "courses" exist:

| fullname | shortname | category | numsections | | Course 1 | C1 | 0 | 10 |

| Course 2 | C2 | 0 | 2 |

And the following "activities" exist:

| activity | course | idnumber | name | intro | section |

| assign | C2 | assign1 | Test assign | Assign description | 1 | | data | C2 | data1 | Test data | Database description | 2 | And I log in as "admin"

@javascript

Scenario: Backup a course providing options

When I backup "Course 1" course using this options:

| Confirmation | Filename | test_backup.mbz | Then I should see "Restore"

And I click on "Restore" "link" in the "test_backup.mbz" "table_row"

And I should see "URL of backup"

And I should see "Anonymize user information"

Réinvestir les scénarios de test de la plate-forme d'apprentissage Moodle

pour stimuler les échanges sur ces fonctionnalités

… a communication and collaboration framework for developers, ... or business participants in a software project …

(22)

\backup\util\ui\tests\behat\backup_courses.feature (version 2.9.0)

Feature Tag

Scenario Background

Step

* 0..1

* *

*

*

Tag d'un Feature ou d'un Scenario:

Permet de regrouper des Features ou des Scenarios indépendamment du nom du fichier ou du nom du

répertoire les contenant.

plate-forme d'apprentissage Moodle pour stimuler les échanges sur ces

fonctionnalités

… a communication and collaboration framework for developers, ... or business participants in a software project …

(23)

\backup\util\ui\tests\behat\backup_courses.feature (version 2.9.0)

@core @core_backup

Feature: Backup Moodle courses

In order to save and store course contents As an admin

I need to create backups of courses Background:

Given the following "courses" exist:

| fullname | shortname | category | numsections | | Course 1 | C1 | 0 | 10 |

| Course 2 | C2 | 0 | 2 |

And the following "activities" exist:

| activity | course | idnumber | name | intro | section |

| assign | C2 | assign1 | Test assign | Assign description | 1 | | data | C2 | data1 | Test data | Database description | 2 | And I log in as "admin"

@javascript

Scenario: Backup a course providing options

When I backup "Course 1" course using this options:

| Confirmation | Filename | test_backup.mbz | Then I should see "Restore"

And I click on "Restore" "link" in the "test_backup.mbz" "table_row"

And I should see "URL of backup"

And I should see "Anonymize user information"

Feature Tag

Scenario Background

Step

* 0..1

* *

*

*

@javascript: Toutes les étapes (Steps) seront exécutées sur un navigateur capable d'exécuter du code JavaScript.

Réinvestir les scénarios de test de la plate-forme d'apprentissage Moodle

pour stimuler les échanges sur ces fonctionnalités

… test the Moodle features in different environments …

(24)

\backup\util\ui\tests\behat\backup_courses.feature (version 2.9.0)

@core @core_backup

Feature: Backup Moodle courses

In order to save and store course contents As an admin

I need to create backups of courses Background:

Given the following "courses" exist:

| fullname | shortname | category | numsections | | Course 1 | C1 | 0 | 10 |

| Course 2 | C2 | 0 | 2 |

And the following "activities" exist:

| activity | course | idnumber | name | intro | section |

| assign | C2 | assign1 | Test assign | Assign description | 1 | | data | C2 | data1 | Test data | Database description | 2 | And I log in as "admin"

@javascript

Scenario: Backup a course providing options

When I backup "Course 1" course using this options:

| Confirmation | Filename | test_backup.mbz | Then I should see "Restore"

And I click on "Restore" "link" in the "test_backup.mbz" "table_row"

And I should see "URL of backup"

And I should see "Anonymize user information"

Feature Tag

Scenario Background

Step

* 0..1

* *

*

*

@componentname: Chaque Feature exécuté est lié à un des composants de Moodle.

plate-forme d'apprentissage Moodle pour stimuler les échanges sur ces

fonctionnalités

… to allow Moodle components to have its own

set of features and steps definitions …

(25)

Réinvestir les scénarios de test de la plate-forme d'apprentissage Moodle

pour stimuler les échanges sur ces fonctionnalités

@core @core_completion

Feature: Allow students to manually mark an activity as complete In order to let students decide when an activity is completed As a teacher

I need to allow students to mark activities as completed @javascript

Scenario: Mark an activity as completed Given the following "courses" exist:

| fullname | shortname | category | | Course 1 | C1 | 0 |

And the following "users" exist:

| username | firstname | lastname | email |

| teacher1 | Teacher | Frist | teacher1@example.com | | student1 | Student | First | student1@example.com | And the following "course enrolments" exist:

| user | course | role |

| teacher1 | C1 | editingteacher | | student1 | C1 | student |

And the following config values are set as admin:

| enablecompletion | 1 | | enableavailability | 1 | And I log in as "teacher1"

And I am on site homepage And I follow "Course 1"

And I turn editing mode on

And I click on "Edit settings" "link" in the "Administration" "block"

And I set the following fields to these values:

| Enable completion tracking | Yes | And I press "Save and display"

When I add a "Forum" to section "1" and I fill the form with:

| Forum name | Test forum name |

| Description | Test forum description |

Then "Student First" user has not completed "Test forum name" activity And I log out

And I log in as "student1"

And I am on site homepage And I follow "Course 1"

And I press "Mark as complete: Test forum name"

And I log out

And I log in as "teacher1"

And I am on site homepage And I follow "Course 1"

And I expand "Reports" node

And I follow "Activity completion"

And "Student First" user has completed "Test forum name" activity

\completion\tests\behat\enable_manual_complete_mark.feature

… set of tests to detect regressions …

(26)

\lib\tests\behat\behat_hooks.php

\vendor\behat\behat\src\Behat\Behat\Tester\ScenarioTester.php

plate-forme d'apprentissage Moodle pour stimuler les échanges sur ces

fonctionnalités

ScenarioTester

ScenarioTester

behat_hooks

behat_hooks

behat_util

behat_util before_scenario()

reset_all_data()

… the use of specialized software tools to support the development process …

Gherkin parser Feature tester

Scenario tester

Step tester

more step?

more scenario?

more feature?

(27)

Réinvestir les scénarios de test de la plate-forme d'apprentissage Moodle pour stimuler les échanges sur ces

fonctionnalités

(28)

Supporter le travail collaboratif

Retranscrire l'univers du discours

plate-forme d'apprentissage Moodle pour stimuler les échanges sur ces

fonctionnalités

Exemple :

(29)

Retranscrire l'évolution d'une fonctionnalité pour collaborer avec une communauté (Moodle + GISMO) ;

Réinvestir les scénarios de test de la plate-forme d'apprentissage Moodle pour stimuler les échanges sur ces

fonctionnalités

Acteurs (Développeurs, …) Utilisateurs (Administrateur,

enseignant, ...)

Écrit Guide Écrit

Écrit

En + des 331 Features

… a communication and collaboration framework for developers, ... or business participants in a software project …

(30)

Retranscrire l'évolution d'une fonctionnalité pour collaborer avec une communauté (Moodle + GISMO) ;

→ Utilisateur ← Scénarios pour tester l'évolution du composant GISMO

Adapter aux différentes versions de Moodle.

→ Développeur

→ Validation du code

→ Intégrateur Acteurs bénéficiaires de cette formalisation

→ Testeur

→ Maintenance

plate-forme d'apprentissage Moodle pour stimuler les échanges sur ces

fonctionnalités

https://docs.moodle.org/dev/Process

… a communication and collaboration framework for developers, ... or business participants in a software project …

(31)

Supporter le travail collaboratif

Retranscrire l'univers du discours

Faciliter la réutilisation, l'adaptation et la maintenance

Réinvestir les scénarios de test de la plate-forme d'apprentissage Moodle pour stimuler les échanges sur ces

fonctionnalités

Exemple :

OpenGLM

(32)

plate-forme d'apprentissage Moodle pour stimuler les échanges sur ces

fonctionnalités

@mod @mod_forum

Feature: Teachers can edit or delete any forum post In order to refine the forum contents

As a teacher

I need to edit or delete any user's forum posts Background:

Given the following "users" exist:

| username | firstname | lastname | email | | teacher1 | Teacher | 1 | teacher1@example.com | | student1 | Student | 1 | student1@example.com | And the following "courses" exist:

| fullname | shortname | category | | Course 1 | C1 | 0 |

And the following "course enrolments" exist:

| user | course | role |

| teacher1 | C1 | editingteacher | | student1 | C1 | student | And I log in as "teacher1"

And I follow "Course 1"

And I turn editing mode on

And I add a "Forum" to section "1" and I fill the form with:

| Forum name | Test forum name |

| Description | Test forum description |

And I add a new discussion to "Test forum name" forum with:

| Subject | Teacher post subject | | Message | Teacher post message | And I log out

And I log in as "student1"

And I follow "Course 1"

And I reply "Teacher post subject" post from "Test forum name" forum with:

| Subject | Student post subject | | Message | Student post message | @javascript

Scenario: A teacher can delete another user's posts Given I log out

And I log in as "teacher1"

When I follow "Course 1"

And I follow "Test forum name"

And I follow "Teacher post subject"

And I click on "Delete" "link" in the "//div[contains(concat(' ', normalize-space(@class), ' '), ' forumpost ')][contains(., 'Student post subject')]" "xpath_element"

And I press "Continue"

Then I should not see "Student post subject"

And I should not see "Student post message"

OpenGLM ↔ Moodle

IMS LD ↔ Gherkin

(33)

Réutiliser et adapter les scénarios existants pour créer des liens avec d'autres acteurs humains/logiciels.

Interfonctionnement : Objectifs

→ fédérer deux aspects de la formalisation dans le domaine de l'ingénierie pédagogique

OpenGLM ↔ Moodle

éditeur graphique ↔ langage textuel IMS LD ↔ Gherkin

Réinvestir les scénarios de test de la plate-forme d'apprentissage Moodle pour stimuler les échanges sur ces

fonctionnalités

… a communication and collaboration framework for developers, ... or business participants in a software project …

(34)

Réutiliser et adapter les scénarios existants pour créer des liens avec d'autres acteurs humains/logiciels.

Interfonctionnement : Moyens

→ Cucumber (écrit avec le langage de programmation Ruby)

Protocole pour invoquer des étapes sur des applications distantes ← Scénarios pour spécifier son comportement

→ Behat (écrit avec le langage de programmation Php)

Protocole à intégrer suivant le comportement spécifié par le projet Cucumber plate-forme d'apprentissage Moodle pour stimuler les échanges sur ces

fonctionnalités

… a communication and collaboration framework for developers, ... or business participants in a software project …

https://github.com/cucumber/cucumber/wiki/Wire-Protocol

(35)

Supporter le travail collaboratif

Retranscrire l'univers du discours

Faciliter la réutilisation, l'adaptation et la maintenance

Réinvestir l'effort de formalisation de la communauté Moodle

Réinvestir les scénarios de test de la plate-forme d'apprentissage Moodle pour stimuler les échanges sur ces

fonctionnalités

Exemple :

moodle moodle

(36)

Intégrer au début du processus de test le contenu d'un cours exporté d'une plate-forme utilisée dans des conditions réelles.

plate-forme d'apprentissage Moodle pour stimuler les échanges sur ces

fonctionnalités

ScenarioTester

ScenarioTester

behat_hooks

behat_hooks

behat_util

behat_util

testing_util

testing_util

tabledata.ser

tabledata.ser install_site()

store_database_state()

before_scenario()

reset_all_data()

reset_database()

… a communication and collaboration framework for developers, ... or business participants in a software project …

Gherkin parser Feature tester

Scenario tester

Step tester

more step?

more scenario?

more feature?

(37)

Supporter le travail collaboratif

Retranscrire l'univers du discours

Faciliter la réutilisation, l'adaptation et la maintenance

Réinvestir l'effort de formalisation de la communauté Moodle

Analyser les scénarios existants et les pratiques associées

Se contraindre aux conventions d'un langage

Garder à l'esprit qu'il s'agit d'une spécification exécutable

Nécessiter de configurer Moodle

Réinvestir les scénarios de test de la plate-forme d'apprentissage Moodle pour stimuler les échanges sur ces

fonctionnalités

(38)

Réinvestir les scénarios de test de la plate-forme d'apprentissage Moodle

pour stimuler les échanges sur ces fonctionnalités

Alain Corbière

alain.corbiere@univ-lemans.fr

(39)

Réinvestir les scénarios de test de la plate-forme d'apprentissage Moodle

pour stimuler les échanges sur ces fonctionnalités

https://docs.moodle.org/dev/Behat_integration

Étapes d'installation : 1

curl http://getcomposer.org/installer | php

php composer.phar install (installation à partir de dépôt de libraires Php)

2

modification du fichier /config.php

3

php admin/tool/behat/cli/init.php (configuration en mode « test » de la plate-forme) → Création d'un base de données

→ Identifier l'ensemble des fonctionnalités (features) → Préparer le fichier de configuration de l'outil Behat

(40)

Ressources

Moodle  http://moodle.org/

Behat http://behat.org https://github.com/Behat/Behat

GISMO  http://sourceforge.net/projects/gismo/

OpenGLM http://sourceforge.net/projects/openglm/

IMS LD http://www.imsglobal.org/learningdesign/

Références

Documents relatifs

Au total, Ie gouvemement liberal a coupe 4,5 milliards de dollars sur deux ans dans Ie Transfert social canadien, dont 1,3 milliard pour Ie Quebec et une somme evaluee a 750

Page 27 sur 58 Après avoir consulté les informations sur le chantier, s’il manque un élément dont vous avez besoin pour prendre votre décision sur l’autorisation, cliquez sur

Une autre particularité de l’entrepôt, et non des moindres, est l’importance de son système d’information (Warehouse Management System) qui n’est pas seule- ment une aide

Les limites territoriales communales sont inadaptées, mais les concurrences politiques empêchent parfois de revoir constructivement ces limites. Des expériences spontanées

Ensuite, on doit faire un test d’entrée de ces pré-requis et en cas d'échec au niveau du test, une orientation sera possible vers d'autres ressources d’aides permettant

Mais le chercheur a désormais à sa disposition des logiciels ou modules de gestion documentaire type Zotero (module du navigateur Firefox), qui permettent de se

Ce tutoriel vous explique, pas à pas, comment accéder à l’espace d’évaluation sur Moodle, comment fonctionne l’activité « test » et comment répondre aux différents types

La LIBS s’avère être une technique plus rapide et plus économique pour sonder la présence d’hydrogène et offrant une meilleure résolution que les techniques