polyspace——用于静态测试运行时错误,主要进行非功能性测试—恒润科技 -凯发官方首页

polyspace——用于静态测试运行时错误,主要进行非功能性测试

        polyspace的核心功能就是通过对源代码进行“语义分析”,采用“抽象执行”的方法,彻底的查找出软件在运行的时候可能出现的运行时错误,从而保障对软件高可靠性的要求。

        polyspace使用的是语义分析技术,它依靠大量的数学定理提供 的规则分析软件的动态行为。语义分析技术没有使用简单的穷举法,却有能力在 更普通的模式下表达程序的状态,还能提供规则进行巧妙的处理。简单来说,语 义分析技术通过静态的方法,能够发现动态的运行时错误。

        在以前的软硬件环境下,这个问题会非常复杂,很难去解决。随着计算机处 理能力的不断增强,在当前的硬件条件下,语义分析技术已经完全可以高效的实现。当应用运行时错误的检测时,语义分析技术会对所有危险的操作,进行一个详细的分析,在程序动态运行之前,在编码阶段,就能够发现其中的运行时错误。

        由于polyspace的很多优势,因此,将polyspace引入开发流程后,传统的 检查软件运行时错误的测试方法完全可以省略:

 

  并且,polyspace 可以使用在软件开发流程的各个阶段(除去规格说明阶段):

  另外,polyspace可以直观的看到软件运行时错误的原因和具体的位置,便于修改程序:

        采用polyspace后,只需在源代码和软件测试中间增加一个“polyspace检查”环节,就可以检查源程序的运行时错误,从而可以降低后面软件测试的任务,缩短测试周期,降低测试成本,大大的提高软件的可靠性和安全性。

 

采用语义分析的方法——确保分析情况无一遗漏

       polyspace采用的是语义分析的方法来分析源程序的,而不是采用测试用例 的方法来分析源程序,所以:

•  polyspace分析所有输入端的各种组合方式

•  polyspace分析所有运算符的含义

•  polyspace在程序中的任何地方都知道变量的取值范围

        采用语义分析技术,实际上就是采用解析数学的方法来分析,以变量的当前有效使用区间和当前代码的危险区间为分析对象,通过对变量的有效区间和危险区间做抽象的比较,从而判断当前代码是否包含错误。这种方法避免了测试用例无法穷举变量区间内所有数值的弊端,使分析结果包含所有可能的情况,不存在遗漏的问题。

分析源代码——不需要执行程序

       polyspace分析的是源程序,不需要用户执行代码,这使用户可以在开发阶段使用polyspace对源代码进行检查,直接将错误定位到源程序,从而将软件的测试过程提前了,既能降低软件测试的成本,也便于程序员直接修改程序中的错误。

        另外,采用源程序进行分析,用户不需要构建软件运行所需要的环境,同时也不需要构建测试程序,不需要插入任何的测试代码,这样可以准确、便捷、高效的完成测试功能。

分析的是运行时错误——保证程序不会被运行时错误所打断

       polyspace分析的是程序的运行时错误。这些错误只有在程序执行的过程中 才会出现的。分析运行时错误可以避免程序崩溃带来的危险,可以保证程序顺利执行。目前只有polyspace能在源代码阶段对运行时错误进行分析。

        另外,剔除程序的运行时错误,可以保证基于功能的测试任务不会被运行时 错误所打断,从而保障基于功能的测试可以顺利完成;大大的提高了软件的测试效率,缩短测试周期,降低测试成本。

与simullink无缝连接

       对于经常使用simulink的人员来说,他们经常工作在模型层次,而不是代码层次。每当模型设计完毕后,就可以直接自动生成源代码,然后经过软件测试后就可以用于产品。这样的话,如果直接使用polyspace检查源代码,对源代码进行修改后,虽然可以提高源代码的可靠性和安全性;但是,当下次再次生成源代码的时候,上次的检查结果就会被覆盖了,还需要重新检查。

        为此,polyspace提供了与simulink的直接集成。这样,用户在检查完源代码后,可以直接将出现问题的代码定位到对应的simulink模型上,用户此时不需要修改源代码,直接修改模型就可以了。通过这样的方法,可以保证用户的模型是没有运行时错误的,同时可以保证,用户的模型在生成代码后也是没有运行时错误的。从而为那些工作在 simulink 模型层次的工程师提供了非常大的便利,可以生成没有运行时错误的模型,而且这些模型是可以重用的。

可以采用 misra-c规则对源代码进行规则检查

       polyspace可以采用misra-c规则对源代码的形式进行检查:例如,禁止使用逗号运算符等。采用misra-c规则对源程序进行检查,在polyspace中是非常方便的,只需选中对应的选项,并且选中对应的misra规则就可以了,非常方便。

能够对c、c++、ada语言进行运行时错误检查

       目前,polyspace支持对c、c++、ada语言的运行时错误检查。并且对这些语言的运行时错误检查技术已经非常成熟了。

可以检查手写代码和自动生成代码

       polyspace不但可以检查手写代码,而且可以检查自动生成的代码。由于现在自动生成代码技术已经越来越成熟,大量的代码是自动生成的。由于自动生成的代码量非常大,因此,如果采用传统的代码审查将是难以实现的。而不审查,仅仅通过测试用例的方法,又难以保证代码的可靠性和安全性,因此,对于自动生成的代码处理起来非常棘手。polyspace则可以检查自动生成的代码,从而可以保证自动生成的代码也是高可靠性和高安全性的。

不需要改变现有的软件开发流程

       将polyspace引入软件开发流程有两种形式:一是新的软件项目,二是正在开发的软件项目。幸好在任何一种情况下将polyspace引入开发流程都不会产生任何的副作用,不会影响现在的开发流程,也不会因为引入polyspace而延长软件开发周期,相反却能大大缩短软件开发周期,提高软件的可靠性和安全性。

凯发官方首页-凯发娱乐登录
用户登录
用户注册
*

请输入您常用的邮箱地址,错误的地址将影响功能使用

*
*
*
    性别    男   
*
网站地图