QA/Mobile/iOS
The main projects on iOS mobile are Firefox and Focus, which are covered by both automated and manual tests.
Contents
Prerequisites
Automated Tests
In most cases, the tests can only run on Xcode emulators, unless you have a provisioned device. But for the purpose of testing, it suffices to run on emulator.
You'll need to know:
- Basic Github operations, e.g. Creating issues in Github, forking repo and creating a pull request
- Basic knowledge of Xcode, i.e. How to build and run app on emulator using XCode and how to run the tests
- Swift programming language
- XCUITest framework
- In case of grey-box test automation, KIFTest or Earlgrey test framework
Manual Tests
Currently, our manual test cases are stored in TestRail which requires Mozilla LDAP access. If you do not have Mozilla LDAP account, upon request, we will provide you with a mirror of relevant test cases which you can work on.
Focus
Focus is a lightweight browser that automatically blocks a wide range of ads and online trackers. It makes it easy to erase history, passwords and cookies, so users aren't followed by things like unwanted ads.
Please refer to Focus iOS Test Plan for additional details.
Automation Tests
Focus automation tests are written in Apple's XCUITest Framework, and located here.
If you would like to create a new test or fix the existing test:
- Login to Focus github repo, and create a focus-ios issue, explaining what you'd like to work on. Once the issue is created, ping @npark-mozilla or @aaronMT for review.
- Once the issue is created, create a PR request that contains the code change, and reference the original bug. Also add @npark-mozilla or @aaronMT for review. At this point, we might ask you to modify your PR to improve the coding style and/or test behaviors. Make sure the test is passing for you locally before submission.
- Once the PR is approved, we will merge the PR to the master branch.
- The tests run on Buddybuild CI system, and upon request, we should be able to provide you with a read access to view the test results if necessary.
Manual Tests
Focus iOS manual test cases are store in TestRail. If you're interested in executing or enhancing the manual test suite, please contact ichiorean at mozilla dot com.
Firefox
Firefox is a full-featured web browser developed by Mozilla. Github repo
Automation Tests
Please refer to the Github Wiki for additional details. Also make sure you have read the README.md of the project, and especially be aware of the Contributor Guidelines section.
These are the existing XCUITests and the UITests. If you would like to create a new test or fix one of the existing tests:
- Login to Bugzilla, and create bugzilla ticket with Product: Firefox for iOS and Component: Build & Test, explaining what you'd like to work on. It could be that the ticket is alreay open, please check the backlog for new tests and take one!. To know the new features to be covered by tests check the features backlog.
- Once the issue is created, create a PR request with the bug number and title as the PR title. (e.g. Bug xxxxxx - Fix something) Attach the link to the PR in Bugzilla, and ask njpark or :isabel_rios for review. Make sure the test is passing for you locally before submission.
- At this point, we might ask you to modify your PR to improve the coding style and/or test behaviors.
- Once the PR is approved, we will merge the PR to the master branch.
- The tests run on Buddybuild CI system, and upon request, we should be able to provide you with a read access to view the test results if necessary.
Manual Tests
Firefox iOS manual test cases are store in TestRail. If you're interested in executing or enhancing the manual test suite, please contact ichiorean at mozilla dot com.