Quality Assurance

Mission
The Quality Assurance (QA) efforts at WMF are a part of the Wikimedia Release Engineering Team.

The job of Release Engineering is to get software from the developer's head to production as quickly, easily, efficiently and safely as possible. QA is where we drive forward the safety part of that list.

Software testing
WMF practices two main approaches to software testing: exploratory testing and automated browser testing.

Exploratory testing is "simultaneous learning, test design and test execution" or "test design and test execution at the same time". Exploratory testing is a powerful approach that everyone should know.

Our automated browser tests use Cucumber to define test scenarios and implement the Page Object design pattern. Browser test code resides with the code repositories that they test. You can find browser test code in the /tests/browser directory of the repositories.

We have pages devoted to exploratory testing and automated browser testing.

Testing environment
The test environment is known as the Beta Cluster. This cluster mimics, as closely as possible, the production setup but in a smaller (virtualized) footprint.

It duplicates a few Wikimedia projects, for example http://en.wikipedia.beta.wmflabs.org and http://wikidata.beta.wmflabs.org. It runs the latest version of the master branch of the wiki software and all extensions. The code on the beta cluster is updated automatically every 10 minutes, and the databases about every hour.

On the Beta cluster we test the most recent software features that are assumed to be viable. It does not host wild experiments or unsupported features, but only the latest version of the master branch of features to be deployed to production.

Contact
Mailing list: The QA mail list is a great resource not only for testing Wikipedia software but also for general discussion of QA and testing practice

IRC: We are on IRC in on Freenode.

More information
Because our QA effort is spread across Wikimedia Engineering we are not always 100% engaged with every project. We have a guide on when to use QA services.

We also collaborate with Bug management, Continuous integration, Wikimedia Labs and the testing plans of other Wikimedia Engineering teams.