A realistic approach to strategy testing/optimization in Mql5

 
Hello amazing developers and expert traders. 
Please i need your expert opinions especially with my current situation of strategy testing and optimization.
When an Expert Advisor (EA) performs well during backtesting and optimization but fails to deliver similar results on a live or demo trading account, what are the probable issues and how best could one carry out optimizations that would ensure the results are close to reality as possible.

All your suggestions would be greatly appreciated.
Warmest regards.