2024年4月15日发(作者:)
写代码分析作品的特点和优点与不足
静态代码分析还有如下优点:
1、全代码覆盖。静态分析器甚至会检查那些很少获得控制的代
码片段。在使用其他方法时,这些代码片段往往不会被纳入测试范围。
使用这种方法,你就可以找到例外处理程序或登录系统中的瑕疵。
2、静态分析无需依赖你正在使用的编译器和被编译程序的执行
环境。这使你可以察觉到某些可能经过数年时间才能表现出来的隐藏
错误,比如那些未定义的行为错误。当转换到其他编译器版本或使用
其他代码优化开关时,此类错误才会表现出来。
3、你可以轻易快速地检查出输入错误和复制-粘贴的使用情况。
通过其他方法来检查这些错误往往会浪费过多的时间和精力。如果你
花了1个小时的时间来调试,发现的只是表达为“strcmp(A, A)”的
错误,那着实令人深感惋惜。人们在讨论典型错误时往往会遗忘此类
问题。但是实践表明,检查这样的错误需要耗费大量的时间。
静态代码分析的劣势
1、静态分析对内存泄露和并发错误的诊断较差。要检查此类错
误,你需要虚拟化执行部分程序。执行是件很困难的事情。此类算法
需要耗费过多的内存和处理器时间。静态分析往往在诊断简单案例时
会进行自我限制。使用动态分析工具来检查内存泄露和并发错误会更
加有效。
2、静态分析工具会警告你碎片的存在。事实上,代码是正确的。
这种现象称为误报。只有程序员才能理解分析器报告的是真正的错误
还是误报。审查误报是必要的,这需要耗费一定的时间和精力,而且
会影响解决那些真正存在错误的代码片段的注意力。
静态分析器检查出的错误是多种多样的。有些分析器专注于某个
区域或某种类型的瑕疵,有些支持某些编程标准,比如MISRA-C:1998、
MISRA-C:2004、Sutter-Alexandrescu Rules和Meyers-Klaus Rules
等。
静态分析领域正在繁荣发展,新的诊断规则和标准不断产生,同
时某些规则被废除。这也正是为何以所检查瑕疵为标准来比较分析器
毫无意义的原因所在。比较工具的唯一方法是将其运用到真正的项目
中,计算它们找出的真实错误数量。
发布者:admin,转转请注明出处:http://www.yc00.com/news/1713119319a2186762.html
评论列表(0条)