For staging on Heroku we'll typically have matching addons, but lower levels and lower dyno counts. This seems to provide a good compromise between staging<->production parity and cost effectiveness. Of course varies on app by app basis, but that's the general idea.
We tend not to have dedicated test instances, although some thoughtbotters have started using pipelines and review apps for pull requests. I'm very intrigued by review apps, but haven't tried them myself.