We present a new model-based approach to testing systems whose test vectors are sequences of actions and assertions (called events in this paper). Specifically, we propose an end-to-end solution to testing that includes a method for defining tests, a way to quantify testing quality, and a framework for assessing risks. We use behavioral programming to model what to test and present how its composable and incremental nature makes it effective for designing maintainable test plans. We then formalize a framework that generalizes previous approaches for specifying coverage criteria and show how to extract effective test suites from test plans according to these criteria. For readiness quantification, we present a Bayesian approach for measuring the probabilities of bugs, i.e., risk. We also demonstrate how this quantification can be used for an informed exploitation-exploration balance in testing. We present a proof-of-concept publicly available tool that demonstrates the completeness of the approach. Finally, we provide an empirical evaluation that demonstrates the effectiveness of our tool in finding bugs, assessing risks, and achieving coverage on real systems.
翻译:我们提出了一种新的基于模式的测试系统测试方法,其测试矢量是行动和主张的序列(本文中所谓的事件)。具体地说,我们提出一个端到端的测试解决方案,其中包括界定测试的方法、量化测试质量的方法以及风险评估框架。我们使用行为方案编制模式来模拟测试和展示其可成份性和递增性如何使其有效设计可维持的测试计划。然后,我们正式确定一个框架,概括以往的具体说明覆盖标准的方法,并表明如何根据这些标准从测试计划中提取有效的测试套件。关于准备程度的量化,我们提出了一种用于测量虫子概率的巴伊西亚方法,即风险。我们还演示了如何在测试中将这种量化用于知情的开发-勘探平衡。我们提出了一个可公开使用的证明工具,以证明该方法的完整性。最后,我们提供了一种经验性评估,以证明我们的工具在查找虫子、评估风险和实现实际系统覆盖方面的有效性。