Note:

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

Testing strategy/Test Environments: Difference between revisions

From MoodleDocs
No edit summary
No edit summary
Line 1: Line 1:
{{Work in progress}}
{{Work in progress}}
== Test Environments ==
== Test Environments ==
<P>Test environments for automation will be hosted on
Test environments for automation will be hosted on
the VM server. These will include a CI server (the build machine),
the VM server. These will include a CI server (the build machine),
database servers, web servers and client PCs.  
database servers, web servers and client PCs.  
</P>
== Requirements Gathering ==
<H2 CLASS="western">Requirements Gathering</H2>
As a task while provisioning the VM Server, two
<P>As a task while provisioning the VM Server, two
surveys have been run to determine popular Test Platforms. Survey 1
surveys have been run to determine popular Test Platforms. Survey 1
gathered metrics from the Moodle Community and Survey 2 gathered
gathered metrics from the Moodle Community and Survey 2 gathered
metrics from Moodle Partners. Limiting factors of these surveys are
metrics from Moodle Partners. Limiting factors of these surveys are
that both samples are relatively small. The results of the surveys
that both samples are relatively small. The results of the surveys
are as follows:</P>
are as follows:
<H3 CLASS="western">Survey
=== Survey 1 The Moodle Community:===
1 The Moodle Community:</H3>
Fig. 1 Separate Database and Web Server Yes/No:
<P>Fig. 1 Separate Database and Web Server Yes/No:</P>
[[File:Fig._2_user_split_system.png]]
<P>[[File:Fig._2_user_split_system.png]]</P>
Fig. 2 Operating System of Separate Web Server:
<P>Fig. 2 Operating System of Separate Web Server:</P>
[[File:fig.3_user_os_separatewebserver.gif]]
<P>[[File:fig.3_user_os_separatewebserver.gif]]
Fig. 3 Operating System of Separate Database Server:
</P>
[[File:fig.6_user_OS_SeparateDB.gif]]
<P>Fig. 3 Operating
Fig. 4 What Databases are Used on a Split System:
System of Separate Database Server:</P>
[[File:Fig7_user_dbs_used_split.png]]
<P>[[File:fig.6_user_OS_SeparateDB.gif]]</P>
Fig. 5 What Databases are Used on an all in one Database Server and Webserver:
<P>Fig. 4 What Databases are Used on a Split System:</P>
[[File:fig8_user_database_combined.png]]
<P>[[File:Fig7_user_dbs_used_split.png]]</P>
Fig. 6 What Web Server is Used on a Split System:
<P>Fig. 5 What Databases are Used on an all in one
[[File:user_webserver_split.png]]
Database Server and Webserver:</P>
Fig. 7 What Web Server is Used on an all in one Database Server and Webserver:
<P>[[File:fig8_user_database_combined.png]]</P>
[[File:user_webserver_combined.png]]
<P>Fig. 6 What Web
As Debian and Ubuntu are similar and Red Hat and Centos are similar that,based upon our sample data, our three main
Server is Used on a Split System:</P>
<P>[[File:user_webserver_split.png]]</P>
<P>Fig. 7 What Web Server is Used on an all in one
Database Server and Webserver:</P>
<P>[[File:user_webserver_combined.png]]</P>
<P>As Debian and Ubuntu are similar and Red Hat and
Centos are similar that,based upon our sample data, our three main
operating used by the Moodle community Debian/Ubuntu, Red Hat/Centos
operating used by the Moodle community Debian/Ubuntu, Red Hat/Centos
and MS Server 2008 with a weighting of almost 75% towards the two
and MS Server 2008 with a weighting of almost 75% towards the two
Linux operating systems.</P>
Linux operating systems.
<P>Of the five supported databases, the majority of
Of the five supported databases, the majority of community users prefer MySQL with PostgreSQL and MSSQL a fairly equal
community users prefer MySQL with PostgreSQL and MSSQL a fairly equal
but distant second and third.
but distant second and third.</P>
The Majority of community users also use Apache with IIS a very distant second.
<P>The Majority of community users also use Apache with
=== Survey 2 The Moodle Partners: ===
IIS a very distant second.</P>
Fig. 8 Separate Database and Web Server Yes/No:
<H3 CLASS="western">Survey
[[File:partner_split_combine.png]]
2 The Moodle Partners:</H3>
Fig. 9 Partner OS Database Server:
<P>Fig. 8 Separate Database and Web Server Yes/No:</P>
[[File:partner_OS_DB.gif]]
<P>[[File:partner_split_combine.png]]
Fig. 10 Partner OS Web Server (combining answers for fig 8):
</P>
[[File:partner_OS_Web.gif]]
<P>Fig. 9 Partner OS Database Server:</P>
Fig. 11  What Databases are Used on a Split System:
<P>[[File:partner_OS_DB.gif]]
[[File:partner_db_split.png]]
</P>
Fig. 12 What Databases are Used on a Combined System:
<P>Fig. 10 Partner OS
[[File:partner_db_combine.png]]
Web Server (combining answers for fig 8):</P>
Fig. 13 What Web Servers are used on a Split System:
<P>[[File:partner_OS_Web.gif]]
[[File:partner_webserver_split.png]]
</P>
Fig. 14 What Web Servers are used on a Combined System:
<P>Fig. 11  What Databases are Used on a Split System:</P>
[[File:partner_webserver_combined.png]]
<P>[[File:partner_db_split.png]]
This suggests that the majority of partners use Debian/Ubuntu or Centos/Rad Hat Linux, Apache and either a MySQL or
</P>
<P>Fig. 12 What Databases are Used on a Combined System:</P>
<P>[[File:partner_db_combine.png]]
</P>
<P>Fig. 13 What Web
Servers are used on a Split System:</P>
<P>[[File:partner_webserver_split.png]]</P>
<P>Fig. 14 What Web Servers are used on a Combined
System:</P>
<P>[[File:partner_webserver_combined.png]]
</P>
<P>This suggests that the majority of partners use
Debian/Ubuntu or Centos/Rad Hat Linux, Apache and either a MySQL or
PostgreSQL database.  
PostgreSQL database.  
</P>
== VM Requirements ==
<H2 CLASS="western">VM Requirements</H2>
VM's for test environments are modular i.e. they are separate database servers and web servers. This allows the mixing and
<P>VM's for test environments are modular i.e. they are separate
matching of databases and their host OS to the web servers and their host OS as requirements change. At any time, any Web Server can
database servers and web servers. This allows the mixing and
connect to any Database Server. It should also reduce potential numbers of running VMs required for a particular platform.
matching of databases and their host OS to the web servers and their
A master hub VM is required for Jenkins and the hub for the Selenium grid.
host OS as requirements change. At any time, any Web Server can
connect to any Database Server. It should also reduce potential
numbers of running VMs required for a particular platform.</P>
<P>A master hub VM is required for Jenkins and the hub for the Selenium
grid.</P>

