In an ideal world, users would be involved in every stage of product development, including requirements gathering, iterative prototype testing and post release testing.
However, there are a lot of reasons why testing with users doesn’t happen. Among the most common are: