State-Space Coverage Estimation

Auckland(2009)

引用 12|浏览5
暂无评分
摘要
Software model checking is the process of systematically exploring a program's state space to find hard-to-discover errors. Because of the exponential size of the state space, an exhaustive search of the state space is often impossible given the memory resources. In such cases, an estimate of how much of the state space is covered can help the verifier to decide whether to employ additional computational resources or to use more aggressive abstraction techniques. Our work focuses on coverage estimation for explicit-state model checking of software programs. In this paper, we present an estimation algorithm that is based on Monte Carlo techniques that sample the unexplored portion of the reachability graph. We implemented our algorithm in Java Pathfinder and evaluated our approach on a suite of Java programs, simulating out-of-memory errors after a known percentage of a program's state space had been searched. Our empirical studies show that, on average, our algorithm's coverage estimates differ from the actual coverage by less than 10 percentage points, with a standard deviation of about 5 percentage points - regardless of whether the actual state-space coverage is low (3%) or high (95%).
更多
查看译文
关键词
Java,Monte Carlo methods,data flow analysis,formal specification,program verification,reachability analysis,Java Pathfinder,Java programs,Monte Carlo techniques,aggressive abstraction techniques,computational resources,estimation algorithm,explicit-state model checking,hard-to-discover errors,memory resources,out-of-memory errors,reachability graph,software model checking,software programs,state-space coverage estimation,Model checking,automatic verification,coverage estimation
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要