我们使用Parasoft C++测试来静态分析我们的代码.它有以下代码的问题:
void foo(int* x) {
try {
bar();
} catch(...) {
delete x;
throw;
}
*x;
}
Run Code Online (Sandbox Code Playgroud)
它警告*x;线:
在任何情况下都不应随后访问释放的内存
不知何故,它得出的结论是,控制流可以传递到catch(...)块中,删除x,经过throw;,并使其成为*x;.我试过throw std::exception("");和其他几个人一样,得到了同样的东西.Parasoft当然知道异常并将它们合并到其控制流中,因为还有许多其他测试涉及异常检查.难道仅仅是混淆在这种情况下,还是有一些实际的方式对这一计划击中双方的执行delete x;和*x;?
首先,我没有关于parasoft .test或jtest经验的经验.我已阅读数据表,该产品可自动生成单元测试.
但我想知道自动生成的单元测试有多么有用.它确实不需要开发人员的任何其他努力吗?
欢迎任何经验分享.
非常感谢!
我正在研究一个项目,刚刚告诉我们必须将Parasoft C++单元测试工具整合到任何代码更改中.我面临的问题是我们的方法变化非常小,现在看来我们不得不对整个方法进行单元测试.其中许多方法都是数百或数千行代码.我肯定知道,如果我有测试方法完全那么我们会碰上固定的老问题,如空指针检查和我们的预算和人力无法处理这些修补程序.
有谁知道parasoft是否允许你测试方法的一小部分?或者如果另一个单元测试框架能够更好地工作
我正在尝试使用 Parasoft C/C++ 测试通过静态测试检查“编码标准”。我在 Parasoft 用户指南中只找到了“如何在 Makefile 项目中创建 bdf”部分。
如何为每个项目创建一个 bdf?是否必须使用 makefile 项目?