If you play a strong engine a lot, you'll get in the habit of not checking whether the opponent's move is a mistake, and you'll never get practice pushing for a win from a winning position.
If you play an engine you can sore roughly 50% against, it's still not ideal. Engines are typically bad at strategic moves, and engines that are forced to play far below their level will make strange tactical mistakes too. Humans opponents intuitively know what makes a position hard for a human, and will put up tougher (or at least a different type) of resistance.
If you play an engine that's weaker than you... that makes no sense to me. Unless you're just killing time or something.
Having said all that, I think playing an engine has its uses. For example some players are lazy tactically, or have the bad habit of playing for simple tricks. If they play an engine, they'll be forced to back up their moves with a lot of calculation, and will never play for simple tricks, so for them playing an engine can help strengthen certain skills and/or form useful habits.
If you want to play engine games for training and improvement, there are different thoughts about this.
- Play the strongest engine you have.
- Play a strong engine with reduced strength.
- Play a strong engine which automatically adapts it's strength to you strength, like Fritz friend mode or Shredder Classics 5.
- Play a weak engine, and when you get stronger, choose a stronger engine.
Regardless what option you choose, I think it's important to make analysis of the game afterwards. In this process I think you should use the help of the strongest engine you have. (A good coach would be better).
Any thought about this?