Testing Moodle functionality automatically

David Monllaó
David MonllaóLead Data Scientist
Testing Moodle functionality
automatically
A quick overview of the process we follow
at Moodle HQ to test Moodle functionality
automatically.
Who I am
David Monllaó - Test engineer at Moodle HQ
Integration team
Points
From a behaviour description to a tested
functionalities report.
1. Human-friendly language
2. Real users simulation
3. Running automatically
Human-friendly language
Scenario: Add a blog entry with valid data
Given I log in as "admin"
And I expand "Blogs" node
And I follow "Add a new entry"
And I fill the moodle form with:
| Entry title | I'm the name |
| Blog entry body | I'm the description |
When I press "Save changes"
Then I should see "I'm a description"
And I should not see "Required"
Human-friendly language
When I press "Save changes"
• “Save changes” is a variable, we read the page contents
looking for a button labelled as “Save changes”.
Then I should see "I'm a description"
• “I'm a description” is a variable, we read the page
contents looking for the “I'm a description” text.
Real users simulation
We use an open source project named Selenium.
As the official Selenium documentation states:
“Selenium automates browsers. That's it”
Is a server application that receives commands
(click or type keyboard keys) that it executes in a
browser.
Real users simulation
From human-friendly sentences to Selenium
commands.
1. When I press "Save changes"
2. When I press $variable
3. Find <button value=”$variable”> identifier in the page
contents
4. Send a click/ID command to Selenium
5. Selenium executes the click in the “Save changes” button like
a real user does
Real users simulation
Running automatically
• Moodle codebase includes around 160 different scenarios
(90 features)
• We use Jenkins Continuous Integration server to:
o Run the features in a regular basis, ensuring new code changes don't break
any functionality
o Release new moodle versions knowing that X of Moodle's features works as
expected
o Run all those features in multiple combinations of Browsers and Operating
Systems
• We will continue adding new feature files to expand
Moodle's functionalities coverage.
Running automatically
Running automatically
Anyone can do it, all is included in Moodle's
codebase, can be useful to:
• Contribute new feature files describing Moodle's
functionalities
• Add feature files for the 3rd party plugins you develop
• Run the test suite to ensure your local code modifications
are not breaking any of Moodle's functionalities
More information
• Moodle Docs – Acceptance testing
o
http://docs.moodle.org/dev/Acceptance_testing
• Selenium
o
http://docs.seleniumhq.org/
• Jenkins Continuous Integration
o
http://jenkins-ci.org/
• Behat
o
http://behat.org
Any questions?
Thanks for your attention!
Moodle HQ (http://moodle.com)
David Monllaó (davidm@moodle.com)
1 of 13

Recommended

Continuous Integration: Improving Quality in Moodle by
Continuous Integration: Improving Quality in Moodle Continuous Integration: Improving Quality in Moodle
Continuous Integration: Improving Quality in Moodle Dan Poltawski
2.2K views20 slides
How integrators bring you a better Moodle by
How integrators bring you a better MoodleHow integrators bring you a better Moodle
How integrators bring you a better MoodleDan Poltawski
1K views24 slides
Run Selenium Tests With Microsoft Test Manager by
Run Selenium Tests With Microsoft Test ManagerRun Selenium Tests With Microsoft Test Manager
Run Selenium Tests With Microsoft Test ManagerDaniel Herken
750 views21 slides
[Webinar] Continuous Testing Done Right: Test Automation at the World's Leadi... by
[Webinar] Continuous Testing Done Right: Test Automation at the World's Leadi...[Webinar] Continuous Testing Done Right: Test Automation at the World's Leadi...
[Webinar] Continuous Testing Done Right: Test Automation at the World's Leadi...Applitools
1.5K views89 slides
UI Testing Automation by
UI Testing AutomationUI Testing Automation
UI Testing AutomationAgileEngine
10.3K views18 slides
2013 10-28 php ug presentation - ci using phing and hudson by
2013 10-28 php ug presentation - ci using phing and hudson2013 10-28 php ug presentation - ci using phing and hudson
2013 10-28 php ug presentation - ci using phing and hudsonShreeniwas Iyer
3.3K views31 slides

More Related Content

What's hot

Automating testing with open source tools (1) by
Automating testing with open source tools (1)Automating testing with open source tools (1)
Automating testing with open source tools (1)Rohit Biradar
22 views20 slides
Automation using Javascript by
Automation using JavascriptAutomation using Javascript
Automation using Javascriptkhanhdang1214
699 views23 slides
2310 b 02 by
2310 b 022310 b 02
2310 b 02Krazy Koder
447 views17 slides
Automated Builds And UI Testing in SharePoint 2010 Development by
Automated Builds And UI Testing in SharePoint 2010 DevelopmentAutomated Builds And UI Testing in SharePoint 2010 Development
Automated Builds And UI Testing in SharePoint 2010 DevelopmentChris O'Brien
2.2K views34 slides
UI Testing Automation - Alex Kalinovsky - CreamTec LLC by
UI Testing Automation - Alex Kalinovsky - CreamTec LLCUI Testing Automation - Alex Kalinovsky - CreamTec LLC
UI Testing Automation - Alex Kalinovsky - CreamTec LLCJim Lane
1.8K views18 slides
Final presentation by
Final presentationFinal presentation
Final presentationdsmo223
109 views8 slides

What's hot(20)

Automating testing with open source tools (1) by Rohit Biradar
Automating testing with open source tools (1)Automating testing with open source tools (1)
Automating testing with open source tools (1)
Rohit Biradar22 views
Automation using Javascript by khanhdang1214
Automation using JavascriptAutomation using Javascript
Automation using Javascript
khanhdang1214699 views
Automated Builds And UI Testing in SharePoint 2010 Development by Chris O'Brien
Automated Builds And UI Testing in SharePoint 2010 DevelopmentAutomated Builds And UI Testing in SharePoint 2010 Development
Automated Builds And UI Testing in SharePoint 2010 Development
Chris O'Brien2.2K views
UI Testing Automation - Alex Kalinovsky - CreamTec LLC by Jim Lane
UI Testing Automation - Alex Kalinovsky - CreamTec LLCUI Testing Automation - Alex Kalinovsky - CreamTec LLC
UI Testing Automation - Alex Kalinovsky - CreamTec LLC
Jim Lane1.8K views
Final presentation by dsmo223
Final presentationFinal presentation
Final presentation
dsmo223109 views
MVP 2.0 Final Presentation by sammy93
MVP 2.0 Final PresentationMVP 2.0 Final Presentation
MVP 2.0 Final Presentation
sammy93315 views
Getting Started with Selenium by Dave Haeffner
Getting Started with SeleniumGetting Started with Selenium
Getting Started with Selenium
Dave Haeffner2K views
How to make your functional tests really quick by Mikalai Alimenkou
How to make your functional tests really quickHow to make your functional tests really quick
How to make your functional tests really quick
Mikalai Alimenkou2.9K views
Monufacture: Effortless Test Data for MongoDB by Tom Leach
Monufacture: Effortless Test Data for MongoDBMonufacture: Effortless Test Data for MongoDB
Monufacture: Effortless Test Data for MongoDB
Tom Leach828 views
Scaling Engineering with Docker by Tom Leach
Scaling Engineering with DockerScaling Engineering with Docker
Scaling Engineering with Docker
Tom Leach1.6K views
Automated Testing using JavaScript by Simon Guest
Automated Testing using JavaScriptAutomated Testing using JavaScript
Automated Testing using JavaScript
Simon Guest11.9K views
20060712 automated model based testing of community-driven open-source gui ap... by Will Shen
20060712 automated model based testing of community-driven open-source gui ap...20060712 automated model based testing of community-driven open-source gui ap...
20060712 automated model based testing of community-driven open-source gui ap...
Will Shen332 views
Web automation with Selenium for software engineers by Mikalai Alimenkou
Web automation with Selenium for software engineersWeb automation with Selenium for software engineers
Web automation with Selenium for software engineers
Mikalai Alimenkou3.2K views
Как не нужно писать Gherkin сценарии by Andrii Dzynia
Как не нужно писать Gherkin сценарииКак не нужно писать Gherkin сценарии
Как не нужно писать Gherkin сценарии
Andrii Dzynia11.1K views

Viewers also liked

Lifecycle of a Moodle Bug - #mootus16 by
Lifecycle of a Moodle Bug - #mootus16Lifecycle of a Moodle Bug - #mootus16
Lifecycle of a Moodle Bug - #mootus16Dan Poltawski
1K views20 slides
Screencasting in Moodle: Does size matter? by
Screencasting in Moodle: Does  size matter?Screencasting in Moodle: Does  size matter?
Screencasting in Moodle: Does size matter?Mary Cooch
5.5K views28 slides
Tools and Tips for Moodle Developers - #mootus16 by
 Tools and Tips for Moodle Developers - #mootus16 Tools and Tips for Moodle Developers - #mootus16
Tools and Tips for Moodle Developers - #mootus16Dan Poltawski
2.7K views32 slides
Lightweight continuous delivery for small schools by
Lightweight continuous delivery for small schoolsLightweight continuous delivery for small schools
Lightweight continuous delivery for small schoolsCharles Fulton
600 views41 slides
How to improve your moodle site performance by
How to improve your moodle site performanceHow to improve your moodle site performance
How to improve your moodle site performanceDavid Monllaó
9.2K views13 slides
Use Your Noodle: Blending with Moodle by
Use Your Noodle: Blending with MoodleUse Your Noodle: Blending with Moodle
Use Your Noodle: Blending with MoodleMichelle Moore
6.4K views58 slides

Viewers also liked(20)

Lifecycle of a Moodle Bug - #mootus16 by Dan Poltawski
Lifecycle of a Moodle Bug - #mootus16Lifecycle of a Moodle Bug - #mootus16
Lifecycle of a Moodle Bug - #mootus16
Dan Poltawski1K views
Screencasting in Moodle: Does size matter? by Mary Cooch
Screencasting in Moodle: Does  size matter?Screencasting in Moodle: Does  size matter?
Screencasting in Moodle: Does size matter?
Mary Cooch5.5K views
Tools and Tips for Moodle Developers - #mootus16 by Dan Poltawski
 Tools and Tips for Moodle Developers - #mootus16 Tools and Tips for Moodle Developers - #mootus16
Tools and Tips for Moodle Developers - #mootus16
Dan Poltawski2.7K views
Lightweight continuous delivery for small schools by Charles Fulton
Lightweight continuous delivery for small schoolsLightweight continuous delivery for small schools
Lightweight continuous delivery for small schools
Charles Fulton600 views
How to improve your moodle site performance by David Monllaó
How to improve your moodle site performanceHow to improve your moodle site performance
How to improve your moodle site performance
David Monllaó9.2K views
Use Your Noodle: Blending with Moodle by Michelle Moore
Use Your Noodle: Blending with MoodleUse Your Noodle: Blending with Moodle
Use Your Noodle: Blending with Moodle
Michelle Moore6.4K views
Induction Moodle English by Roman_Dudler
Induction Moodle EnglishInduction Moodle English
Induction Moodle English
Roman_Dudler427 views
Unidades fundamentales de una computadora by maitor228
Unidades fundamentales de una computadoraUnidades fundamentales de una computadora
Unidades fundamentales de una computadora
maitor2281.4K views
TONI-4 Test Review by nicolalritter
TONI-4 Test ReviewTONI-4 Test Review
TONI-4 Test Review
nicolalritter27.5K views
Scaling Open edX with Kubernetes by Appsembler
Scaling Open edX with KubernetesScaling Open edX with Kubernetes
Scaling Open edX with Kubernetes
Appsembler7.5K views
Teka silang kata matematik by Nor Arbi
Teka silang kata matematikTeka silang kata matematik
Teka silang kata matematik
Nor Arbi5.9K views
Jenkins CI by haochenglee
Jenkins CIJenkins CI
Jenkins CI
haochenglee28.1K views
Getting started with Jenkins by Edureka!
Getting started with JenkinsGetting started with Jenkins
Getting started with Jenkins
Edureka!28.4K views
Seven Habits of Highly Effective Jenkins Users (2014 edition!) by Andrew Bayer
Seven Habits of Highly Effective Jenkins Users (2014 edition!)Seven Habits of Highly Effective Jenkins Users (2014 edition!)
Seven Habits of Highly Effective Jenkins Users (2014 edition!)
Andrew Bayer106.5K views

Similar to Testing Moodle functionality automatically

Efficient Automated Test Creation With Selenium IDE Plugins by
Efficient Automated Test Creation With Selenium IDE PluginsEfficient Automated Test Creation With Selenium IDE Plugins
Efficient Automated Test Creation With Selenium IDE PluginsSamit Badle
5K views55 slides
Workflow, Revisioning and Rules in Drupal by
Workflow, Revisioning and Rules in DrupalWorkflow, Revisioning and Rules in Drupal
Workflow, Revisioning and Rules in Drupalmewren
2.6K views28 slides
Selenium with testng and eclipse ide by
Selenium with testng and eclipse ideSelenium with testng and eclipse ide
Selenium with testng and eclipse ideTestertester Jaipur
64 views19 slides
Cs690 object oriented_software_engineering_team01_ report by
Cs690 object oriented_software_engineering_team01_ reportCs690 object oriented_software_engineering_team01_ report
Cs690 object oriented_software_engineering_team01_ reportKhushboo Wadhwani
870 views36 slides
Selenium training in chennai by
Selenium training in chennaiSelenium training in chennai
Selenium training in chennaiThecreating Experts
131 views17 slides
Selenium Training in Chennai by
Selenium Training in ChennaiSelenium Training in Chennai
Selenium Training in ChennaiThecreating Experts
107 views17 slides

Similar to Testing Moodle functionality automatically(20)

Efficient Automated Test Creation With Selenium IDE Plugins by Samit Badle
Efficient Automated Test Creation With Selenium IDE PluginsEfficient Automated Test Creation With Selenium IDE Plugins
Efficient Automated Test Creation With Selenium IDE Plugins
Samit Badle5K views
Workflow, Revisioning and Rules in Drupal by mewren
Workflow, Revisioning and Rules in DrupalWorkflow, Revisioning and Rules in Drupal
Workflow, Revisioning and Rules in Drupal
mewren2.6K views
Cs690 object oriented_software_engineering_team01_ report by Khushboo Wadhwani
Cs690 object oriented_software_engineering_team01_ reportCs690 object oriented_software_engineering_team01_ report
Cs690 object oriented_software_engineering_team01_ report
Khushboo Wadhwani870 views
Building a Module in Odoo 16 by Celine George
Building a Module in Odoo 16Building a Module in Odoo 16
Building a Module in Odoo 16
Celine George992 views
Getting started with workflow by seenu126
Getting started with workflowGetting started with workflow
Getting started with workflow
seenu126342 views
Everything you need to know about the Selenium IDE: Tutorial by pCloudy
Everything you need to know about the Selenium IDE: TutorialEverything you need to know about the Selenium IDE: Tutorial
Everything you need to know about the Selenium IDE: Tutorial
pCloudy11 views
BDD approach with Selenium RC by Mykola Kolisnyk
BDD approach with Selenium RCBDD approach with Selenium RC
BDD approach with Selenium RC
Mykola Kolisnyk2.6K views
WHY MOODLE PLUGIN DEVELOPMENT NEEDS APPROVAL by Aditi Sharma
WHY MOODLE PLUGIN DEVELOPMENT NEEDS APPROVALWHY MOODLE PLUGIN DEVELOPMENT NEEDS APPROVAL
WHY MOODLE PLUGIN DEVELOPMENT NEEDS APPROVAL
Aditi Sharma144 views
Code Camp Applying Modern Software Development Techniques To Ui Testing by ChristopherGTaylor
Code Camp  Applying Modern Software Development Techniques To Ui TestingCode Camp  Applying Modern Software Development Techniques To Ui Testing
Code Camp Applying Modern Software Development Techniques To Ui Testing
ChristopherGTaylor508 views
Integrate Shindig with Joomla by Anand Sharma
Integrate Shindig with JoomlaIntegrate Shindig with Joomla
Integrate Shindig with Joomla
Anand Sharma2K views
Instagram filters by Thinkful
Instagram filters Instagram filters
Instagram filters
Thinkful161 views
Basics of Joomla! by Saurabh Shah
Basics of Joomla! Basics of Joomla!
Basics of Joomla!
Saurabh Shah1.6K views

More from David Monllaó

Moodle learning analytics desde diferentes perspectivas (#mootgt19) by
Moodle learning analytics desde diferentes perspectivas (#mootgt19)Moodle learning analytics desde diferentes perspectivas (#mootgt19)
Moodle learning analytics desde diferentes perspectivas (#mootgt19)David Monllaó
336 views36 slides
Moodle learning analytics from different perspectives (#moothr19) by
Moodle learning analytics from different perspectives (#moothr19)Moodle learning analytics from different perspectives (#moothr19)
Moodle learning analytics from different perspectives (#moothr19)David Monllaó
1.5K views33 slides
Moodle, the de facto learning platform to facilitate research and experimenta... by
Moodle, the de facto learning platform to facilitate research and experimenta...Moodle, the de facto learning platform to facilitate research and experimenta...
Moodle, the de facto learning platform to facilitate research and experimenta...David Monllaó
787 views22 slides
A Supervised Learning Framework for Learning Management Systems by
A Supervised Learning Framework for Learning Management SystemsA Supervised Learning Framework for Learning Management Systems
A Supervised Learning Framework for Learning Management SystemsDavid Monllaó
233 views16 slides
El equipo de integracion de Moodle HQ es tu muy mejor amigo by
El equipo de integracion de Moodle HQ es tu muy mejor amigoEl equipo de integracion de Moodle HQ es tu muy mejor amigo
El equipo de integracion de Moodle HQ es tu muy mejor amigoDavid Monllaó
208 views15 slides
Install solr and global search by
Install solr and global searchInstall solr and global search
Install solr and global searchDavid Monllaó
485 views8 slides

More from David Monllaó(8)

Moodle learning analytics desde diferentes perspectivas (#mootgt19) by David Monllaó
Moodle learning analytics desde diferentes perspectivas (#mootgt19)Moodle learning analytics desde diferentes perspectivas (#mootgt19)
Moodle learning analytics desde diferentes perspectivas (#mootgt19)
David Monllaó336 views
Moodle learning analytics from different perspectives (#moothr19) by David Monllaó
Moodle learning analytics from different perspectives (#moothr19)Moodle learning analytics from different perspectives (#moothr19)
Moodle learning analytics from different perspectives (#moothr19)
David Monllaó1.5K views
Moodle, the de facto learning platform to facilitate research and experimenta... by David Monllaó
Moodle, the de facto learning platform to facilitate research and experimenta...Moodle, the de facto learning platform to facilitate research and experimenta...
Moodle, the de facto learning platform to facilitate research and experimenta...
David Monllaó787 views
A Supervised Learning Framework for Learning Management Systems by David Monllaó
A Supervised Learning Framework for Learning Management SystemsA Supervised Learning Framework for Learning Management Systems
A Supervised Learning Framework for Learning Management Systems
David Monllaó233 views
El equipo de integracion de Moodle HQ es tu muy mejor amigo by David Monllaó
El equipo de integracion de Moodle HQ es tu muy mejor amigoEl equipo de integracion de Moodle HQ es tu muy mejor amigo
El equipo de integracion de Moodle HQ es tu muy mejor amigo
David Monllaó208 views
Install solr and global search by David Monllaó
Install solr and global searchInstall solr and global search
Install solr and global search
David Monllaó485 views
Add your plugin contents to global search by David Monllaó
Add your plugin contents to global searchAdd your plugin contents to global search
Add your plugin contents to global search
David Monllaó139 views
Automatic classification of students in online courses using machine learning... by David Monllaó
Automatic classification of students in online courses using machine learning...Automatic classification of students in online courses using machine learning...
Automatic classification of students in online courses using machine learning...
David Monllaó274 views

Recently uploaded

Navigating container technology for enhanced security by Niklas Saari by
Navigating container technology for enhanced security by Niklas SaariNavigating container technology for enhanced security by Niklas Saari
Navigating container technology for enhanced security by Niklas SaariMetosin Oy
14 views34 slides
How to build dyanmic dashboards and ensure they always work by
How to build dyanmic dashboards and ensure they always workHow to build dyanmic dashboards and ensure they always work
How to build dyanmic dashboards and ensure they always workWiiisdom
14 views13 slides
360 graden fabriek by
360 graden fabriek360 graden fabriek
360 graden fabriekinfo33492
162 views25 slides
Introduction to Gradle by
Introduction to GradleIntroduction to Gradle
Introduction to GradleJohn Valentino
5 views7 slides
Automated Testing of Microsoft Power BI Reports by
Automated Testing of Microsoft Power BI ReportsAutomated Testing of Microsoft Power BI Reports
Automated Testing of Microsoft Power BI ReportsRTTS
8 views20 slides
tecnologia18.docx by
tecnologia18.docxtecnologia18.docx
tecnologia18.docxnosi6702
5 views5 slides

Recently uploaded(20)

Navigating container technology for enhanced security by Niklas Saari by Metosin Oy
Navigating container technology for enhanced security by Niklas SaariNavigating container technology for enhanced security by Niklas Saari
Navigating container technology for enhanced security by Niklas Saari
Metosin Oy14 views
How to build dyanmic dashboards and ensure they always work by Wiiisdom
How to build dyanmic dashboards and ensure they always workHow to build dyanmic dashboards and ensure they always work
How to build dyanmic dashboards and ensure they always work
Wiiisdom14 views
360 graden fabriek by info33492
360 graden fabriek360 graden fabriek
360 graden fabriek
info33492162 views
Automated Testing of Microsoft Power BI Reports by RTTS
Automated Testing of Microsoft Power BI ReportsAutomated Testing of Microsoft Power BI Reports
Automated Testing of Microsoft Power BI Reports
RTTS8 views
tecnologia18.docx by nosi6702
tecnologia18.docxtecnologia18.docx
tecnologia18.docx
nosi67025 views
Understanding HTML terminology by artembondar5
Understanding HTML terminologyUnderstanding HTML terminology
Understanding HTML terminology
artembondar57 views
aATP - New Correlation Confirmation Feature.pptx by EsatEsenek1
aATP - New Correlation Confirmation Feature.pptxaATP - New Correlation Confirmation Feature.pptx
aATP - New Correlation Confirmation Feature.pptx
EsatEsenek1146 views
Generic or specific? Making sensible software design decisions by Bert Jan Schrijver
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisions
DRYiCE™ iAutomate: AI-enhanced Intelligent Runbook Automation by HCLSoftware
DRYiCE™ iAutomate: AI-enhanced Intelligent Runbook AutomationDRYiCE™ iAutomate: AI-enhanced Intelligent Runbook Automation
DRYiCE™ iAutomate: AI-enhanced Intelligent Runbook Automation
HCLSoftware6 views
Introduction to Git Source Control by John Valentino
Introduction to Git Source ControlIntroduction to Git Source Control
Introduction to Git Source Control
John Valentino7 views
AI and Ml presentation .pptx by FayazAli87
AI and Ml presentation .pptxAI and Ml presentation .pptx
AI and Ml presentation .pptx
FayazAli8714 views
Airline Booking Software by SharmiMehta
Airline Booking SoftwareAirline Booking Software
Airline Booking Software
SharmiMehta9 views
predicting-m3-devopsconMunich-2023-v2.pptx by Tier1 app
predicting-m3-devopsconMunich-2023-v2.pptxpredicting-m3-devopsconMunich-2023-v2.pptx
predicting-m3-devopsconMunich-2023-v2.pptx
Tier1 app11 views

Testing Moodle functionality automatically

  • 1. Testing Moodle functionality automatically A quick overview of the process we follow at Moodle HQ to test Moodle functionality automatically.
  • 2. Who I am David Monllaó - Test engineer at Moodle HQ Integration team
  • 3. Points From a behaviour description to a tested functionalities report. 1. Human-friendly language 2. Real users simulation 3. Running automatically
  • 4. Human-friendly language Scenario: Add a blog entry with valid data Given I log in as "admin" And I expand "Blogs" node And I follow "Add a new entry" And I fill the moodle form with: | Entry title | I'm the name | | Blog entry body | I'm the description | When I press "Save changes" Then I should see "I'm a description" And I should not see "Required"
  • 5. Human-friendly language When I press "Save changes" • “Save changes” is a variable, we read the page contents looking for a button labelled as “Save changes”. Then I should see "I'm a description" • “I'm a description” is a variable, we read the page contents looking for the “I'm a description” text.
  • 6. Real users simulation We use an open source project named Selenium. As the official Selenium documentation states: “Selenium automates browsers. That's it” Is a server application that receives commands (click or type keyboard keys) that it executes in a browser.
  • 7. Real users simulation From human-friendly sentences to Selenium commands. 1. When I press "Save changes" 2. When I press $variable 3. Find <button value=”$variable”> identifier in the page contents 4. Send a click/ID command to Selenium 5. Selenium executes the click in the “Save changes” button like a real user does
  • 9. Running automatically • Moodle codebase includes around 160 different scenarios (90 features) • We use Jenkins Continuous Integration server to: o Run the features in a regular basis, ensuring new code changes don't break any functionality o Release new moodle versions knowing that X of Moodle's features works as expected o Run all those features in multiple combinations of Browsers and Operating Systems • We will continue adding new feature files to expand Moodle's functionalities coverage.
  • 11. Running automatically Anyone can do it, all is included in Moodle's codebase, can be useful to: • Contribute new feature files describing Moodle's functionalities • Add feature files for the 3rd party plugins you develop • Run the test suite to ensure your local code modifications are not breaking any of Moodle's functionalities
  • 12. More information • Moodle Docs – Acceptance testing o http://docs.moodle.org/dev/Acceptance_testing • Selenium o http://docs.seleniumhq.org/ • Jenkins Continuous Integration o http://jenkins-ci.org/ • Behat o http://behat.org
  • 13. Any questions? Thanks for your attention! Moodle HQ (http://moodle.com) David Monllaó (davidm@moodle.com)