CloudServices/QA Team/Tools
From MozillaWiki
< CloudServices | QA Team
I'm thinking it might be a good idea to compile a list of things that everyone on our team should know/learn. In the future there will be room for things like ZAP, LoadsV2, etc. but those are still fairly early in our understanding of how to use them.
If there's something here you don't know and are interested in learning, we can make it a goal for a quarter and will figure out together how you might 'prove' your understanding. There is of course training budget for courses, videos, books, conferences, etc. to help you as well.
Feel free to suggest more or add links if you have a good tutorial!
Contents
Python
Py.Test - and by extension Python
- http://pytest.org/latest/
- http://www.learnpython.org/
- "Programming Foundations with Python," from Udacity
- Our de facto test execution framework and language
- There are many plugins we use that might be worth learning as well (is there a list?)
- Full list of plugins here: http://plugincompat.herokuapp.com/
- Some plugins we use:
Javascript
Node/NPM + Mocha and Chai - and by extension JS
- Our second most common test framework and language
Requests (Python framework)
- http://docs.python-requests.org/en/master/
- Useful for automated HTTP requests, API and smoke tests
nghttp2
- https://nghttp2.org/
- full-stack, HTTP/2-supporting client, server, and proxy, useful for debugging, load-testing, and benchmarking network requests
Marionette/Selenium
- http://www.seleniumhq.org/docs/01_introducing_selenium.jsp
- https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette
- our UI testing framework
- a large portion of our tests make use of this
- important to understand DOM, selectors, switching context been content/chrome, and the Selenium API
Jenkins
- https://webqa-ci.mozilla.com/
- https://services-qa-jenkins.stage.mozaws.net:8443/ (requires VPN and LDAP)
- Where all our tests execute
- Should understand how to execute and review results of jobs
- Should understand how to create new jobs for the tests you write
AWS
- Where all of (or soon to be all of) our projects live.
- It is important to understand at least the basics (AMIs, ec2 instances, security groups, cloudwatch monitoring, public/private ip's and DNS names)
- Should be able to find the instance of the project you are testing and SSH to it for logs and things like that
Docker
- https://github.com/mozilla-services/dockerflow
- This will be the main artifact for all future deployments once the pipeline is implemented (think of it like packaging up an RPM to deploy, we want to build and test the exact bundle that ships into prod)
- You don't have to be an expert, but you should be able to write a dockerfile and build an image for any project you come across
Puppet
- Our configuration management tool of choice, tho overlaps with docker
- Again, no need to be an expert, but you should be able to add a package dependency or similar