On a test/dev server, with production data volumes, you would clear the execution and data caches using the following:
CHECKPOINT
DBCC DROPCLEANBUFFERS
DBCC FREEPROCCACHE
NB. Don't run this on production server
It's because, after the first time you execute a query, the data will be cached in RAM and the execution plan will be cached. So for subsequent calls, it can be retrieved much quicker - mainly due to the data cache as it's much quicker to get the data from RAM than hitting the disks.
So you would:
1) run the initial query and record stats
2) make the query/index change
3) clear cache per above
4) run the query and record the new stats
Also, just comparing the execution plans of before/after the change will give an indication of the difference - e.g. if you see a table scan replaced with an index seek.