软件测试是能力成熟度模型集成(capability maturity model integration,CMMI)中验证(verification,Ver)与确认(validation,Val)过程域的重要表现形式,是保障软件可靠性的重要手段。近年来,随着软件规模和复杂程度的不断提高,软件测试...软件测试是能力成熟度模型集成(capability maturity model integration,CMMI)中验证(verification,Ver)与确认(validation,Val)过程域的重要表现形式,是保障软件可靠性的重要手段。近年来,随着软件规模和复杂程度的不断提高,软件测试技术也不断发展,然而程序设计语言本身固有的特性以及开发人员在编程时没有考虑周全使得许多漏洞无法在编译、运行乃至测试阶段发现,这些缺陷通过输入验证错误、访问验证错误、设计错误、特殊条件错误和竞争条件错误等方式在不导致系统崩溃的情况下,可以通过篡改系统用户权限的形式威胁系统安全。文章通过对软件测试中易被忽略的软件潜在安全性缺陷的研究,总结出开发过程中常碰到的软件潜在安全性缺陷的表现形式,并通过具体代码实例的故障分析及解决措施,清晰、直观地给出具有潜在安全性缺陷的代码特征,增强了开发人员及测试人员对此类问题的认识,对提高软件可靠性具有积极意义。展开更多
文摘软件测试是能力成熟度模型集成(capability maturity model integration,CMMI)中验证(verification,Ver)与确认(validation,Val)过程域的重要表现形式,是保障软件可靠性的重要手段。近年来,随着软件规模和复杂程度的不断提高,软件测试技术也不断发展,然而程序设计语言本身固有的特性以及开发人员在编程时没有考虑周全使得许多漏洞无法在编译、运行乃至测试阶段发现,这些缺陷通过输入验证错误、访问验证错误、设计错误、特殊条件错误和竞争条件错误等方式在不导致系统崩溃的情况下,可以通过篡改系统用户权限的形式威胁系统安全。文章通过对软件测试中易被忽略的软件潜在安全性缺陷的研究,总结出开发过程中常碰到的软件潜在安全性缺陷的表现形式,并通过具体代码实例的故障分析及解决措施,清晰、直观地给出具有潜在安全性缺陷的代码特征,增强了开发人员及测试人员对此类问题的认识,对提高软件可靠性具有积极意义。