Auto-tools/Automation Development: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
No edit summary
 
(27 intermediate revisions by 6 users not shown)
Line 1: Line 1:
== Who are We? ==
'''!!! OUTDATED: Please be aware that the Automation Development team has been transitioned into Mozilla QA. Therefore the new team page can be found at https://wiki.mozilla.org/QA/Automation !!!
This is the home of the QA Automation Services Team. This team is responsible for helping the QA teams on specific products excel at what they are doing using a number of tools.
'''
== What is our Goal? ==
The Automation Development Crew seeks to improve Mozilla product quality by directly crafting automated tests as well as by teaching others to craft these tests and by creating an environment in which the skills of automated test writing can be practiced and honed.
 
Every one of us is part of the ultimate reservoir of automation knowledge. That means that we will always have an answer for your automation requests, whether those would apply to already existing test harnesses or necessary new ones. This page will give you information about our current projects and activities.
 
If you have questions stop by and talk to us in the [irc://irc.mozilla.org/#automation #automation IRC channel] ([http://irclog.gr/#browse/irc.mozilla.org/automation logs from channel]) or by subscribing to our [https://lists.mozilla.org/listinfo/dev-automation automation mailing list] or [http://groups.google.com/group/mozilla.dev.automation newsgroup].
 
Currently we are covering the following harnesses:


{| class="fullwidth-table"
{| class="fullwidth-table"
|-
|-
| style="background:#EFEFEF; width:15%" | '''Framework'''  
| style="background:#EFEFEF; width:15%" | '''Test Harness'''  
| style="background:#EFEFEF; width:85%" | '''Description'''
| style="background:#EFEFEF; width:85%" | '''Description'''
|- valign="top"
|- valign="top"
| [[QA/Mozmill_Test_Automation|Mozmill]]
| [https://developer.mozilla.org/en-US/docs/Mozmill Mozmill]
| A Framework for automating Gecko based applications from Firefox to Thunderbird.
| A harness for automating Gecko based applications from Firefox to Thunderbird.
|- valign="top"
|- valign="top"
| Selenium
| [http://seleniumhq.org Selenium]
| A web browser automation framework controlling the content render-able part of the browser.
| A web browser automation framework controlling the content render-able part of the browser.
|- valign="top"
|- valign="top"
| Other
| [https://developer.mozilla.org/en-US/docs/Marionette Marionette]
| This could be anything from JMeter to automating native apps on mobile devices.
| An automation driver (UI or internal JS) for Boot2Gecko and Firefox desktop.
|}
|}


== Meetings ==
== Meetings / Events ==
We have a public team project meetings each second week. If you want to join the meetings, please check the [[QA/Automation Services/Meetings|meetings page]] for details.
We have a public team meeting in irregular intervals. If you want to join the meetings, please check the [[/Meetings|meetings page]] for details.
 
Any event, members of our group will participating in, can also be seen in our [https://www.google.com/calendar/b/0/embed?src=f9liigdtlqadpc1f9pfisf24n0@group.calendar.google.com team calendar] on Google. [https://www.google.com/calendar/ical/f9liigdtlqadpc1f9pfisf24n0%40group.calendar.google.com/public/basic.ics Subscribe] yourself to the calendar if you want to stay up-to-date with our activities.


== Team ==
== Team ==
{{:QA/Automation_Services/Team}}
{{:Auto-Tools/Automation_Development/Team}}


== Projects ==
== Projects ==
To be successful and to offer the best support for other teams, the Automation Services team is working on different projects concurrently. Some of those projects can be accomplished in a short time while others will take longer, even several months. The prioritized projects reflect the most important projects in the current quarter and include the appropriate tasks which have to be fulfilled during that time. Other active projects have lower priority.
{{:Auto-tools/Automation_Development/Projects}}
 
If you are interested in already finished projects, check our [[QA/Automation_Services/Projects_Archive|projects archive]].
 
=== Prioritized Projects ===
{| class="fullwidth-table"
|-
| style="background:#EFEFEF; width:25%" | '''Project'''
| style="background:#EFEFEF; width:15%" | '''Frameworks'''
| style="background:#EFEFEF; width:60%" | '''Description'''
|- valign="top"
| [[QA/Automation_Services/Projects/OpenWebApps|Open Web Applications]]
| TBD
| Implemention of necessary APIs and support the addition of tests to execute automated tests for web apps in Firefox
|- valign="top"
| [[QA/Automation_Services/Projects/Documentation|Documentation]]
| None
| Establish the new team presence across websites (QMO, Wiki, MDC) and improve the documentation to increase collaboration with the test automation community
|- valign="top"
| [[QA/Automation_Services/Projects/Infrastructure|Infrastructure]]
| None
| Investigation and documentation of the shared test infrastructure and blog Q4 implementation goals on Planet
|- valign="top"
| [[QA/Automation_Services/Projects/Selenium_TestGrid|Selenium TestGrid]]
| Selenium
| Upgrade the test grid to work with the final version of Selenium 2 and add mobile for web testing
|- valign="top"
| [[QA/Automation_Services/Projects/EnduranceTests|EnduranceTests]]
| Mozmill
| Improve coverage of Endurance tests for real world use-case scenarios and add additional metrics to support the memshrink project for Firefox
|}
 
=== Other Projects ===
{| class="fullwidth-table"
|-
| style="background:#EFEFEF; width:25%" | '''Project'''
| style="background:#EFEFEF; width:75%" | '''Description'''
|- valign="top"
|
|
|}
 
== Automated Test Frameworks  ==
 
=== Selenium  ===
 
=== Mozmill (Firefox) Test Framework  ===
 
==== About Mozmill  ====
 
Mozmill is a Software Automation Test Framework that has been designed to test the Firefox Browser. The test suites are written in a domain independent language (javascript), which then uses python in the backend to communicate with a local socket in the browser. There are several pieces required to run Mozmill tests. The simplest / easiest way to get up and writing / running mozmill tests is to install mozmill crowd. This extension allows you to run mozmill tests, and get familiar with writing test cases. After this initial you will be looking for something more complex, try installing Mozmill, and the corresponding test suite so you can run tests from the command line. *If you are able to get this up and running, Congratulations.. this is how tests are run in our continuous integration environment*
 
==== How to Install  ====
 
Install Mozmill Crowd and get familiar with running automated tests [https://addons.mozilla.org/firefox/addon/mozmill-crowd/ Mozmill Crowd]
 
===== Advanced Install  =====
 
Basically you need to have python 2.6 running, on linux this is fairly simple, on mac it may require some work. The eternal struggle on a mac is upgrading / installing linux based applications (fink, mac ports, have grown up to solve this problem) We like Homebrew, as the installs are non-destructive to the operating system, and localized to specific users. Without further a do, here are some instructions to get python 2.6 running.
 
Mac:
 
  Install Brew - [https://github.com/mxcl/homebrew Brew]
Update Python 2.6 Formula
brew create git://gist.github.com/743034
name it python26
brew install python26
(Do not run brew install python, as it will install python 2.7.1)
 
Linux:
 
  Install Pip with the following command sudo easy_install pip
sudo pip install mercurial
sudo pip install virtualenvwrapper
update your ~/.bash_profile
export WORKON_HOME=$HOME/.virtualenvs
export PIP_VIRTUALENV_BASE=$WORKON_HOME
source /usr/local/bin/virtualenvwrapper.sh
 
To create a new virtualenv you would do mkvirtualenv projecta –no-site-packages. “projecta” would be the name of the project you are using
 
    workon projecta
  install libraries needed in the relevant virtualenv so that you don’t pollute your environment.
  If something goes wrong you can delete the virtualenv without breaking your machine
 
The basic install process is well documented on : [https://developer.mozilla.org/en/Mozmill Mozilla Developer]
 
Install the Mozmill Tests Get the tests out of the repository - [https://developer.mozilla.org/en/Mozmill_Tests Mozmill Tests]
 
=== Team Presence (Documentation) ===
 
=== Infrastructure Investigation ===
 
=== Selenium Grid 2 ===
 
=== Endurance Tests ===
 
== [[/QA/Automation_Services/New_Members|New Members]] ==
All new members to the team can find all the details about getting setup. Details on what accounts, what mailing lists, etc can be found on the [[/QA/Automation_Services/New_Members|Here]].

Latest revision as of 12:02, 13 January 2014

!!! OUTDATED: Please be aware that the Automation Development team has been transitioned into Mozilla QA. Therefore the new team page can be found at https://wiki.mozilla.org/QA/Automation !!!

What is our Goal?

The Automation Development Crew seeks to improve Mozilla product quality by directly crafting automated tests as well as by teaching others to craft these tests and by creating an environment in which the skills of automated test writing can be practiced and honed.

Every one of us is part of the ultimate reservoir of automation knowledge. That means that we will always have an answer for your automation requests, whether those would apply to already existing test harnesses or necessary new ones. This page will give you information about our current projects and activities.

If you have questions stop by and talk to us in the #automation IRC channel (logs from channel) or by subscribing to our automation mailing list or newsgroup.

Currently we are covering the following harnesses:

Test Harness Description
Mozmill A harness for automating Gecko based applications from Firefox to Thunderbird.
Selenium A web browser automation framework controlling the content render-able part of the browser.
Marionette An automation driver (UI or internal JS) for Boot2Gecko and Firefox desktop.

Meetings / Events

We have a public team meeting in irregular intervals. If you want to join the meetings, please check the meetings page for details.

Any event, members of our group will participating in, can also be seen in our team calendar on Google. Subscribe yourself to the calendar if you want to stay up-to-date with our activities.

Team

The automation development team is a group of passionate and open minded people working on automation. We are spread around the world, but we have one collective goal to empower automation even more in the Mozilla project. If you want to get in contact with one of us please check the table below for more information.

Photo Name Location IRC
Henrik skupin.jpg
Henrik Skupin

hskupin@mozilla.com

Germany whimboo

#automation #mozmill #qa

DaveHunt.jpeg
Dave Hunt

dhunt@mozilla.com

United Kingdom davehunt

#ateam #automation #mozmill #qa #mozwebqa

Rwood.jpg
Rob Wood

rwood@mozilla.com

Canada rwood

#automation #ateam

Andreea Matei.jpg
Andreea Matei

andreea.matei@softvision.ro

Romania AndreeaMatei

#automation #ateam #mozmill #mozwebqa #qa

Andrei.png
Andrei Eftimie

andrei.eftimie@softvision.ro

Romania andrei_eftimie

#automation #ateam #mozmill #firefox #qa


Projects

Some of our projects can be accomplished in a short time while others will take longer, even several months. The prioritized projects reflect the most important projects in the current quarter and include the appropriate tasks which have to be fulfilled during that time. Other active projects have lower priority.

If you are interested in already finished projects, check our projects archive. We also have a some projects that we would like to do in the future!

Firefox UI Tests

Project Technologies Description
Firefox UI Tests Python, Javascript
Dashboard Javascript, HTML, CSS, AJAX, CouchDB Dashboard to visualize Mozmill test results from the automated test-runs and the Mozmill Crowd extension
Shared Modules Javascript Building and enhancing the API and shared modules for our Mozmill tests for Firefox

Other Projects

Project Technologies Description
Automation Training - Provide automation training to larger community through 4 automation training events
Add-ons CSS, Javascript, XML To help any team in the Mozilla project we work on several extensions.
Documentation Wiki Establish the team presence across websites (Wiki, MDN) and improve the documentation to increase collaboration with the test automation community
Infrastructure Puppet Building up and maintaining the infrastructure for automation tasks
Open Web Applications Javascript, Python Implemention of necessary APIs and support the addition of tests to execute automated tests for web apps in Firefox
TPS Javascript, Python Testing and Profiling tool for Sync
MTBF Javascript, Python, Bash Stability testing tool