Parasoft常用于开发过程中的代码检查和静态分析,通过扫描项目源码,帮助开发人员发现代码规范、结构以及潜在质量问题。不过在配置扫描项目时,实际操作中经常会遇到一些细节问题,例如项目导入后无法正常分析、部分文件没有参与扫描、设置的规则没有生效等。这些情况多数和项目环境、源码路径以及分析配置有关。本文将介绍Parasoft代码扫描项目的配置方法,并整理项目配置异常时的排查思路。
Parasoft在软件测试流程中经常用于单元测试、代码分析以及覆盖率统计。通过覆盖率数据,开发人员可以查看测试执行涉及的代码范围,了解函数、分支以及路径的验证情况。不过在项目实际运行过程中,覆盖率报告可能出现文件缺失、统计结果偏低、部分代码没有记录等问题。这些情况通常和测试配置、代码版本、编译环境以及覆盖率采集范围有关,需要结合具体项目逐步排查。
Parasoft在企业软件开发和质量验证场景中经常用于自动化测试、代码分析以及单元测试管理。对于使用C、C++、Java等语言开发的项目,单元测试能够帮助开发人员提前发现函数逻辑错误和接口调用问题。不过在实际使用Parasoft创建测试用例时,初次配置项目环境、设置测试对象以及执行测试流程时,容易遇到测试用例无法生成、执行失败、覆盖结果异常等情况。本文介绍Parasoft创建单元测试用例的方法,以及测试执行失败后的定位思路。
Parasoft静态代码分析可以帮助开发团队检查代码中的潜在缺陷、安全风险以及编码规范问题,通过配置不同规则集,可以满足MISRA、CERT、CWE等不同项目标准要求。但在实际使用过程中,规则启用后没有检测结果、修改严重等级未变化、规则配置无法同步等情况较为常见。造成这些问题的原因可能来自测试配置选择、规则状态、分析范围、项目环境以及规则库版本等多个方面。本文介绍Parasoft静态分析规则配置方法,以及规则设置后未生效时的排查方式。
Parasoft Virtualize可以通过Message Proxy截获真实系统之间的请求与响应,再根据录制流量生成Message Responder和Data Repository。录制完成后,如果同一个请求拿到了错误响应,或者请求参数变化后Virtualize仍返回上一组数据,通常要检查Responder分组方式、Request Matching和Data Source Correlation。录制数据只是生成虚拟服务的基础,最终返回哪条响应仍取决于请求匹配条件和数据关联规则。
Parasoft SOAtest可以把CSV、Excel、数据库、Data Repository或内部Table中的数据绑定到SOAP、REST和其他测试工具,让同一条Test Case按照多组输入重复执行。数据驱动已经配置,但请求中仍然出现固定值、上一轮数据或空值时,通常要检查Data Source是否挂在正确的Test Suite、字段是否真正切换为Parameterized,以及Data Bank或变量有没有在运行时覆盖原来的数据源值。
Parasoft Jtest执行Java单元测试并采集代码覆盖率后,可以把测试结果上传到Parasoft DTP,由DTP把不同构建的代码变化、测试执行结果和Coverage数据关联起来,判断哪些测试受到代码修改影响。变更影响分析结果偏少时,通常不是单纯的代码差异识别问题,更常见的是Baseline与Target选择错误、Coverage Image不一致,或者同一次构建的数据被分散到了不同Build ID中。
在Parasoft C/C++test中做单元测试时,Stub可以替代外部接口、底层驱动或者当前测试环境无法直接调用的函数。真正容易出问题的并不是“有没有生成桩”,而是测试执行时究竟用了哪一个函数定义,以及当前Test Case的返回值配置有没有在调用前生效。碰到桩函数明明设置了返回值,被测函数却拿到0、false、空指针或者原函数结果时,可以从Stub类型、测试步骤顺序和Instrumentation配置三个方向检查。
接口测试经常会卡在依赖服务未完成、测试数据难准备,或者第三方接口不稳定上。Virtualize可以把这些依赖做成可调用的虚拟资产。分析Parasoft旗下Virtualize怎么模拟依赖服务Virtualize模拟服务响应异常如何调整,重点要看请求怎么匹配、响应怎么生成,以及虚拟资产部署到了哪个端点。
Selenium脚本平时跑得好好的,页面一改版,按钮定位和等待条件就开始报错。Selenic可以在运行时处理部分定位器和同步问题,但它并不会把所有失败都强行改成通过。弄清它能修什么、修复结果有没有写回源码,维护起来会省事很多。