发明名称 一种基于Agent嵌入式软件的不变量测试方法与工具
摘要 本发明涉及一种基于Agent嵌入式软件的不变量测试方法与工具,是一种利用集成思想并动态与静态相结合的以Linux系统作为嵌入式操作系统内核的软件测试方法。本发明所述方法包括如下步骤:第一阶段动态提取程序不变量,包括程序编配Agent、程序轨迹收集、程序不变量提取,通过执行程序动态地将其中的程序不变量提取出来;第二阶段静态提取程序不变量,包括词法分析Agent、语法分析Agent、语法树分析Agent,通过词法语法分析静态地将其中的程序不变量提取出来;第三阶段分析错误,将第一阶段动态提取的程序不变量与第二阶段静态提取的程序不变量相比较,找出不同的程序不变量对其分析,确定是否错误,最终将错误集中起来形成错误报告。本发明能够应用到不同的程序,通用性强。
申请公布号 CN102087629A 申请公布日期 2011.06.08
申请号 CN201110026757.4 申请日期 2011.01.25
申请人 南京航空航天大学 发明人 刘久富;苏青琴;陈魁
分类号 G06F11/36(2006.01)I 主分类号 G06F11/36(2006.01)I
代理机构 代理人
主权项 一种基于Agent嵌入式软件的不变量测试方法与工具,其特征在于包括如下步骤:1.)第一阶段动态提取程序不变量,包括如下步骤:(1)对待测的嵌入式软件程序进行程序编配Agent,即在程序中每个函数入口和出口处利用前端工具插入代码,采用时间戳机制标记每一个变量,输出编配文件和轨迹文件的格式的声明文件;(2)对步骤(1)输出的编配文件里的编配程序根据路径、分支、等价类和边界条件确定测试用例,输入所形成的测试用例,通过循环控制方式多次运行编配程序来记录程序运行轨迹,最终形成轨迹文件;(3)利用集成思想根据程序不变量不同的分类标准将程序不变量分成不同类别的形式从而预设不变量的形式,不变量检测器将步骤(2)形成的轨迹文件中变量值与预设不变量形式比较,得到相应的不变量集,利用多数投票法整理分析,得出程序不变量报告。2.)第二阶段静态提取程序不变量,包括如下步骤:(1)对待测的嵌入式软件程序进行词法分析Agent,即采用Linux下的lex将待测的嵌入式软件程序分解成单独的词的表示,形成初步的符号表,并将结果传递给语法分析Agent;(2)通过步骤(1)接收到的词法分析Agent的结果,采用yacc将输入字符串识别为单词符号流,找出变量声明语句,并相应分离出指针变量和数组变量。其结果是生成语法树,每一个语法规则对应一个相应的处理函数,并作为树的一个节点挂在语法树上,提供对外的接口;(3)对步骤(2)生成的语法树分析找出程序不变量。3.)第三阶段分析错误:将动态提取的程序不变量与静态提取的程序不变量相比较,找出不同的程序不变量对其分析,确定是否错误,最终将错误集中起来形成错误报告。
地址 210016 江苏省南京市白下区御道街29号