I'm confused by this idea that 'testing' is a single thing that you can 'shift'. Testing is part of each step of envisaging, specifying, designing, implementing, shipping, supporting, updating, maintaining (and I'm sure I've missed a few) a product.
obviously there's some amount of validation that happens at each step. The question is just how much you do when, and how that affects when issues get discovered.