polyspace client™ for ada 能够证明 ada83 和 ada95 源代码中不存在溢出、除以零、数组访问越界和某些其他运行时错误。它不需要执行程序、代码插桩或测试用例即可产生结果。polyspace client for ada 使用基于形式化方法的抽象解释技巧来验证代码。分析结果显示在源代码中。每个代码语句都进行了着色,以指示它是否存在运行时错误、是否已证明失败、是否不可达或是否未经证明。polyspace client for ada 会显示变量和函数返回值的范围信息,并且可以证明哪些变量超出了指定的范围限制。
在编译和测试之前,您可以在桌面端使用 polyspace client for ada 来运行和查看代码分析。
证明不存在严重的运行时错误
检查 ada83 或 ada95 代码操作的运行时正确性。识别无论运行时条件如何都不会遇到运行时错误的语句。在事件跟踪、变量值范围和与发现相关的调用树的支持下,分析运行时漏洞。polyspace client for ada 使用形式化方法来检测其他测试手段无法找出的错误。根据所有可能的输入,在不执行代码的情况下分析所有代码路径。
桌面端的交互式分析
组织和配置您的工程,并在将代码提交到源代码存储库之前对一部分软件工程运行静态代码分析以验证代码更改是否符合要求。使用 polyspace client for ada 生成报告,并审核和对结果分类。使用类似调试器的视图步进运行时错误之前的每个语句,以找到复杂 bug 的根本原因。
改进软件设计和代码理解
检查软件控制流和数据流,以查看与变量和运算符相关联的范围信息。
优化软件性能
通过识别安全可靠的运算(如除以零)来删除防御性代码。检测无法通过任何执行路径到达的代码分支以及逻辑和程序结构上的错误,并删除它们以减少内存占用。
分析全局变量用法
减少调试全局变量(包括任务或线程共享的变量)的读/写操作所花费的时间。使用并发访问图了解导致数据竞争的控制流和数据流。识别未使用的全局变量以进行代码优化。
静态应用程序安全性测试
通过详尽地对潜在的易受攻击的 ada 语句进行压力测试,如内存访问、缓冲区溢出或数值溢出,证明应用程序没有严重的安全漏洞。支持 20 条 cwe 弱点规则。利用 polyspace client for ada 的分析结果来补充或取代模糊测试,转而关注易受攻击的已识别操作。
改进和补充稳健性和功能测试
使用 polyspace client for ada,通过将测试重点放在已被证明不安全的语句(如除以零或溢出)上来改进稳健性测试。利用控制流和数据流分析以及计算出的函数参数和全局变量范围,使用 polyspace client for ada 提供的结果来创建和维护边界测试与分区测试。