Revision as of 02:39, 30 March 2012

Note: This page is a work-in-progress. Feedback and suggested improvements are welcome. Please join the discussion on moodle.org or use the page comments.

Test Environments

Test environments for automation will be hosted on the VM server. These will include a CI server (the build machine), database servers, web servers and client PCs.

Requirements Gathering

As a task while provisioning the VM Server, two surveys have been run to determine popular Test Platforms. Survey 1 gathered metrics from the Moodle Community and Survey 2 gathered metrics from Moodle Partners. Limiting factors of these surveys are that both samples are relatively small. The results of the surveys are as follows:

Survey 1 The Moodle Community:

Fig. 1 Separate Database and Web Server Yes/No: Fig. 2 user split system.png Fig. 2 Operating System of Separate Web Server: fig.3 user os separatewebserver.gif Fig. 3 Operating System of Separate Database Server: fig.6 user OS SeparateDB.gif Fig. 4 What Databases are Used on a Split System: Fig7 user dbs used split.png Fig. 5 What Databases are Used on an all in one Database Server and Webserver: fig8 user database combined.png Fig. 6 What Web Server is Used on a Split System: user webserver split.png Fig. 7 What Web Server is Used on an all in one Database Server and Webserver: user webserver combined.png As Debian and Ubuntu are similar and Red Hat and Centos are similar that,based upon our sample data, our three main operating used by the Moodle community Debian/Ubuntu, Red Hat/Centos and MS Server 2008 with a weighting of almost 75% towards the two Linux operating systems. Of the five supported databases, the majority of community users prefer MySQL with PostgreSQL and MSSQL a fairly equal but distant second and third. The Majority of community users also use Apache with IIS a very distant second.

Survey 2 The Moodle Partners:

Fig. 8 Separate Database and Web Server Yes/No: partner split combine.png Fig. 9 Partner OS Database Server: partner OS DB.gif Fig. 10 Partner OS Web Server (combining answers for fig 8): partner OS Web.gif Fig. 11 What Databases are Used on a Split System: partner db split.png Fig. 12 What Databases are Used on a Combined System: partner db combine.png Fig. 13 What Web Servers are used on a Split System: partner webserver split.png Fig. 14 What Web Servers are used on a Combined System: partner webserver combined.png This suggests that the majority of partners use Debian/Ubuntu or Centos/Rad Hat Linux, Apache and either a MySQL or PostgreSQL database.

VM Requirements

VM's for test environments are modular i.e. they are separate database servers and web servers. This allows the mixing and matching of databases and their host OS to the web servers and their host OS as requirements change. At any time, any Web Server can connect to any Database Server. It should also reduce potential numbers of running VMs required for a particular platform. A master hub VM is required for Jenkins and the hub for the Selenium grid.