作者: Owolabi Legunsen , Yi Zhang , Milica Hadzi-Tanovic , Grigore Rosu , Darko Marinov
关键词:
摘要: Runtime Verification (RV) can help find bugs by monitoring program executions against formal properties. Developers should ideally use RV whenever they run tests, to more earlier. Despite tremendous research progress, still incurs high overhead in (1) machine time monitor properties and (2) developer wait for inspect violations from test that do not satisfy the Moreover, all prior techniques consider only one version wastefully re-monitor unaffected code as software evolves. We present first evolution-aware reduce across multiple versions. Regression Property Selection (RPS) re-monitors be violated parts of affected changes, reducing time. Violation Message Suppression (VMS) simply shows new time; it does Prioritization (RPP) splits two phases: likely are monitored a critical phase provide faster feedback developers; rest background phase. compare our with evolution-unaware (base) when 200 versions 10 open-source projects. RPS RPP average 9.4x (for base RV) 1.8x, without missing any violations. VMS reduces number 540x, 54 per violation