Your functional tests pass. Your unit tests pass. Your E2E suite is green.
And then a user reports that the checkout button is invisible on the Galaxy S24. The login form overlaps the keyboard on iPhone 15. The navigation bar is the wrong colour after the last merge.
This isn't a testing failure. It's a testing blind spot. Functional tests verify that things work. They don't verify that things look right. A button can be fully functional clickable, wired to the correct handler, returning the right response while being completely invisible to the user because a CSS change pushed it off screen.
Visual regression testing exists to close this gap.…