B2G/QA/Automation/Style Guide/General Concepts
General Concepts
Web Testing
As Firefox OS is web-based, it end-to-end automation is based upon WebDriver. A well-known implementation of the WebDriver APIs is Selenium. Firefox OS automation uses another one: Marionette.
This Style Guide document is describing some of the best practices that you can find in the Selenium world. If one practice is missing here or contradicts on you can find in Selenium's, we would be glad to discuss it on IRC, in #fxosqa
End-to-end Testing
Webdriver can be used for integration testing. The tests written here are meant to be end-to-end, as in you test the whole system, in real conditions. Testing in real condition means testing like a real user would do: doing action with something a user can interact with and verifying what this user can actually perceive.
Here you can find more details about the differences between integration and end-to-end testing.
Commonly Used Words
- Marionette (Python): The framework currently used for end-to-end testing.
- MarionetteJS: The JavaScript version of the framework. It's currently used for integration testing (Gij)
- Gij: Gaia Integration JavaScript. The test suite that verify Gaia integrates correctly with Gecko.
- Gip: Gaia Integration Python. The old name of the end-to-end suite, when the differences between integration and end-to-end weren't documented.
- Treeherder is a reporting dashboard for checkins to Mozilla projects. Gij results are shown on Treeherder, Gip used to be, but isn't anymore.