[QA] Visual regression testing
Juliusz Gonera
jgonera at wikimedia.org
Fri Apr 18 23:33:43 UTC 2014
I conducted a little bit of research on visual regression testing,
mainly for the mobile team for now, but it could be easily reused for
other teams. I had a look at three existing solutions that seem somewhat
popular and are actively developed:
* Wraith (https://github.com/BBC-News/wraith)
* PhantomCSS (https://github.com/Huddle/PhantomCSS)
* Huxley (https://github.com/facebook/huxley)
They all have their own pros and cons, but in my opinion they share one
important disadvantage: they can't be easily integrated with our current
browser testing setup. For all the aforementioned tools we would have to
create from scratch a completely separate set of tests just for visual
regression testing instead of extending our existing browser tests.
I spent a few hours in my spare time tinkering with an alternative idea
which would enable us to add visual regression testing to our
Cucumber/Watir tests. The result is a small prototype available at
https://github.com/jgonera/photographer. There is no docs or anything
yet, but I prepared a simple demo patch for MobileFrontend:
https://gerrit.wikimedia.org/r/#/c/126878/.
The idea is to add a new method for Cucumber steps (snap) that takes a
screenshot of the current browser state and compares it with a
screenshot taken in one of the previous test runs. To update screenshots
that are used as a reference you run tests with env var
PHOTOGRAPHER=update. If newly taken screenshot differs by too many
pixels from an old one, the test will fail.
It's still only an early prototype, but I'd appreciate any comments
about this idea.
--
Juliusz
More information about the QA
mailing list