Parasoft 桩函数的理解和优先级

Parasoft 桩函数的理解和优先级

在软件测试的单元测试过程中,常常需要给某个函数打桩,即为该函数生成一个桩函数。
桩函数一般是用来代替被测函数中调用的其它函数的。比如:

function A(...){
...
a=func_B();
...
}
int func_B(){
return 0;
}

A表示待测函数,在A中某一处调用了其它函数func_B()。在func_B中的一些语句或操作可能会影响到函数A 的测试结果,我们可以通过打桩使func_B函数执行我们想要的操作或返回我们需要的值。假如,我想要func_B函数返回一个2。则其桩函数可以写成:

int func_B_stubs(){
return 2;
}

其中,func_B_stubs表示func_B的桩函数。在实际情况中,我们可以将func_B的桩函数的函数体写成任何我们想要的内容。
在Parasoft C++ Test中自定义桩函数:
打开Stubs视图,找到需要生成桩函数的函数,右键点击,选择Create User stubs,会弹出一个框让我们选择或填写生成桩函数的文件。生成之后,就可以编写桩函数的函数体了。【关于Parasoft生成桩函数的具体操作:打开Help–>Help Content输入关键词stubs即可查看桩函数相关的所有内容】

桩函数的类型和优先级:
一般桩函数分为四类:用户定义桩函数【User-defined stubs】;系统安全桩函数【Safe stubs】;原始桩函数【Original stubs】;
自动生成桩函数【Auto generated stubs

  • 用户定义桩函数:表示用户自定义的桩函数;
  • 系统安全桩函数:安全桩函数是为了代替原来的一些危险函数而自动生成的。所谓的危险函数比如:fopen()和exit()函数等。如果不想使用这类桩函数,可以在测试配置中去掉,具体操作看我主页另外一篇博客。
  • 原始桩函数:即原函数,比如A()和func_B()都是原函数。
  • 自动生成桩函数:即自动生成的桩函数。
    优先级:User-defined stubs>Safe stubs>Original stubs>Auto generated stubs。
    这些桩函数的优先级表示:在执行相应的测试用例时,会优先调用。比如测试函数A时,其中执行func_B函数调用时,由于为func_B定义了用户定义的桩函数,测试执行时会调用其桩函数func_B_stubs而不是func_B。
    由于桩函数的调用是经常导致测试用例运行失败的关键点,所以在测试用例执行失败的情况下,要注意检查桩函数的生成和调用。
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Parasoft Jtest是一款静态代码分析和自动化单元测试工具,旨在帮助开发团队提高软件质量和可靠性。它具有以下主要特点和功能。 首先,Parasoft Jtest支持静态代码分析,可以对代码进行全面的检查和评估。它可以自动发现潜在的缺陷和错误,包括空指针引用、资源泄漏、错误的异常处理等。这些问题在编译和测试过程中可能很难发现,但它们可能导致严重的运行时错误。通过及早发现和修复这些问题,可以大大减少后期维护和调试的工作量。 其次,Parasoft Jtest还提供自动化的单元测试功能。它可以根据给定的测试用例自动生成代码和测试数据,并进行自动测试。这样可以节省开发人员编写和维护大量测试代码的时间和精力。同时,Parasoft Jtest还支持代码覆盖率分析,可以帮助开发人员确定已经测试过的代码部分,以便更好地了解测试覆盖的范围和质量。 此外,Parasoft Jtest还提供了一系列的安全和性能测试工具。它可以检测并防止潜在的安全漏洞和攻击,如SQL注入、跨站脚本、权限问题等。它还可以对软件的性能进行评估和优化,找出影响性能的瓶颈和问题,并提供相应的解决方案。 总的来说,Parasoft Jtest是一个功能强大的软件质量保证工具,能够帮助开发团队提高代码质量、减少错误和缺陷,并提供更安全和高效的软件产品。它可以与各种开发环境和工具集成,适用于各种规模和复杂度的项目。 ### 回答2: Parasoft Jtest 是一种功能强大的自动化测试工具,主要用于在软件开发过程中进行静态和动态代码分析、自动化单元测试和集成测试。它帮助开发团队提高代码质量、减少缺陷和提高软件可靠性。 Parasoft Jtest 提供了多种测试功能,包括代码覆盖率分析、代码缺陷检测、性能分析和性能优化等。它可以自动生成有效的测试用例,并执行这些测试用例来发现代码中的潜在问题。这大大减轻了开发团队手动编写测试用例的工作负担,并且可以在开发早期就发现和解决问题,提高了开发效率。 除了自动生成测试用例,Parasoft Jtest 还可以进行代码覆盖率分析,确保所有代码路径都被测试覆盖到。它还可以检测代码中的一些常见缺陷,如空指针引用、资源泄漏和并发问题等。这些缺陷的检测和修复,可以帮助开发团队提高代码质量,减少后期 bug 的修复工作量。 另外,Parasoft Jtest 还提供了性能分析和性能优化功能。它可以分析代码的性能瓶颈,并提供相应的优化建议。这有助于开发团队优化代码性能,提升软件的运行效率和响应速度。 综上所述,Parasoft Jtest 是一种功能全面的自动化测试工具,可以帮助开发团队改善代码质量、减少缺陷并提高软件可靠性。它在软件开发过程中发挥着重要的作用,提供了多种测试功能和分析工具,帮助开发团队更好地开发出高质量的软件产品。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值