嵌入式软件测试:安全性检查

安全性检查
1、数据流分析
通常用数据流图来分析数据处理的异常现象,这些异常包括初始化、赋值或引用数据等。对数据流的分析主要包括对过程或函数调用信息的分析以及对数据流的反常分析。主要集中关注定义/引用异常的缺陷(定义的变量没有使用,使用的变量没有定义)。
2、控制流分析
  • 通过控制流分析可发现以下错误:
  • 无条件跳转(goto语句)的使用
  • 不适当的循环嵌套和分支嵌套
  • 死循环
  • 转向不存在的语句标号
  • 调用不存在的子程序
  • 未使用的变量、子程序定义
  • 不可达语句
3、接口分析
程序的接口分析涉及子程序以及函数之间的就接口一致性,包括检查形参与实参类型、个数、维数、顺序的一致性。
4、表达式分析
在表达式中可能存在不正确使用括号造成的错误、数组下标越界造成的错误、除数为零造成的错误、对负数开平方的错误,其中最复杂的一类表达式分析是对浮点数计算的误差进行检查。主要用于发现以下错误:
  • 程序中括号的使用不正确
  • 数组引用错误
  • 除数可能为0
  • 负数开平方
  • 正切值的自变量可能为π/2
  • 浮点数进行相等比较
软件错误检测工具:词汇语法分析类工具、约束分析类工具、扩展编译类工具、基于模型测试的工具(一般是对程序 构造出有限状态模型,再检查其是否存在违反特定可靠性、安全性等代码编程规则的问题。)
重点讲讲 基于模型测试的工具:模型检查会为程序建模,检查的对象变成抽象化模型。首先构建程序的有限状态模型,使用形式化方法表示需要检查的可靠性、安全性等属性,设计分析算法检测模型中存在的缺陷。但现存的模型检测工具一般针对有限状态模型进行分析,需要构建复杂的系统,增加了测试难度。 模型的统一形式化表示也是这方面的研究重点。

猜你喜欢

转载自blog.csdn.net/hushaoqiqimingxing/article/details/81047549