B2G/QA/Automation/UI/How to contribute
Like regular computing projects, end-to-end automation requires some time to get used to.
If you would like to discover the project step by step, here is the suggested workflow. We recommend you try every task within each step before moving on to the next step.
Step 1: Install the dependencies and run one test
Pre-requisites: Have 1 Firefox OS device - end-to-end automation tests the entire stack.
Warning: Running these tests will erase the data present on your device. Make sure to have a copy before going further.
Go to this MDN page to get the technical details.
Step 2: Write your first test!
Step 3: First test failure fix, write a harder one.
There are 2 tasks you can do:
- Fix a permanent failure. They are usually because of small graphic changes (like locator changes). Example.
- Write a second test. It should either use 2 (or more) apps or perform. other actions than tap() or send_keys(). Example.
Step 4: Welcome intermittents!
Things are getting harder!
- Fix an intermittent failure related to a missing wait. Example.
- Fix a permanent failure that requires to inject/by-pass standard Marionette's APIs. Example.
Step 5: Non-textual
- Write a test which verifies non-textual data (images, sound).
- Fix an unknown intermittent failure. Main contributors haven't identified the potential cause of the bug, you can look into it!
Step 6: Dive into the harness
- Change the harness behavior. Sometimes, you may need to change a JS script that we inject on the phone Example.
- Add a new feature in the harness. Some tests can't be written because either Gaiatest or Marionette are not ready yet. You can show your development talents here!
- Heavy change in our Page Object implementation. Sometimes refactors are needed, here are the big ones. Example.