Verifying data- and control-oriented properties combining static and runtime verification: theory and tools

被引:23
作者
Ahrendt, Wolfgang [1 ]
Chimento, Jesus Mauricio [1 ]
Pace, Gordon J. [2 ]
Schneider, Gerardo [3 ]
机构
[1] Chalmers Univ Technol, Gothenburg, Sweden
[2] Univ Malta, Msida, Malta
[3] Univ Gothenburg, Gothenburg, Sweden
关键词
Runtime verification; Static verification; !text type='Java']Java[!/text; Program analysis; REAL-TIME; GENERATION; CHECKING;
D O I
10.1007/s10703-017-0274-y
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
Static verification techniques are used to analyse and prove properties about programs before they are executed. Many of these techniques work directly on the source code and are used to verify data-oriented properties over all possible executions. The analysis is necessarily an over-approximation as the real executions of the program are not available at analysis time. In contrast, runtime verification techniques have been extensively used for control-oriented properties, analysing the current execution path of the program in a fully automatic manner. In this article, we present a novel approach in which data-oriented and control-oriented properties may be stated in a single formalism amenable to both static and dynamic verification techniques. The specification language we present to achieve this that of ppDATEs, which enhances the control-oriented property language of DATEs, with data-oriented pre/postconditions. For runtime verification of ppDATE specifications, the language is translated into a DATE. We give a formal semantics to ppDATEs, which we use to prove the correctness of our translation from ppDATEs to DATEs. We show how ppDATE specifications can be analysed using a combination of the deductive theorem prover KeY and the runtime verification tool LARVA. Verification is performed in two steps: KeY first partially proves the data-oriented part of the specification, simplifying the specification which is then passed on to LARVA to check at runtime for the remaining parts of the specification including the control-oriented aspects. We show the applicability of our approach on two case studies.
引用
收藏
页码:200 / 265
页数:66
相关论文
共 39 条
[1]  
Ahrendt W, 2015, LNCS, V9109
[2]  
Ahrendt W, 2016, LNCS, V9952
[3]  
Ahrendt W, 2012, LNCS, V7609
[4]  
Ahrendt W, 2016, LNCS
[5]   A system for compositional verification of asynchronous objects [J].
Ahrendt, Wolfgang ;
Dylla, Maximilian .
SCIENCE OF COMPUTER PROGRAMMING, 2012, 77 (12) :1289-1309
[6]  
[Anonymous], JML REFEREN IN PRESS
[7]   Combining test case generation and runtime verification [J].
Artho, C ;
Barringer, H ;
Goldberg, A ;
Havelund, K ;
Khurshid, S ;
Lowry, M ;
Pasareanu, C ;
Rosu, G ;
Sen, K ;
Visser, W ;
Washington, R .
THEORETICAL COMPUTER SCIENCE, 2005, 336 (2-3) :209-234
[8]  
Artho C, 2015, ENTCS, V131, P3
[9]  
Barnes J., 2012, SPARK PROVEN APPROAC
[10]  
Barnett M, 2005, LECT NOTES COMPUT SC, V3362, P49