Note:

If you want to create a new page for developers, you should create it on the Moodle Developer Resource site.

Testing: Difference between revisions

From MoodleDocs
Line 39: Line 39:
This test must pass completely before a release can be made.
This test must pass completely before a release can be made.


* Selenium testing overview
* Functional testing
 
* Performance testing


==QA regression testing (MANUAL)==
==QA regression testing (MANUAL)==

Revision as of 05:47, 3 October 2012

This page is the top level page regarding all testing activities around the Moodle project. Testing is essential to make sure that developed code does what it is meant to do, without causing new problems.

Unit tests (AUTOMATED)

Moodle 2.3 and later fully supports PHPUnit tests as part of the code. These are automated tests of very low-level code functionality that a developer should write as part of any new code.

Code testing (MANUAL)

Code is tested as part of reviewing at some key parts of the Moodle development process.

  • Development - the developer of some code should test their own work on a wide variety of environments for correctness and performance
  • Peer review - developers often test each others work early in the development process
  • Integration reviews - Our integration team tests code weekly while they are evaluating suitability for integration into Moodle.


Continuous integration testing (AUTOMATED)

As soon as code is added to the integration repository, our continuous integration server tests the new code for:

  • Coding guidelines
  • PHP unit tests
  • xxx
  • xxxx


Integration functional testing (MANUAL)

On Wednesday (all timezones) our Moodle HQ developers spend the day to manually test the functionality of all the issues that have been integrated that week.


QA regression testing (AUTOMATED)

Every week an automated Selenium-based system tests a large number of key functions in Moodle to make sure everything still works and that some new fix in Moodle hasn't caused problems elsewhere.

This test must pass completely before a release can be made.

  • Functional testing
  • Performance testing

QA regression testing (MANUAL)

For past versions all the QA testing was conducted manually before each major release. This process will soon be replaced by the above automated systems.