[QA] [WikimediaMobile] Qualifiers for selecting test articles for vagrant role

Brian Gerstle bgerstle at wikimedia.org
Wed Jul 22 17:43:49 UTC 2015


iOS in particular would be _very_ interested in this, but would be more
than happy to start testing against pages in beta labs or even local
fixtures as a baby-step forward.

As far as test data being orthogonal to vagrant, they don't have to be
coupled.  I've had basic experience "pre-baking" elasticsearch docker
containers with documents and verifying that a wrapper service can execute
basic fuzzy queries against it.  Good as a high-level sanity check.  The
"pre-baking" involved pulling the latest "vanilla" container (i.e. MW
Vagrant in our case), injecting it with test documents, then committing and
pushing the result.  This approach could be applied here in a way that
keeps MW vagrant and test data concerns and artifacts separate.

Also, one neat thing I saw done at Spotify was a "Test Data Service." This
service's job was to abstract away concrete test data from its qualities.
This was mostly used to acquire test users, thus allowing testers to
declaratively acquire test data.  For example, you could say "I want a free
user with X flags" or "I want a premium user who has tracks in their
starred playlist."  The service's other job was to lock users to prevent
parallel tests from corrupting a shared test user's state (also resulting
in a false negative).

We might want something similar for retrieving and locking test articles
for editing, but this might not be necessary if our vagrant/virtualization
infrastructure is mature enough to ensure tests are isolated.

On Wed, Jul 22, 2015 at 12:58 PM, Dan Duvall <dduvall at wikimedia.org> wrote:

> I like this idea for development and manual testing, but I'm not sure it's
> appropriate for automated testing.
>
> Generally in automated testing, each test case (unit test or integration
> scenario) should be able to set up or guarantee its preconditions whenever
> possible—and otherwise communicate its assumptions—which in the context of
> MediaWiki includes user accounts, user settings, or article content that
> the test case will manipulate or otherwise depend on. Putting this initial
> content in MW-Vagrant, which is orthogonal to MW test suites, creates the
> need for more coupling between test code and test environments and promotes
> more non-deterministic test behavior, something we've been trying very hard
> to reduce.[1][2]
>
> Also, for development content, we might want to figure out a better place
> for it than in the MW-Vagrant repo itself. Article dumps are likely to
> build up fast, and we risk bloating the project repo itself with big blobs.
>
> [1]
> https://www.mediawiki.org/wiki/Quality_Assurance/Browser_testing/Environment_abstraction_layer
> [2]
> https://doc.wikimedia.org/rubygems/mediawiki-selenium/index.html#User_Factory
>
>
> On Tue, Jul 21, 2015 at 10:25 AM, Jon Robson <jdlrobson at gmail.com> wrote:
>
>> On 20 Jul 2015 5:56 pm, "Greg Grossmeier" <greg at wikimedia.org> wrote:
>>
>>> Given the topic, let's keep the QA list in the loop on this so the
>>> MW-Vagrant maintainers can participate/see.
>>>
>> Great :)
>>
>>>
>>> Also, it looks like the original bug (reported in the MW-Vagrant
>>> project) covers this specific request from Reading, no? Essentially,
>>
>> let's see how far we can get with a general "MW-Vagrant (WMF?) testing
>>> data import" instead of a vertical specific "reading-web test data set".
>>> If what the Reading team needs is way too much for this then we can
>>> break it out, otherwise it seems like a needless distinction.
>>>
>>
>>
>> It does yup. I've already tagged the bug with it. I'm hoping by tackling
>> this we can come up with a common solution. The way I imagine this working
>> in future is we have various vagrant roles for stock data e.g.
>> reading-web-stock-data, editing-web-stock-data, sad-web-stock-data
>> There would also be non team specific stock data that might be a sub role
>> of this, for example, the reading web team commonly has to setup the
>> wikidata role and manually create articles in the wikidata instance and
>> local instance that are tied to each other - this takes a ridiculous amount
>> of time and is one I'm keen to automate, given that we are leaning more
>> heavily on wikidata descriptions and other data in there.
>>
>> Rob - I've setup
>> https://www.mediawiki.org/wiki/Reading/QA/Sample_articles as a place we
>> can start to collect and think about these pages.
>>
>>
>>> Greg
>>>
>>> PS: https://wikitech.wikimedia.org/wiki/Labs_labs_labs
>>>
>>> <quote name="Rob Moen" date="2015-07-20" time="17:11:07 -0700">
>>> > Historically developers have had to setup their own content in
>>> mediawiki
>>> > and in mediawiki-vagrant.  While this can be done with a simple import,
>>> > getting everyone on the same page is apparently not as easy.  This is
>>> > generally problematic as we would like to test code locally and
>>> remotely
>>> > with the same content for various reasons.
>>> >
>>> > Slightly more frustrating, there are pages titled "0.4425590476103759"
>>> on
>>> > beta labs.  While trying to sign off on a feature, there is usually a
>>> > struggle when trying to find an article with suitable content.  AFAIK
>>> this
>>> > won't change beta labs but would provide a nice standard for our
>>> content on
>>> > test wikis.
>>> >
>>> > We aim to better things by creating a vagrant role for importing a set
>>> of
>>> > articles for testing purposes.  For more information please see related
>>> > phabricator tasks [1] and [2].
>>> >
>>> > In hopes of making this a nice collection of articles that multiple
>>> teams
>>> > would use, we would like to get input from our designers and devs on
>>> what
>>> > types of articles should be in this import.  What qualities should
>>> these
>>> > articles contain?
>>> >
>>> > 1: https://phabricator.wikimedia.org/T104561
>>> > 2: https://phabricator.wikimedia.org/T62116
>>> >
>>> >
>>> >
>>> > --
>>> > Rob Moen
>>> > Wikimedia Foundation
>>> > rmoen at wikimedia.org
>>>
>>> > _______________________________________________
>>> > Mobile-l mailing list
>>> > Mobile-l at lists.wikimedia.org
>>> > https://lists.wikimedia.org/mailman/listinfo/mobile-l
>>>
>>>
>>> --
>>> | Greg Grossmeier            GPG: B2FA 27B1 F7EB D327 6B8E |
>>> | identi.ca: @greg                A18D 1138 8E47 FAC8 1C7D |
>>>
>>> _______________________________________________
>>> QA mailing list
>>> QA at lists.wikimedia.org
>>> https://lists.wikimedia.org/mailman/listinfo/qa
>>>
>>
>> _______________________________________________
>> Mobile-l mailing list
>> Mobile-l at lists.wikimedia.org
>> https://lists.wikimedia.org/mailman/listinfo/mobile-l
>>
>>
>
>
> --
> Dan Duvall
> Automation Engineer
> Wikimedia Foundation <http://wikimediafoundation.org>
>
> _______________________________________________
> Mobile-l mailing list
> Mobile-l at lists.wikimedia.org
> https://lists.wikimedia.org/mailman/listinfo/mobile-l
>
>


-- 
EN Wikipedia user page: https://en.wikipedia.org/wiki/User:Brian.gerstle
IRC: bgerstle
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.wikimedia.org/pipermail/qa/attachments/20150722/c0bc3a65/attachment-0001.html>


More information about the QA mailing list