Skip to main content
QUICK REVIEW

[论文解读] Model-checking Driven Black-box Testing Algorithms for Systems with Unspecified Components

Gaoyan Xie, Zhe Dang|arXiv (Cornell University)|Apr 19, 2004
Software Testing and Debugging Techniques参考文献 33被引用 3
一句话总结

本文提出了一种基于模型检测的黑盒测试方法,结合形式化验证与测试,以确保具有未指定组件的系统正确性。通过将模型检测条件表示为通信图和见证图来生成测试用例,该方法可在无需组件源代码的情况下,实现对时序属性(CTL/LTL)的可靠、完整且自动化的验证。

ABSTRACT

Component-based software development has posed a serious challenge to system verification since externally-obtained components could be a new source of system failures. This issue can not be completely solved by either model-checking or traditional software testing techniques alone due to several reasons: 1) externally obtained components are usually unspecified/partially specified; 2)it is generally difficult to establish an adequacy criteria for testing a component; 3)components may be used to dynamically upgrade a system. This paper introduces a new approach (called {\em model-checking driven black-box testing}) that combines model-checking with traditional black-box software testing to tackle the problem in a complete, sound, and automatic way. The idea is to, with respect to some requirement (expressed in CTL or LTL) about the system, use model-checking techniques to derive a condition (expressed in communication graphs) for an unspecified component such that the system satisfies the requirement iff the condition is satisfied by the component, and which can be established by testing the component with test cases generated from the condition on-the-fly. In this paper, we present model-checking driven black-box testing algorithms to handle both CTL and LTL requirements. We also illustrate the idea through some examples.

研究动机与目标

  • 解决在集成外部获取的、未指定的软件组件时,验证系统正确性的挑战。
  • 克服纯模型检测(需要组件详细信息)和纯黑盒测试(覆盖不充分且无形式化保证)的局限性。
  • 在基于组件的系统中,实现对时序逻辑属性(CTL 和 LTL)的自动、完整且可靠的验证。
  • 提供一种从形式化条件生成测试用例的方法,若组件通过这些测试,则可保证系统级属性满足。
  • 支持在组件行为可能因部署环境而异的安全关键系统中进行动态升级和集成。

提出的方法

  • 使用模型检测技术,推导出确保系统满足给定 CTL 或 LTL 属性的形式化条件(以通信图或见证图的形式表示)。
  • 将未指定组件所需的行为表示为有限状态图结构(通信图/见证图),该结构源自系统的规格说明。
  • 对这些图结构应用有界嵌套的深度优先搜索,系统性地生成用于组件黑盒测试的测试用例。
  • 通过在有界深度下探索图表示中的所有可达路径,确保完整性,从而保证对条件的全面覆盖。
  • 将测试用例生成与运行时的黑盒测试相结合,支持图结构的动态修剪和测试结果的重用,以提高效率。
  • 将该方法推广至处理多个组件、异步通信以及受限的无限状态系统(如时序自动机)的情形。

实验结果

研究问题

  • RQ1如何利用模型检测为基于组件的系统中未指定的组件推导出可测试的条件?
  • RQ2形式化方法与黑盒测试的结合是否能在不访问组件源代码的情况下,实现对时序逻辑属性的完整且可靠的验证?
  • RQ3用于编码确保系统级正确性所必需的组件行为的通信图和见证图的结构及其生成过程是什么?
  • RQ4如何在保持对推导出的形式化条件全面覆盖的前提下,使测试用例生成高效且可扩展?
  • RQ5该方法在多于一个未指定组件或存在异步交互的系统中,可扩展到何种程度?

主要发现

  • 所提出的 CTL 和 LTL 算法均具有可靠性和完整性,确保系统满足时序属性当且仅当组件满足推导出的条件。
  • 对于 LTL,输入到未指定组件的测试用例的最大长度受限于 $ O(n \cdot m^2) $,其中 $ n $ 为宿主系统的状态数,$ m $ 为组件的状态数。
  • 对于 CTL,测试用例长度受限于 $ O(k \cdot n \cdot m^2) $,其中 $ k $ 为公式中 CTL 算子的数量。
  • 该方法支持动态测试,通过运行时图结构修剪和结果缓存,减少冗余测试执行。
  • 该方法可推广至具有多个未指定组件的系统,并可适配受限的无限状态模型(如时序自动机)。
  • 该框架通过在不需完整系统模型检测的情况下生成组件测试用例,实现了对具有未指定组件的实时系统的验证。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。