Everyone has a weakness in their game or a shot they'd like to perfect. How do players go about addressing these problems? Usually in haphazard fashion. They'll either try to work on it in actual matches, or they'll work on it some in practice, along with everything else. The result is usually a little improvement, which often convinces them they are on the right track. And so they progress very slowly. But it can be done much quicker with a little "saturation training."
What this means is that for a time you should focus almost entirely on whatever it is you are trying to improve. It means devoting both practice time and match play to the single-minded goal of improving a weakness or perfecting a strength. You can still practice other things, but during the time of saturation training this should be kept to a minimum, and mostly to maintain other aspects of your game. The saturation training should include lots of shadow practicing the new technique as you work to ingrain it.
Let's say you want to develop a backhand loop against backspin. You could practice it for 5-10 minutes with a partner, and then look for chances to use it in a game against your usual practice partners. Or you could arrange to practice it for perhaps an hour a day for a time, and arrange practice matches specifically around developing this shot. Let's look at both of these methods of practice, using the backhand loop against backspin as an example.
How do you practice the backhand loop against backspin? Ideally, find a coach or player who can feed multiball to you and go at it. (Make sure to have a coach or top player help you out first so you do it right.) Or practice it against a robot, though don't do this exclusively - you want to learn to react to a ball coming off a racket as well. Or have someone just push your backspin serve back over and over so you can practice the shot. (But remember that you get many more shots per time with multiball or a robot.) Do the shot over and Over and OVER until it is so ingrained you can do it in your sleep. It has to become muscle memory, and that doesn't happen by practicing it haphazardly now and then. You have to practice it relentlessly until it becomes a part of you.
Once the shot is pretty much ingrained in this way, you need to use it in practice matches. And here is where many players make a major mistake - they look to use it against their peers, who may not give you the shot you want. Instead, seek out someone who will normally push your serve back right at your backhand, allowing you to use the shot over and over. Or someone who will serve and push, allowing you to backhand loop. This usually means playing a weaker player, where you can control the start of the rally and get the shot you want to practice. Get the shot ingrained in this way as something you can do regularly in a match.
It's only after this that you would focus on using it in matches against your peers. Now you might not get as many easy chances to do the shot, but when the chance comes, hopefully it's now so ingrained you'll do it automatically. And at this point, it is part of your regular repertoire.
Whatever shot you are trying to perfect, use the same type of thinking shown here to saturate your practice so you can develop the shot. And then keep developing it, while perhaps sometimes using a little saturation training to develop other parts of your game.