Ensure that GitLab consistently releases high-quality software across the growing suite of products, developing software at scale without sacrificing quality, stability or velocity. The quality of the product is our collective responsibility. The quality department makes sure everyone is aware of what the quality of the product is, empirically.
To execute on this, we categorize our vision into the following areas.
Culture of Quality
Ensure a culture of quality early on in the development process.
Review product requirements and designs to identify risk and steer the team on quality strategy.
Partner with all engineering teams to ensure that our products have testability built in that can be leveraged by the test infrastructure.
Be a champion for better software design, promote proper testing practices and bug prevention strategies.
Create a timely feedback loop on Quality.
Use the data from test results to improve test gaps in our test suites.
Conduct test gap analysis from bugs that are filed by GitLab users.
Be a sounding-board for our end users and non-engineering stakeholders by integrating their feedback on quality into the development process.
Test Automation Expertise
Own and build out test automation frameworks and infrastructure.
Own and expand end-to-end automated testing framework GitLab QA.
Own and build functional performance tests.
Own and build third-party service testing capabilities.
Own and build our Continuous Integration & Delivery test pipelines.
Continuously improve GitLab test coverage, reliability and efficiency.
Groom the test pyramid coverage and ensure that the right tests run at the right place.
Improve on the duration and de-duplication of the GitLab test suites.
Improve stability by eliminating flaky tests and transient failures.
Improve test results tracking and reporting mechanisms that aid in triaging test results.
Coach developers (internal & external) on contributing to GitLab QA test scenarios.
Continuously improve the release process where Quality is a stakeholder.
Eradicate obstacles in the release process.
Ensure that we have a repeatable and consistent Quality process for every release.
Make metrics-driven suggestions to improve engineering processes, velocity, and throughput.
Build productivity tooling to help speed up development efforts.
Build automated tools to ensure the consistency and quality of the codebase and merge request workflow.