With software systems becoming increasingly pervasive and autonomous, our ability to test for their quality is severely challenged. Many systems are called to operate in uncertain and highly-changing environment, not rarely required to make intelligent decisions by themselves. This easily results in an intractable state space to explore at testing time. The state-of-the-art techniques try to keep the pace, e.g., by augmenting the tester's intuition with some form of (explicit or implicit) learning from observations to search this space efficiently. For instance, they exploit historical data to drive the search (e.g., ML-driven testing) or the tests execution data itself (e.g., adaptive or search-based testing). Despite the indubitable advances, the need for smartening the search in such a huge space keeps to be pressing. We introduce Reasoning-Based Software Testing (RBST), a new way of thinking at the testing problem as a causal reasoning task. Compared to mere intuition-based or state-of-the-art learning-based strategies, we claim that causal reasoning more naturally emulates the process that a human would do to ''smartly" search the space. RBST aims to mimic and amplify, with the power of computation, this ability. The conceptual leap can pave the ground to a new trend of techniques, which can be variously instantiated from the proposed framework, by exploiting the numerous tools for causal discovery and inference. Preliminary results reported in this paper are promising.
翻译:随着软件系统日益普及和自主化,我们对其质量的测试能力面临严峻挑战。许多系统需要在不确定且高度变化的环境中运行,时常需要自主做出智能决策,这导致测试时需要探索的状态空间变得难以处理。当前最先进的技术试图跟上这一步伐,例如通过某种(显式或隐式的)观测学习来增强测试者的直觉,从而高效搜索这一空间。具体而言,他们利用历史数据驱动搜索(如基于机器学习的测试)或利用测试执行数据本身(如自适应测试或基于搜索的测试)。尽管取得了毋庸置疑的进展,但在如此巨大的空间中实现智能化搜索的需求依然迫切。我们提出基于因果推理的软件测试(Reasoning-Based Software Testing,RBST),这是一种将测试问题视为因果推理任务的全新思维模式。与仅依赖直觉或当前最先进的基于学习的策略相比,我们认为因果推理更能自然地模拟人类为"智能"搜索空间所经历的过程。RBST旨在借助计算能力模仿并放大这一能力。这一概念性突破可为新技术趋势奠定基础,通过利用大量因果发现与因果推断工具,可从所提出的框架中实例化出多种技术。本文报告的初步结果令人期待。