I had a question on another site about how I back tested my edge...so here goes.
First, manual back testing several years of data with the objective of killing the system not proving it.
A system is mechanical so back testing needs to be the same, no thinking "hrmmmm this looks like it might have been a signal" it either was or was not. I'm not a programmer so I did it manually, there are many good platforms you can program the back test into. Tradestation as much as they sucked as a broker for me had the most historical data and probably the best back testing. That's what I used manually was TS.
Once I had that all set and my settings dialed in to my liking I moved to forward testing. It worked and was wildly profitable on paper...BUT my mind still wouldn't let me hold the runners live.

This is still the issue I'm working on today and hope to soon overcome.
Cliffs:
Back testing is to prove the system is net profitable, and to give you the confidence to execute despite having several losers in a row. The more losers you have the closer that next trade is to being a winner and getting you back on track for net profit, assuming you keep stops small and execute them.
Forward testing on paper is to practice your system and look for fake outs of indicator breakouts etc...
There are many times where an indicator hits your level only to close below and throw a fake out so you need to feel out how real time your signals will build.