Hi Ananthi -
When you start a Test Run, the runner takes a 'snapshot' of the test and steps as they are defined at that point in time. This is to track the history of the run accurately: you'll know exactly what that Test looked like when you submitted the run for that Release, Configuration and on that date.
If you need to edit a test on the fly, you can edit steps during the run (this is controlled by a security permission).
When you change a step during the run, you 'll be asked if you want to update the Test Library with the change, or only store the change for the current run.
After you complete the run - or if you run the same test set with a different Release and/or configuration - it will pull the current state of the Test from the Test Library, and once again store it as a 'snapshot' for historical purposes.
Thanks!