(programming) A computer program that helps the user to test and debug other programs, by enabling their step-by-step execution controlled by the user, setting of breakpoints, and monitoring values of variables.