You can track progress at several different levels of granularity depending
on your needs. The simplest is to consider a task either not started or
completed and in the Tracking views just enter the actual start and actual
finish dates (in the actual fields, *not* the scheduled fields) once a task
is done. A bit more detailed level is to consider tasks to have one of
three states - not started, 50% done, and complete. As soon as a task
starts, it is considered 50% done until it's finished. So enter the actual
start date, set % complete to 50%, and come back to it when the resource
reports it completed at which point you enter the actual finish date.
(Entering an actual finish always sets the task to complete and recomputes
duration and work accordingly.)
Simply marking it as 100% works but it assumes that the currently scheduled
start and finish, work, duration, etc was what in fact happened. A more
accurate method is to display the Tracking Table in the Gantt chart and
enter the Actual Start date if different from the scheduled start, the
Actual Duration worked, and if complete set the Remaining Duration to zero.
For even more accuracy, go to the Task Usage view (or resource usage if you
prefer), right click and display the Actual Work row, and enter the actual
hours worked for each resource on the days where they occured and delete any
remaining scheduled work once the task is actually completed. Entering
actual hours that are different from scheduled will cause duration to change
as you go.