一种嵌入式软件单元测试用例生成方法及系统技术方案

技术编号:19903298 阅读:38 留言:0更新日期:2018-12-26 02:52
本发明专利技术提供了一种嵌入式软件单元测试用例生成方法及系统。所述方法包括:对嵌入式软件源程序文件进行静态分析,生成输入驱动文件;在所述输入驱动文件中定义一驱动函数;其中,所述驱动函数用于指定输入待求解的表达式或桩函数;依据解释执行和符号执行相结合的方式对所述表达式或所述桩函数进行求解;将嵌入式软件中IO端口特殊编码为多重符号,求解得到值序列;基于求解结果和所述值序列,生成测试用例。本发明专利技术可以简化生成测试用例的操作步骤,降低由于插桩带来的性能开销,自动生成的输入驱动文件能满足绝大部分需求,并且无论是哪种嵌入式平台的软件都可以解释执行,大幅降低了配置目标环境带来的时间成本和人力成本。

【技术实现步骤摘要】
一种嵌入式软件单元测试用例生成方法及系统
本专利技术涉及软件测试
,特别是涉及一种嵌入式软件单元测试用例生成方法及系统。
技术介绍
单元的质量是整个软件质量的基础,单元测试的效果会直接影响软件的后期测试,最终在很大程度上影响到产品的质量。据统计,很多软件问题在单元测试阶段就可以被发现;如果单元测试中易发现的问题拖到后期测试发现,那么其成本将成倍数上升。因此,单元测试是保证软件质量必不可少的流程。然而随着软件代码规模不断扩大,依赖人工设计测试用例的单元测试方法的效率并没有明显提升,因而需要投入更多的人力和物力来满足测试需求。在单元测试过程中,大部分时间花费在测试用例设计阶段,因此自动生成测试用例是一种提高单元测试效率的有效方法。目前自动生成测试用例的方法主要有模糊测试、动态符号执行等方法。模糊测试有很大随机性,不易覆盖到小概率事件、边界值等。动态符号执行生成测试用例的原理一般为:运行程序,记录运行过程中分支节点的判定状态和条件约束,以此推算出未覆盖路径的条件约束,然后进行约束求解,求解结果即为一个用例的输入,再以此结果为输入进行下一次运行,如此迭代,直到覆盖到所有分支,最后把求解本文档来自技高网...

【技术保护点】
1.一种嵌入式软件单元测试用例生成方法,其特征在于,包括:对所述嵌入式软件单元对应的源程序文件进行静态分析,生成输入驱动文件;在所述输入驱动文件中定义一驱动函数;其中,所述驱动函数用于指定输入待求解的表达式或桩函数;依据解释执行和符号执行相结合的方式对所述表达式或所述桩函数进行求解;将所述嵌入式软件单元中的IO端口特殊编码为多重符号,求解得到值序列;基于求解结果和所述值序列,生成测试用例。

【技术特征摘要】
1.一种嵌入式软件单元测试用例生成方法,其特征在于,包括:对所述嵌入式软件单元对应的源程序文件进行静态分析,生成输入驱动文件;在所述输入驱动文件中定义一驱动函数;其中,所述驱动函数用于指定输入待求解的表达式或桩函数;依据解释执行和符号执行相结合的方式对所述表达式或所述桩函数进行求解;将所述嵌入式软件单元中的IO端口特殊编码为多重符号,求解得到值序列;基于求解结果和所述值序列,生成测试用例。2.根据权利要求1所述的方法,其特征在于,对所述嵌入式软件单元对应的源程序文件进行静态分析,生成输入驱动文件的步骤,包括:对所述源程序文件进行静态分析;基于静态分析结果,根据函数接口信息生成所述输入驱动文件。3.根据权利要求1所述的方法,其特征在于,所述依据解释执行和符号执行相结合的方式对所述表达式或所述桩函数进行求解的步骤,包括:利用解释执行方式,对所述表达式或所述桩函数进行符号化;对符号化后的所述表达式或所述桩函数进行约束求解;依据符号执行方式,收集约束求解过程中的分支约束;将收集到的分支约束确定为求解结果。4.根据权利要求3所述的方法,其特征在于,将所述嵌入式软件单元中的IO端口特殊编码为多重符号,求解得到值序列的步骤,包括:每次符号执行访问IO端口时,把IO端口编码为新符号,使得一个IO端口对应多个符号;将IO端口对应的多个符号的求解结果合成为一组值序列。5.根据权利要求4所述的方法,其特征在于,所述基于求解结果和所述值序列,生成测试用例的步骤,包括:将收集到的分支约束和所述值序列转换为真实用例;对所述真实用例进行保存,以生成所述测试用例。6.根据权利要求1所述的方法,其特征在于,在所述基于求解结果和所述值序列,生成测试用例的步骤之后,还包括:根据已收集到的约束,利用分支搜索算法,查找所述表达式或所述桩函数中的未覆盖分支;对所述未覆盖分支进行约束求解;重复执行上述步骤;在搜索完毕后,将每次约束求解的结果和所述值序列转换为一条执行路径的真实用例;对各所述真实用例进行保存,生成测试用例集合。7.一种嵌入式软件单元测试用例生成系统,其特征在于,包括:输入驱动文件生成模块,用于对所述嵌入式软件单元对应的源...

【专利技术属性】
技术研发人员:陈睿杨帆江云松王政高栋栋高猛贾春鹏陈华南张璐孙民
申请(专利权)人:北京轩宇信息技术有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1