快捷搜索:  汽车  科技

软件测试缺陷典型bug分析(如何检查代码质量)

软件测试缺陷典型bug分析(如何检查代码质量)int* p1 = (int*)malloc(10); /* Violation */ free(p1); /* Violation */推荐的解决方案是预先分配一个内存块,并在需要时通过你自己定义的 "malloc "和 "free "等价物来管理它。同样,在C 中,常见的解决方案是重载 "new "和 "delete "操作符。该准则规定:"不得使用'calloc'、'malloc'、'realloc'、'aligned_alloc'和'free'这些标识符,不得展开具有这些名称之一的宏。" 因此,下面的代码将产生违规。执行静态分析需要一组简单的步骤:何时执行静态分析的一般最佳实践是在代码审查之前和代码编写之后。在这个阶段审核

正如任何程序员和质量保证测试人员都会告诉你的那样,静态分析是工作流的一个关键部分。正如疫苗需要多次试验一样,任何项目都需要多方面的代码质量分析。

为此,Parasoft提供静态分析工具来帮助自动化这个过程。这也增强了最佳实践,使其更加敏捷地响应必要的变更和更新。但是对静态分析、它的工具和最佳实践有一个基本的理解是关键的基础知识。

软件测试缺陷典型bug分析(如何检查代码质量)(1)

什么是静态代码分析?

简单来说,静态代码分析的过程就是识别源代码中的缺陷和错误。而分析可以自动化,代码审查通常是代表开发人员和质量保证/质量控制测试人员的共同努力。

但是静态分析允许更直接的补救,并且是开发过程的组成部分。不管行业、功能或语言如何,静态分析仍然是任何开发工作流的基础部分。

执行静态分析需要一组简单的步骤:

  1. 首先,当然需要有源代码来测试它的质量。
  2. 接下来,利用静态分析工具,运行静态代码分析器。
  3. 查看不符合规定规则集的标记部分。这可能包括假阳性甚至预期偏差。
  4. 程序员首先解决关键错误,然后解决次要问题。
  5. 进入测试阶段。

何时执行静态分析的一般最佳实践是在代码审查之前和代码编写之后。在这个阶段审核源代码可以更快地解决错误,从而减少浪费的时间。

软件测试缺陷典型bug分析(如何检查代码质量)(2)

静态代码分析可以检测到哪些错误?

每条静态分析规则或准则处理的是不同的问题。一些影响可靠性的问题可能是C语言的资源泄漏或C 的空指针异常。MISRA C:2012指令4.12的存在是为了防止使用动态内存,这可能导致存储外的运行时间故障,这是不可取的。

该准则规定:"不得使用'calloc'、'malloc'、'realloc'、'aligned_alloc'和'free'这些标识符,不得展开具有这些名称之一的宏。" 因此,下面的代码将产生违规。

int* p1 = (int*)malloc(10); /* Violation */ free(p1); /* Violation */

推荐的解决方案是预先分配一个内存块,并在需要时通过你自己定义的 "malloc "和 "free "等价物来管理它。同样,在C 中,常见的解决方案是重载 "new "和 "delete "操作符。

软件的意图、语言和平台都会影响静态代码分析所能发现的错误种类。

软件测试缺陷典型bug分析(如何检查代码质量)(3)

静态分析最佳实践

在进入静态代码分析最佳实践之前,有几个误区需要消除。例如,静态分析仪不是一次性产品,动态分析也不比静态分析好或差。但是总的来说,当涉及到代码质量的静态分析时,开发人员应该采用具体的最佳实践以及新兴的最佳实践。

  • 确定问题的范围。
  • 使代码对其他开发人员可读。
  • 编写代码时要考虑到可重用性。
  • 如果应用程序将来需要新功能,请保持可扩展性。
  • 开发使用最少资源但仍能快速执行的代码。
  • 利用动态和静态分析。

在编写代码时考虑到所有这些因素,可以确保总体上减少错误。但是与静态代码分析相结合,它进一步简化了错误识别和QA/QC过程。

如何选择静态代码分析工具

Parasoft的软件测试自动化工具套件适用于不同的工作流程和团队组成。当涉及到静态代码分析时,这也是真实的。这样做可以加快开发周期,减少缺陷率,并提供持续改进。识别哪种工具最适合你的需要,只需从源代码的基础语言开始。

Parasoft不仅提供C/C 解决方案,而且Parasoft还支持Jtest的Java和dotTEST的.NET语言。如果你能加快进程并获得更好的结果,为什么还要停留在做更多的工作?

点击下方“了解更多”申请Parasoft测试试用

↓↓↓

猜您喜欢: