基于软件缺陷知识的测试框架研究
2021-07-20
来源:易榕旅网
・134・ 《测控技术}2012年第31卷第6期 基于软件缺陷知识的测试框架研究 周庆,余正伟 100191) (北京航空航天大学可靠性与系统工程学院,北京摘要:通过对软件测试框架的研究,给出了测试框架表述的三层模型,并从研究解决的软件测试问题域 出发,提出基于缺陷知识的测试框架,具体阐述了该测试框架的三层模型,并且实现了基于缺陷知识的 静态分析和灰盒动态测试技术。该测试框架为后续测试技术的研究提供了整体的理论支持。 关键词:测试框架;软件缺陷;灰盒测试 中图分类号:TP311.52 文献标识码:A 文章编号:1000—8829(2012)06—0134—05 Testing Framework Based on Software Defect Knowledge ZHOU Qing,YU Zheng—wei (School of Reliability and Systems Engineering,Beihang University,Beijing 100191,China) Abstract:By study of software testing framework,the three layer model expressed by the testing framework is presented.From the point of software testing problem domain,a testing framework based on software defect knowledge is proposed,the three models on the framework is speciically addressed,the techniques such as fstatic analysis and dynamic gray—box testing based on flawed knowledge are implemented.The testing flame— work makes the theoretical foundation for the follow—up research of testing techniques. Key words:testing framework;software defect;gray—box testing 随着高新技术在军用产品的大量应用,由软件缺 陷引发的软件失效已成为制约高新装备发展的“瓶 颈”,鉴于当前软件开发方法学水平,软件测试仍然是 排除软件缺陷、提高软件可靠性的重要途径。在基于 软件缺陷知识的软件测试方法方面,现在的研究主要 集中在代码的规则检查和软件运行时故障检测方面, 这两种方法都是利用程序静态分析技术。代码规则检 查的缺点是误报现象严重,开发人员面临大量的误报 法,为基于该测试方法的应用研究提供了理论依据。 1 软件测试框架的概念 框架(framework)是整个或部分系统的可重用设 计,表现为一组抽象构件及构件实例间交互的方法;另 一种定义认为,框架是可被应用开发者定制的应用骨 架。前者是从应用方面,而后者是从目的方面给出的 定义。测试框架也是如此,测试框架出现的最终目的 是花少量的资源来完成尽可能多的测试任务,所以软 件测试框架的建立以及框架的重用性方面是最值得测 试人员深入探究的地方。 一需要辨别其真伪,耗时耗力,并且淹没了真正的缺陷所 在;而软件运行时故障检测只能分析一些特定运行时 的错误。实际上软件的很多代码缺陷疑点通常在一些 特定的上下文语境情况下才能被激活成为软件故障, 这个确认的过程需要利用软件的静态分析和动态测试 测试框架是一组相互协作的组件集合,能够实现 个或多个测试域中的一系列问题的解决方案…。 从定义可以看出测试框架概念包含以下几个关键 技术相结合。 软件测试框架从本质上讲应该是描述测试方法的 一特征: 些策略思想,是对一种测试解决方案的表述。本文 ①i贝0试框架包括一系列被称之为组件的抽象体。 测试框架中的组件是对测试中各类实体的抽象,它可 以实例化为测试对象、测试策略或者测试工具等具体 事物。 ②这些组件相互协作,共同描述测试解决方案。 研究的测试框架描述了基于软件缺陷知识的测试方 收稿日期:2011—06~26 作者简介:周庆(1983一),男,湖南湘乡人,博士研究生,主要研 究方向为软件测试及软件可靠性;余正伟(1979一),男,湖北武 汉人,博士,主要研究方向为软件可靠性、软件测试环境。 测试框架中利用组件及组件之问的协作方式定义了一 个完整的测试解决方案,它是面对特定测试域中一系 基于软件缺陷知识的测试框架研究 列共性问题的可复用的解决方案。 ③测试框架中体现的测试方法以及组成框架的 组件和组件的行为方式都是可复用的。测试框架的中 心思想就是提供测试解决方案的高层复用。 ④测试框架解决的是某个特定范围的测试问题, 因此一个测试框架必须有适用的目标范围,本文称之 为测试域。 测试框架概念是框架理论在软件测试领域的应 用,它的目的是解决软件测试领域的复用问题,而复用 技术的基础则是对相关问题域的抽象。如图1所示, 通常是对某一个被测试软件进行测试,即图中的最底 层。而通过对测试领域中纷繁复杂的问题进行分析后 会发现许多测试问题具有相似的特点,于是可以将其 抽象为一类具有共性的测试问题,形成一个测试域,而 针对这些具有共性的测试问题的解决方案必定具有相 似之处,抽象出这些解决方案的共同之处并且用一种 固定的形式确定下来,于是形成一个具体的测试框架。 而解决方案的固定表示形式则是根据软件测试的本质 得出的测试框架描述。 软件测试问题领域 测试解决方案 测试框架表述 + I具体化 一种测试框架 l实例化 实例化的测试框架 图1测试框架的提出 测试框架的实质是一种针对某类特定测I试问题的 解决方案,解决方案中包含具体的测试方法和测试工 具以及相关知识。从某种意义上讲,测试框架是一个 “半成品”,它利用组件以及组件之间的协作关系定义 了一种测试方法,并由此实现了一种解决方案,测试框 架中并不包含具体的测试用例、测试程序或者测试脚 本,测试者可以根据测试框架提供的解决方案进行框 架的实例化来实现一种测试方法。 测试框架采用一种层次化和模块化方式表示软件 测试问题的解决方案(如图2所示)。测试框架的底 层是固定部分,表示一些固定的概念、对象或事件,称 之为原则层。上面一层由若干组件构成,具体表示测 试解决方案的特征,称之为结构层。结构层中的组件 都有各自的屙I生,对组件进行附加说明表示组件的详 细信息,称之为细节层。测试框架的表述分为3层,它 们是对测试解决方案的不同抽象程度的描述,图2表 示出测试框架的表述形式与框架理论中框架对知识表 述形式的关系。 ・135・ 侧面 细节层(组件的具体实现) facot / —槽 结构层(测试框架的体系结构) (slot 原则层(测试域、测试原理等) 概念 图2测试框架表述的“三层模型” 2基于软件缺陷知识的测试框架的提出 软件作为思维的产物不可避免地受到编程者自 身、所使用的编程语言特点以及工作环境等多方面的 影响,不同的人、不同的软件、同一个人在不同的时刻 都可能会犯不同的错误。但是,由于人所具有的思维 定势以及编程语言自身的特性,使得软件缺陷的出现 具有一定的规律性和可统计性。这是研究基于软件缺 陷知识的测试方法的工程基础。 软件缺陷模式特征知识实际上是不确定的知识, 符合特征的软件代码未必就是软件缺陷,软件缺陷模 式显式特征在静态分析过程中就可以进行缺陷的确认 工作,还有一部分软件缺陷模式隐式特征需要通过动 态测试方法将软件缺陷能否激活成为软件故障,最后 才能确认是否为软件缺陷。所以本研究将基于软件缺 陷知识的测试方法限定在软件代码的静态测试和动态 测试阶段,该测试方法是传统测试方法的完善和补充。 3测试框架的原则层 3.1测试框架的测试域 测试域原则上界定了一个测试框架要解决问题的 范围,同时描述了这个范围内所有问题的共同特性,其 中包括了测试本质模型中的测试对象以及测试目标的 相关内容,测试域原则上确定了测试框架复用过程的 前置判断条件。 基于软件缺陷知识的测试框架的测试域原则包 括: (1)该测试框架针对的是源代码的测试。 目前针对源代码的测试类型主要包括质量度量、 代码规则检查、数据流分析、控制流分析、覆盖率测试 等,但是还没有研究针对软件缺陷模式特征的静动态 结合的测试方法。在软件的单元测试阶段,希望通过 一种测试手段来发现与这些知识相关的源代码缺陷。 基于软件缺陷知识的测试框架解决的就是如何充分利 用这些知识来进行源代码测试的问题。 (2)该测试框架主要实现了基于缺陷知识的静态 分析和灰盒动态测试。 软件缺陷知识收集并形式化为软件缺陷模式特征 知识库,这些特征又分为显式特征和隐式特征,通过对 源代码进行静态分析,可以找到符合这些特征的软件 ・136・ 代码,并确认符合软件缺陷模式显式特征和部分隐式 特征的软件缺陷,而还有一部分符合软件缺陷模式隐 式特征的代码需要通过动态测试的方法来确认是否为 软件缺陷。 本框架所需要的静态分析和灰盒动态测试都属于 单元测试阶段。静态分析不需要运行被测程序,而是 通过对源代码进行词法、语法等分析来查找程序中的 缺陷或分析源代码的相关属性。灰盒动态测试是软件 测试技术中的一种,它与白盒动态测试和黑盒测试相 对应。白盒动态测试是一种按程序内部的逻辑结构和 编码结构设计测试数据的测试方法。采用这种软件测 试方法,测试者可以看见被测程序的内部结构,并根据 其内部结构设计测试数据,使程序中的每个语句、每个 条件分支、每个控制路径都在程序测试中受到检验。 黑盒测试不关心软件的内部实现机制,只注重从软件 输人/输出进行分析的一类测试,对软件实体即源代码 不会进行干预。而灰盒动态测试是指结合白盒动态测 试与黑盒测试的测试方法,即从用户的角度关注软件 的功能实现情况的同时,更多地注意软件的结构 j。 灰盒动态测试目前没有理论界公认的权威定义,比较 认同的观点为其是综合黑盒测试和白盒动态测试特点 的一种测试方法。其既有白盒动态测试的特点又有黑 盒测试的特点。例如不但关注输出对于输入的正确 性,而且关注程序内部表现。但这种关注并不像白盒 动态测试那样详细、完整,而只是通过一些表征性的现 象、事件和标志等来判断内部的运行状态。基于软件 缺陷知识的测试框架主要包括的测试技术为静态分析 技术和灰盒动态测试技术。 (3)该测试框架支持软件自动化或半自动化测 试。 ● 随着软件实现的功能越来越多,软件源代码的规 模也越来越大,并且复杂度也越来越高。如果对源代 码进行人工的搜索和代码走查式的分析,工作量是非 常巨大的,同时因为人的因素,也会漏查很多的软件缺 陷。因此基于软件缺陷知识的测试框架应该具有支持 自动化或半自动化测试的能力,这样才可以大大提高 测试效率与测试有效性。 3.2测试框架的基本原理 测试原理规定了测试框架所提供的测试解决方案 的核心原则。测试原理中最重要的部分是对测试策略 中的基本概念和基本原理进行了定义并且对测试依据 进行了明确规定。从某种意义上讲,测试原理决定了 测试框架能满足多大程度的复用以及测试框架扩展能 力的高低。 测试框架围绕测试解决方案而建立。基于软件缺 陷知识的测试框架表述一种静动态相结合的测试方 《测控技术}2012年第31卷第6期 法,该方法蕴含两个基本原理。 (1)知识库原理。 软件缺陷知识库是基于软件缺陷知识的测试框架 最本质的特征,测试框架的应用效果在很大程度上取 决于软件缺陷知识库的容量和质量。知识库可定义为 知识、经验、规则和事实的集合,而知识库系统的功能 应该提供:知识的表示方法、对知识系统化的组织管理 以及知识库的操作。知识库和传统数据库的区别在于 它不但可以包含大量的简单事实,而且包含了规则和 过程型知识。知识获取、知识表示、知识推理是知识库 研究的热点和难点。 (2)静动结合原理。 。马克思主义关于运动和静止辩证关系原理告诉我 们,要用运动、变化、发展的观点观察和处理问题,对事 物的静态分析必须与动态考察相结合。软件缺陷本身 也符合这个原理,软件缺陷存在于软件内部,如果没有 被激活,那么这个软件缺陷导致软件失效的概率即为 零,而软件的失效,最后的缺陷定位还是需要在静态的 源代码中进行查找和分析。 知识库原理是基于软件缺陷知识的测试框架建立 的基本思想和工程基础,静动结合原理是实现这一测 试思想的具体手段,两者共同决定了该测试框架的体 系结构以及使用规则等测试框架具体内容。 3.3测试框架的使用原则 测试框架的原则层中还规定了测试框架使用过程 中需要遵循的一些原则,这些规定和指南指导使用者 对框架进行必要的扩展和对细节层的实例化。基于软 件缺陷知识的测试框架的使用原则包括: (1)测试框架使用过程中不能更改基本原则。 基本原则是测试框架的基础,是框架的固定部分, 因为无论是框架体系结构还是框架的实现都是建立在 基本原则的基础之上,所以在测试过程中改变了基本 原则就相当于改变了整个框架,那么这个测试框架也 就没有了存在的意义。 (2)测试框架可以对框架体系结构进行适当扩 展。 框架使用中可以对体系结构进行扩展以满足新加 入的基本原则,但是通常来说对测试框架体系结构不 宜进行大规模的改动,因为框架的体系结构处处体现 了基本原则,如果原则没有变,那么框架的改动也就不 存在。 (3)测试框架的实现细节可以进行修改与适配。 测试框架的实现细节是对框架体系结构的具体实 例化,使用过程中可以根据实际情况对已有的实现进 行修改,甚至可以重新构建实现细节以满足特殊需要。 基于软件缺陷知识的测试框架研究 4测试框架的结构层 测试框架的结构层是测试原则层中基本原则的结 构化实现,也是对测试解决方案的具体表述。测试框 架在结构层中定义了各种组件、组件之问的结构关系 和协作关系,构成_r测试框架的体系结构。测试框架 的体系结构是依据原则层中的基本原则而构建的,是 一个测试框架本质思想的外在表现,它以具体的形式 表示出了框架所要提供的测试解决方案。 根据软件测试的抽象模型,测试框架的体系结构 应该具体地表述出测试方法和测试工具的结构和相互 关系,以及测试方法中所涉及的测试过程、测试组织结 构以及测试策略等。所以在描述框架的体系结构时通 常采用多视图的方式,利用过程视图、组织结构视图以 及测试工具视图等从多个侧面对框架的体系结构进行 全面的描述。 测试框架的结构层是框架进行复用和扩展的核 心。结构层中定义的组件以及组件之问的关系都提供 了测试框架的可复用资产,同时测试框架的扩展也是 在结构层中根据框架基本原则增加新的组件和组件问 关系构建出扩展的测试框架体系结构。 基于软件缺陷知识的测试框架结构层的体系结构 由测试过程和测试工具视图进行描述。其中测试过程 视图是对解决方案执行过程的描述。过程视图应该表 述出测试活动的具体组成、活动的具体内容以及活动 的执行顺序等。而测试工具视图是对测试解决方案中 用到的各种软件或硬件工具的描述。软件测试活动中 测试工具发挥着很大的作用,尤其是自动化测试更是 离不开工具的支持。测试工具视图应该表述出测试过 程中要用到的测试工具、测试工具的作用、工具使用场 合以及使用方法等相关问题。 下面分别讨论基于软件缺陷知识测试框架的2个 视图结构。 4.1测试过程视图 测试过程视图描述了使用基于软件缺陷知识的测 试框架进行源代码测试的过程。测试过程视图用 UML中的活动图进行描述 J。如图3所示,基于软件 缺陷知识的软件测试的全过程分为需求、设计、执行和 分析4个主要阶段。 (1)测试需求阶段。 测试需求阶段是软件测试的初始阶段。确定被测 试软件和测试目标之后,测试需求阶段首先要对被测 软件进行分析,然后列出本次测试要满足测试目标所 要完成的测试内容。在基于软件缺陷知识的测试框架 中,测试者要根据被测系统软件代码的特点和测试要 求选取软件缺陷模式特征知识库中的知识。 ・l37・ (2)测试设计阶段。 测试设计是基于软件缺陷知识的软件测试中的一 个重要阶段。在测试需求阶段制定测试需求之后,在 测试设计阶段需要进行测试工具的选择。这些测试工 具主要包括程序的静态分析工具和测试数据生成工具。 由于不同的测试工具能分析的软件缺陷类型是不 一样的,因此选择的测试工具可能是一种,也可能是多 种的组合,但是这些工具之间一定要有良好的接口。 测试设计阶段的最终产品是一组测试工具,以及 这些测试工具如何联合使用的原则。至此,测试运行 的准备工作已经完成。 图3测试框架结构的测试过程视图 (3)测试执行阶段。 测试执行阶段是根据测试需求和测试设计运行测 试的过程。在测试设计阶段搭建的测试工具集提供了 测试运行所需要的一切服务。因为基于软件缺陷知识 的软件测试是一种静动结合的测试,所以测试需要由 测试执行系统支持,在运行过程中产生体现测试者测 ・1 38・ 试意图的测试输入数据,并通过被测软件的输出数据 末分析软件的缺陷. 事实-J ,测试执行阶段是由静态分析和动态测试 运行构成的 首先进行静态分析,记录静态分析的结 果后通过分析确定哪些缺陷可疑点需要通过生成动态 测试数据来确定是 为软件缺陷,再生成对应的软件 测试数据来动态运行程序,并记录过程中的重要和关 键现象,将测试结果以文件的形式进行保存。实际f 测试执行过程也需要进行一部分的结果分析l 作 (4)测试结果分析阶段。 测试结果分析阶段是进行测试结果分析的过程。 测试分析包括两项:I 作:一项是分析静态分析的结果 数据; 一个足最重要的,通过埘生成的软件测试数据 预期结果进行比对,确定软件缺陷叮疑点是否为软件 缺陷。当然,这个阶段也包括软件测试报告等的编写。 4.2测试工具视图 基 软件缺陷知识的测试框架提供的源代码级软 件测试解决方案是一种13动化或半自动化测试,自动 化或半自动化的测试离 J_F测试 具的支持,测试_I 具是利用软什/硬件设备辅助测试方法进行的,使测试 中的某些过程能够13动完成的手段。这些测试工具从 功能I 讲要具有程序静态分析中的语法分析、词法分 析、数据流分析和控制流分析等功能,同时还要具备将 这些分析得到的程序信息转换为中问文件,供后续软 件的缺陷匹配来使用,而且工具中还应该有基于源代 码相关信息的中间文件的搜索、匹配功能,进行完静态 分析,找到源代码中的缺陷可疑点后,部分可疑点还需 要利用测试 具生成能激活这些可疑点的测试数据来 进行动态测试,最终确认是否为软件缺陷。具有以上 功能的测试工具在实际情况下,可以是一个测试工具 或者多个测试工具,工具之间必须有良好的接口。基 于以 的分析得到基于软件缺陷知识的测试框架的测 试工具视图如图4所示。 图4中,基于软件缺陷知识的测试框架中提供的 工具分别运行于两个系统之中静态分析系统和动态测 试系统。静态分析系统主要用于软件代码的信息分析 和缺陷的匹配工作。通过对软件代码信息的分析,叮 以得到软件代码信息的中间文件。基于这些中问文 件,通过各种缺陷特征的匹配算法来发现与之相应的 缺陷可疑点。动态测试系统主要用于针对~些软件的 缺陷可疑点生成软件测试数据,并执行这些测试数据 来确定这些可疑点代码是否为软件缺陷。 5 测试框架的细节层 细节层中定义了结构层中组件的属性以及属性取 值范围和规律。细节层是对结构层组件的附加说明, 《测控技术>>2ol2年第3 I誊第6期 每一个组件郡需要通过・ 性米进行弹细的描述, 例如测试策略中的测试数掂衷爪为一个 件, 十勾 父心的足测试数据Lj其他绀件之fNj的父系,}lJ】确地阐 述了测试数据的产生机制,而测试数据的格 等细 内容则是在细 层 描述。 4测试框 结掏的测试j. }见 尽管实际情况中经常尢法明确地划分m测试 架 的结构层与细节层,但是应该n』j确它f『j小仪仪 慨念 卜-存在差别,在测试框架的实际使f}j r11也仃在较大的 区别。结构层中定义的是测试框架的宏观体系结构, 组件作为一个整体参与其叶1,描述r测试解决 案的 核心策略,结构中的组件以及组件之间的协作天系鄙 是可以直接复用的资产。『而细节层则通过绀件属性刈‘ 组件进行了更DNtI ̄致的描述,在复用过程【十l通常会根 据具体情况增加或减少组件属性。另外,组件的属性 是进行框架实例化的基础,也就是说,框架实例化足根 据具体的被测试软件以及测试的}1标对测试框架中组 件属性的直接操作。 原则层阐述了测试框架的测试域和基本原理,体 系结构层描述了解决方案各方面的组织结构,这两个层 次的内容都是测试框架中相对固定的部分。细节层则 是对解决方案中各种测试工具的具体描述,这部分内容 在测试框架的不同使用过程中经常根据使用者对被测 软件和测试日标以及测试对象的特点进行修改和重新 实现。测试工具的具体实现均属于细节层问题,例如1 具软件的设计思路、实现语言、 具界面等。基于软件 缺陷知识的测试框架中提供了一组测试 [具,使用者可 以根据需要进行选用或者重新设计实现。具体包括: ①代码信息分析工具。代码信息分析丁具有很 多种,例如针对C/C++语言的PREfix、PREfast、 Splint、LEX、YACC、SafePro C/C++、Logiscope等 具; 针对Java语言的ESC、Jtest、QAJ等]二具都能对代码信 息进行分析。 (下转第142页) ・l42・ 《测控技术)2o12年第31卷第6期 度为±2 mK,根据以上的实验情况可以得出,当工作 区内放人圆柱型标准电阻时,实际丁作时槽内的温度 稳定度满足技术指标;当工作区内竖直放入平板型电 5 5 4 4 的峰峰值为4 mK。电阻成45。夹角时的温度波动范围 小于平行放置时的波动的范围,而且与放置圆柱型电 2 5 p\ 赠 2 3 5 p\ 踞 2 3 5 2 3 5 2 3 2 3 2 3 4 阻的情况极为相似。 5 4 5 ∞ ∞ 4 4 4 O 3 O 2 O O O 9 9 9 8 图5工作区内放人平板型电阻与槽壁成45。夹角 2.3.2 自制平板型电阻水平放置 当自制平板型电阻水平放置在工作区内时,测试 15 min得到的温度波动曲线如图6所示。 0】 2 3 4 5 6 7 8 9 10 11 12 1 3 14 1 5 时间/min 图6工作区内水平放入平板型电阻 由图6可知,此时恒温槽内温度波动的峰峰值为 9 mK,恒温槽内的温度的稳定性明显变差。因此,当 平板型电阻水平放置在工作区内的时候,极大地影响 了恒温槽内的射流速度和方向,影响了射流中温度的 扩散,破坏了槽内温度的均匀性和稳定性。总结各种 情况下,槽内温度波动的峰峰值如表1所示。 表1 不同情况下恒温槽内温度稳定度 工作区内电阻放置情况 15 rain内温度波动峰峰值/mK 不放人电阻 放入圆柱型电阻 竖真放入平板型电阻与槽壁平行 竖韪放入平板型电阻与槽壁成45。 水平放人平板型电阻 3 结束语 不同的电阻以及不同的放置方式和位置都会影响 恒温槽内T作区的温度稳定性。在精密测量中,对各 环节的要求都非常严格,某个环节微小的变化都有可 能影响整个精密测量的结果。 本恒温槽的技术指标为:在工作温度范围内稳定 阻时,温度稳定度基本满足技术指标;当工作区内水平 ∞ 鳃 % 放置平板型电阻时,温度稳定性遭到破坏,稳定度要求 达不到给定的指标。在使用平板型电阻做实验研究的 时候,为了得到更稳定的恒温环境,应该将电阻放置在 与槽壁成45。夹角的位置,该位置是对温度稳定性最 有利的位置。 参考文献: [1]刘沛清.自由紊动射流理论[M].北京:北京航空航天大 学出版社,2008. [2] 董志勇.射流力学[M].北京:科学出版社,2005. [3] 田艳丽.旋转射流搅拌全流场数值模拟及喷嘴结构优化 [D].浙江:浙江大学,2005. [4] 王瑞和.水射流流场的有限元分析与模拟[A].高压水射 流学术会议论文集[C].2001:13—18. 口 (上接第138页) ②缺陷匹配工具。实际上在上述代码分析工具 中很多工具都能对一定类型的软件缺陷特征进行匹 配。能进行缺陷匹配的工具一般都具有代码信息分析 功能。 ③测试数据生成工具。测试数据生成工具主要 指单元测试阶段的工具,这部分现有的测试工具较少, 一般可以在开源静态分析工具中进行开发或通过对被 测软件插装,然后选用一些静态分析工具和人工方式 结合来完成。 ④测试用例执行工具。通常单元测试工具都能 执行生成的测试数据。比较常见的包括:c语言的c ++Test、Testbed、Veeteast和CUnit等,Java语言的 JTest、JUnit和JTR等。 6 结束语 本文从研究测试问题域出发,通过对测试框架理 论的研究,提出一种基于软件缺陷知识的测试框架,并 研究此框架的三层模型。此框架为基于软件缺陷知识 的测试方法应用研究提供了理论支持。 参考文献: [1]王轶辰.嵌人式软件仿真测试框架研究[D].北京:北京 航空航天大学,2006. [2]李秋英,刘斌,阮镰.灰盒测试方法在软件可靠性测试中 的应用[J].航空学报,2002,23(5):455—458. [3]Roff J T.UML:A Beginner’S Guide f M].California: Fhe McGraw—Hill Companies,2003. II