An automatic program verification technique that consists of analysing a run of the system to determine whether that run is correct (with respect to some specification of the system). In other words, the verification is performed during the actual execution of the system by an automatic analysis tool that monitors the program execution. Run-time verification should be used in conjunction with either model checking or testing.