
Niffy: Perceptual Diffing to Catch Invisible Bugs - jack_hanford
https://segment.com/blog/perceptual-diffing-with-niffy/
======
toomim
Here's a poor-man's perceptual diff: Cross your eyes.

I'm serious. Try opening this image:
[https://assets.contents.io/asset_rIfFTtwp.png](https://assets.contents.io/asset_rIfFTtwp.png)

You see two images side by side. Now slowly cross your eyes, so that the two
images merge into three images. Once they align, the new _middle_ image will
have information from _both_ your left and right eyes, and your brain's
perceptual system will automatically try to reconcile any differences.

You'll see the differences as shimmering portions of the image, that tend to
be shifted forward or backward in 3D space. In this example, the text at the
bottom is shifted rightward in the right image, which your brain interprets as
"closer to the eye". Differences jump out!

You can use this trick any time you want to diff two screens, pieces of text,
whatever! You don't need a diff program -- your brain's perceptual system
already has one built-in.

~~~
StavrosK
I can attest to this, it's how I've been solving "spot the difference" puzzles
for ages. It works great!

~~~
bluedino
So have I - fun trick to play at a bar or wherever they have the (now
defunct?) MegaTouch games. Although, when you ran into a dim or out of focus
screen (the old ones used a CRT) it didn't always work that well. And you'd
also find the bugs in the game where certain images didn't have the
differences correctly marked!

------
_mikz
We are using Percy [1] for this and are extremely happy with this. Almost zero
effort to set up, just some time to get random data out of our tests to have
stable visual output.

[1]: [https://percy.io](https://percy.io)

------
tluyben2
Site does not work on my Android browser. Shows up but when I touch
everything, the page goes white except for the top menu.

------
Animats
It's amazing when a GUI program is repeatable enough that works.

~~~
acdha
I think this class of app really depends on a good workflow for updating the
expected results so people don't fall out of the habit of testing because most
of the changes are intentional.

------
z3t4
use screen coordinates for clicks as that also simulate user muscle memory.

