1、基于执行序列的嵌入式软件时序异常检测 王博 白晓颖 陈文光 SONG Xiaoyu 清华大学计算机科学与技术系 清华大学信息科学与技术国家实验室 波特兰州立大学电气与计算机工程系 摘 要: 时序特性是嵌入式软件的重要特性, 实时嵌入式软件运行的正确性不仅依赖于任务执行结果, 更依赖于任务执行时间.执行任务往往具有多个时间约束, 且相互之间可能存在制约关系, 对时间约束进行验证和确认是嵌入式软件测试的一个重要问题.文中提出一种基于执行片段的嵌入式软件时序特性检测方法 (Trace-Based Temporal Defect Detection, TBTDD) .一方面, 基于扩展语义接口自动机
2、(Extended Semantic Interface Automata, ESIA) 模型, 刻画嵌入式软件时序特性需求, 分析不同时间约束间存在的相关关系类型, 并提出基于相关矩阵的相关时间约束识别算法;另一方面, 在目标软件运行环境中提取包含时间信息的执行片段, 通过执行片段与时间约束模型的匹配, 依据预先制定的时序特性检测准则, 检验执行序列是否满足模型中各项独立和相关时间约束的要求, 进而发现被测软件中存在的时序缺陷.实验以卫星定位系统软件为例进行建模与缺陷检测, 并在执行片段集和缺陷检测能力等方面进行了对比分析.实验表明, 该方法可有效检测软件运行过程中存在的各类异常时序, 提高
3、了软件时序测试的有效性和充分性.关键词: 接口自动机; 时间约束; 执行片段; 相关性分析; 时序缺陷检测; 软件测试; 嵌入式软件; 作者简介:王博, 男, 1979 年生, 博士研究生, 主要研究方向为软件测试、嵌入式系统.E-mail:.作者简介:白晓颖, 女, 1973 年生, 博士, 副教授, 中国计算机学会 (CCF) 会员, 主要研究方向为软件测试、服务计算.作者简介:陈文光, 男, 1972 年生, 博士, 教授, 中国计算机学会 (CCF) 会员, 主要研究领域为并行与分布式计算.作者简介:SONG Xiaoyu, 男, 1963 年生, 博士, 教授, 主要研究领域为形式化
4、方法、嵌入式计算系统.收稿日期:2016-05-30基金:国家自然科学基金 (91218302, 61472197) Temporal Defect Detection of Embedded Software Using Timed Execution TraceWANG Bo BAI Xiao-Ying CHEN Wen-Guang SONG Xiaoyu Department of Computer Science and Technology, Tsinghua University; Department of Electrical and Computer Engineering,
5、 Portland State University; Abstract: Temporal requirements are critical to embedded software.The correctness of system operation depends on its satisfications to the timing constraints.In an embedded system, there usually exist many timing constraints which may also correlate with each other.It is
6、important to ensure that the execution of the system conforms to its temporal requirements.The paper proposes an approach for detecting temporal defects based on execution traces analysis.The characteristics of timing constraints are analyzed, and the ESIA (Extended Semantic Interface Automata) is p
7、roposed to characterize temporal requirements of embedded software.Then the correlation patterns of timing constraints are analyzed, and an algorithm using timing matrix is proposed to identify the correlated timing constraints in ESIA model.Traces tagged with time stamps are gathered from the execu
8、tion environment of the target software.According to the temporal checking rules predefined, the traces are matched to the temporal model to verify its conformance to timing constraints, both individual as well as correlated constraints.In case violations detected, potential defects will be reported
9、 for further investigation.Experiments are exercised on a satellite positioning system for modeling and defect detection.The results are compared with other approaches in terms traces analysis and defect detection capabilities.It showed that the proposed approach can effectively detect temporal anom
10、alies in system execution, which enhance the effectiveness and efficiency of temporal testing of embedded software.Keyword: interface automata; timing constraint; execution trace; correlation analysis; temporal defect detection; software testing; embedded software; Received: 2016-05-301 引言时序特性是否满足设计
11、要求将对实时嵌入式软件运行产生关键影响, 时序异常可能造成任务执行失败, 甚至对系统造成破坏性影响.特别在具有高实时和高安全性要求的应用领域内, 例如航空机载任务系统、航天发射控制以及高速铁路运控等, 各项任务的执行具有严格时间约束, 对系统的安全和高效运行起着至关重要的作用.因此, 保证嵌入式软件时序设计以及实现的正确性是嵌入式软件开发的重要任务.嵌入式软件时序测试是检验嵌入式软件时序特性是否满足设计要求以及保证软件质量的重要手段.传统时序测试方法需要介入甚至控制软件运行过程, 其核心是测试用例设计.在特定运行场景下, 通过在目标软件运行环境中设置激励和预置数据, 控制其按预期方式运行, 随
12、后观察、采集运行结果, 并检查运行结果是否满足设计要求.随着嵌入式软件规模和复杂度的不断上升, 传统时序测试方法面临一些困难和局限性, 时序测试与验证愈发成为一项困难的工作.首先, 在某些情况下, 测试人员无法直接获得目标软件控制接口, 无法暂停、终止或介入软件运行过程, 造成部分场景无法设置, 部分用例无法执行;由于仪器性能限制以及数据观测误差等, 测试人员无法从外部采集精确的运行时间信息;当嵌入式软件是由多个构件组成的分布式系统时, 测试人员难以协调控制各构件间的运行时序.以上因素均可能造成嵌入式软件时序特性测试不充分和结果不准确.其次, 嵌入式软件中往往存在大量时间约束, 限制各项任务的
13、执行时间.不同任务的执行路径可能相互重叠, 其执行时间之间可能存在特定依赖关系, 从而造成相应时间约束之间间接相关.因此, 在时序测试中, 不仅需检验各项任务的执行时间是否满足相应时间约束, 还需检验任务的执行时间是否满足此类依赖关系, 以检测可能的时序异常, 而传统测试方法难以针对此类相关时间约束进行测试.再次, 由于对目标软件理解以及测试环境条件的局限性, 通常情况下, 设计的测试用例集难以完全覆盖软件运行过程中的各类正常以及异常时序, 特别是难以对偶发的异常时序进行测试.针对以上问题, 本文提出一种基于执行序列的时序缺陷检测方法 (Trace-Based Temporal Defect
14、Detection, TBTDD) .相对于传统时序测试方法, TBTDD 无需控制目标软件运行, 而通过持续监视过程, 提取一组包含时间信息的执行片段, 进而根据目标软件形式化描述, 对收集的软件运行信息进行离线自动检测, 以考察软件实现是否满足设计要求.TBTDD 方法可识别执行路径上不同时间约束间的相关关系, 并对不同任务执行时间之间的依赖关系进行检测.TBTDD 方法可伴随目标系统交付运转过程执行, 通过长期收集有效的执行片段, 积累丰富的运行场景, 实现对目标软件各类正常以及异常时序的充分检测.本文主要内容如下:(1) 时序特性分析与建模.对嵌入式软件时序特性进行分析, 在扩展语义接
15、口自动机 (Extended Semantic Interface Automata, ESIA) 模型中定义时间变量、置零行为以及时间约束等元素, 建立 ESIA模型时序语义, 支持嵌入式软件时序特性的定量和精确描述.(2) 时间约束相关性分析.在 ESIA模型的特定执行路径之上, 分析不同时间变量的取值之间可能存在的依赖关系, 据此定义不同时间约束间的包含相关和交叉相关关系.(3) TBTDD方法及算法.对嵌入式软件运行时序检测流程进行分析与讨论, 在ESIA模型之上定义包含时间信息的执行片段, 制定执行片段可接受性准则, 提出执行片段匹配以及时序缺陷检测等算法, 以检查嵌入式软件执行序列
16、包含的时间信息是否满足设计要求.实验结果显示, TBTDD 方法可有效检测嵌入式软件执行片段中存在的各类时序缺陷, 特别是违反相关时间约束以及异常时序处理错误等缺陷, 与传统时序测试方法配合使用时, 可对目标软件时序特性进行更充分的测试.TBTDD 方法不需要预先设计测试用例与测试场景, 降低了测试环境和人为因素对测试工作的限制与影响.TBTDD 方法不会干扰软件正常运行, 可获得准确的运行时序信息与测试结果.本文第 2节描述研究背景;第 3节介绍 ESIA模型时序语义相关内容, 讨论不同时间约束之间的相关关系;第 4节介绍 TBTDD方法的工作原理与系列算法等;第5节介绍实验设计, 以卫星定
17、位系统软件为例, 进行时序特性建模与时序缺陷检测, 以验证本文方法的有效性;第 6节叙述与本文研究相关的工作;第 7节总结全文内容.2 研究背景精确与完整的建模是理解目标系统时序特性和开展时序缺陷检测的基础.近年来涌现出一系列时序特性定量描述模型, 例如时间自动机 (Timed Automata, TA) 、时序描述逻辑 (Temporal Description Logics, TDL) 、统一建模语言 (Unified Modeling Language, UML) 、时间 Petri网 (Timed Petri Net, TPN) 以及马尔科夫链 (Markov Chain) 等1-3,
18、 均可精确刻画嵌入式软件时序特性.接口自动机 (Interface Automat, IA) 是一种轻量级的构件接口模型4.IA模型通过状态机上的接口行为描述构件间的通信与交互过程, 刻画系统外部行为特性, 隐藏构件内部结构, 是可组合嵌入式软件系统建模的有效工具.定义 1.接口自动机 IA4.嵌入式软件 IA定义为 P= (VP, VP, AP, AP, AP, P) , 其中:VP是自动机包含的状态集合;VP是自动机包含的初始状态集合, , 则称 P为空;AP、A P和 AP分别为输入、输出和内部行为集合, APA P=APA P=APA P=;AP=APA PA P表示全部行为的集合;是
19、自动机包含的状态迁移集合.ESIA模型通过对 IA进行变量以及执行约束等扩展, 支持反应式嵌入式软件行为特性的建模与分析5.在 ESIA模型中, 引入输入、输出行为参数、内部计算变量、参数约束条件以及行为前置/后置条件等, 对软件运行过程中的数据信息进行描述.定义 2.扩展语义接口自动机 ESIA5.嵌入式软件 ESIA定义为 P= (VP, VP, XP, AP, P, E, P) , 其中:VP是自动机包含的状态集合;VP是自动机包含的初始状态集合, V PV P, 若 VP=, 则称 P为空;XP和 XP分别为行为参数和内部变量集合, X PX P=;其中内部变量描述软件维护的中间计算变
20、量与计算结果;X P=XPX P表示全部变量的集合;AP、A P和 AP分别为输入、输出和内部行为集合, APA P=APA P=APA P=;AP=APA PA P表示全部行为的集合; P是行为执行约束集合;aA P是一项行为, 是行为 a的一组执行约束, 表示为 (a) = (PreCon (a) , PostCon (a) ) , 其中, PreCon (a) 和 PostCon (a) 分别为行为 a的前置和后置条件;E是触发事件集合, 触发 P中特定行为的执行;是自动机包含的状态迁移集合, 表示一个状态迁移过程, 具体描述如下:其中, .e 表示行为触发事件, .a 表示引起状态迁移
21、的行为, .eff (a) 表示行为 a产生的执行效果, .PreCon 表示行为 a的前置条件, .PostCon表示行为 a的后置条件, .s=q 表示源状态, .t=q表示目标状态.在 ESIA模型基础上, 设计了一种基于符号执行的测试用例生成算法, 通过搜索有效的事件/数据序列, 自动生成测试用例与测试场景5.3 嵌入式系统时序特性分析本节以一个门禁控制系统为例, 对嵌入式软件时序特性进行分析.在此基础上, 定义时间变量以及时间约束等时序元素, 建立 ESIA模型时序语义, 支持嵌入式软件时序特性的定量描述与理解, 并进一步分析不同时间约束之间存在的典型相关关系.3.1 示例门禁控制软
22、件是一项典型的嵌入式软件, 在特定事件触发下, 按一定时序打开或关闭门禁, 其 ESIA模型如图 1所示.图 1 门禁控制软件 ESIA模型 (其中, “?”表示输入行为, “!”表示输出行为, “;”表示内部行为) 下载原图门禁控制软件根据接收到的人员抵近 (approach) 或离开事件 (leave) , 按设计时序执行打开门禁 (open) 、关闭门禁 (close) 和向控制中心上报当前状态 (report) 等行为.其中:(1) 状态 0是门禁系统上电初始状态;(2) 当控制软件完成初始化后, 进入等待状态 1;(3) 当检测到人员抵近后, 进入状态 2, 准备打开自动门;(4)
23、当自动门打开后, 进入门禁打开状态 3;(5) 当检测到人员离开后, 进入状态 4, 随即关闭自动门, 返回等待状态 1;(6) 在自动门打开时 (状态 3下) , 门禁控制软件向监控中心周期上报状态信息并进入报告状态 5, 直到检测到人员离开后, 退出周期上报过程.在门禁控制软件中设定了一系列时间约束, 具体包括:DC-TR1.门禁控制软件在系统上电后 5s时完成初始化;DC-TR2.当检测到人员抵近后, 自动门应在时间区间3s, 7s内打开;DC-TR3.当检测到人员离开后, 自动门应在时间区间3s, 5s内关闭;DC-TR4.当检测到人员抵近后, 应在时间区间3s, 30s内检测到相关人
24、员离开;DC-TR5.在自动门打开后, 自动门应在 30s内关闭, 即自动门持续打开时间不应超过 30s;DC-TR6.在自动门打开时 (状态 3) , 门禁控制软件每 15s向监控中心上报一次自动门打开状态.3.2 时间约束分析与建模在嵌入式软件中, 时间约束限制特定任务的执行时间, 例如任务开始、结束或持续时间等.当执行时间满足时间约束时, 软件将表现出符合设计预期的时序特性.Dasarathy6将时间约束分为最小值约束、最大值约束以及持续约束.其中, 最小值和最大值约束分别描述两个事件之间的最小和最大时间间隔, 而持续约束描述一个事件从产生到结束的持续时间.在本文中, 根据限制对象的不同
25、, 分别定义以下三类时间约束.定义 3.时间点约束.限制事件产生的时间点.设 为一项时间变量, t 为一个时间点, 一项时间点约束定义为 P_Cstr () =t, 即 =t.定义 4.持续时间约束.限制任务执行持续时间, 或者任务开始前等待时间.设 为一项时间变量, 一项持续时间约束 D_Cstr () 定义为以 tl为下边界, 以 tu为上边界的时间区间, 具体分为以下 4种形式:定义 5.周期时间约束.限制任务重复执行的时间间隔.设 为一项时间变量, t为执行周期, 一项周期时间约束定义为 C_Cstr () =t, 即 Mod (, t) =0.在门禁控制软件中, DC-TR1 为时间
26、点约束, DC-TR2/DC-TR3 等为持续时间约束, DC-TR6为周期时间约束.Cstr () 表示时间变量 的取值满足时间约束Cstr () .此外, 通过逻辑运算符连接不同类型时间约束, 可得到各种复杂时间约束表达式.对 ESIA模型进行时间变量、置零行为以及时间约束等扩展如下.定义 6.ESIA时序语义.P= (V P, VP, XP, AP, P, E, P) 为一个 ESIA, 其时序语义描述了一个基于接口事件与时间约束的状态迁移系统:XP是一个有限时间变量集合, X P=XPX PX P表示全部变量的集合;其中, 为一项时间变量, 在 ESIA模型空间内可重复置零并启动计时,
27、 以描述对不同行为的时间约束;表示一个状态迁移过程, 具体描述如下:其中, 行为 a的前置条件 PreCon (a) 包含行为 a被激活时需要满足的时间约束, 而后置条件 PostCon (a) 包含行为 a正常结束时需要满足的时间约束.PreCon (a) 与 PostCon (a) 均可包含多项时间约束, 不同时间约束之间以逻辑运算符相连接, 构成 PreCon (a) 与 PostCon (a) 的一阶逻辑表达式.由此, 在行为的前置和后置条件中整合各类时间约束, 对其执行的时间条件进行统一描述.设 X为被测软件 ESIA模型的时间变量集合;X 1为行为 a激活时完成计时的时间变量集合,
28、 X 1X;X2为行为 a完成时完成计时的时间变量集合, X 2X;行为a的前置和后置条件分别表示为:通常情况下, 嵌入式软件具有异常处理机制, 以对各类运行时序异常进行处理.在 ESIA模型中, 对时序异常状态进行标记, 以与正常状态区别描述.设 P为一个 ESIA模型, 定义异常状态标识 v.E_tag, vV P, 当 v.E_tag值为 1时, 表示v为异常状态;当值为 0时, 表示正常状态.此外, action_E 表示行为 action在异常时序下的执行分支.在 action_E作用下, 软件运行迁移至时序异常状态, 执行相应异常处理任务.在 ESIA模型中, action_E 具
29、有与 action相同的触发事件, 但执行效果以及对应状态迁移的目标状态均不同.action_E 的前置和后置条件为对 action前置和后置条件中包含的变量取值约束以及时间约束取反 (取反运算符为: ) , 即若 Cstr ( 1) 与 Cstr ( 2) 分别为行为action的前置与后置条件, 则 分别为异常时序分支action_E的前置与后置条件.具有时间约束的门禁控制软件 ESIA模型如图 2所示.其中, 针对不同定时器分别定义时间变量 0、 1及 2, 其计时过程从置零开始, 到时间约束作用点结束.每项时间变量记录了特定状态迁移序列的执行时间.如图 2所示, 当检测到人员抵近后,
30、置零 1与 2, 1记录门禁控制软件沿状态迁移序列State2State3 执行所耗费的时间, 而 2记录沿 State2State3State4 执行所耗费的时间;当检测到人员离开后, 再次置零 1, 并记录沿状态迁移序列State4State1 执行所耗费的时间.设定门禁控制软件的时间约束如下:DC-TR1.系统上电后置零 0, 定义 P_Cstr ( 0) =5s ( 0=5s) 为行为initialization;的后置条件;图 2 具有时间约束的门禁控制软件 ESIA模型 下载原图DC-TR2.当检测到人员抵近事件后置零 1 (状态 2) , 定义 D_Cstr1 ( 1) =3s,
31、 7s为行为 open!的后置条件;DC-TR3.当检测到人员离开事件后置零 1 (状态 4) , 定义 D_Cstr2 ( 1) =3s, 5s为行为 close!的后置条件;DC-TR4.当检测到人员抵近事件后置零 2 (状态 2) , 定义 D_Cstr ( 2) =3s, 30s为行为 leave?的后置条件;DC-TR5.在自动门打开后置零 0 (状态 3) , 定义 D_Cstr ( 0) =0s, 30s为行为 close!的后置条件;DC-TR6.在自动门打开后置零 0 (状态 3) , 定义 C_Cstr ( 0) =15 (Mod ( 0, 15) =0) 为行为 repo
32、rt!的前置条件.此外, 门禁系统具有一组异常时序处理机制.在运行过程中, 当检测到人员抵近事件后, 若打开门禁的时间超出 DC-TR2的要求 (满足 DC-TR2) , 则执行异常分支 open_E, 门禁系统重新初始化;当检测到人员抵近事件后, 若关闭门禁的时间超出 DC-TR3的要求 (满足 ) , 则执行异常分支 close_E, 门禁系统同样重新初始化.在本文中, 认为目标软件的 ESIA模型具有确定性与完整性.其中, 确定性表示在相同的源状态、触发事件与时序条件下, ESIA 具有唯一的后继行为;完整性表示目标系统具有的所有状态、行为和执行路径等, 均在 ESIA模型中予以描述,
33、所有正确的执行片段均可映射至相应 ESIA执行路径.3.3 时间约束相关关系分析在嵌入式软件中, 一项任务的执行时间可能与其他任务相关.当不同任务的执行路径相互重叠时, 例如一项任务是另一项任务的子任务或两项任务包含公共子任务时, 不同任务的执行时间之间将存在特定依赖关系, 造成相应时间约束之间间接相关.在时序检测中, 不仅需检验各项任务的执行时间是否满足相应独立时间约束, 还需检验任务的执行时间是否满足特定依赖关系, 从而对软件运行时序进行充分检测.如图 2中, 当检测到人员抵近事件后, 时间变量 1与 2被同时置零并开始计时.由于与 2关联的执行路径包含与 1关联的执行路径, 1与 2之间存在取值依赖关系: 1 2.若任务的执行时间违反以上依赖关系, 则表示软件运行时序存在异常.在 ESIA模型中, 使用 ESIA执行路径 Path () 表示与时间变量 相关联的状态迁移序列, 并对不同时间约束间的相关关系进行描述.定义 7.ESIA执行路径.P= (V P, VP, XP, AP, P, E, P) 为一个 ESIA, 执行路径 Path () 定义为 P之上的一个有序状态迁移子集:Path () = i|i=1, 2, , m, Path () P, 在 1处置零, Cstr () 作用于 m;, i与 i+1为 ESIA上两项相继的状态迁移, 即 i.t= i+1.s.