前言
连接 DTP 可获得网络许可证并将本地分析数据发送到集中式数据库。您可以发送以下信息:
- 静态分析和指标结果(包括抑制详细信息)
- 单元测试结果(包括可追溯性信息)
- 覆盖率统计(针对所有覆盖率类型)
- 覆盖率详细信息(行覆盖率)
DTP 对数据进行整合、分析和优先级排序,以帮助您优化开发流程,关注变更代码的影响,并提供完全的合规性可追溯性。详细信息请参阅关于 Parasoft 开发测试工作流程。
在 GUI 中连接 DTP
将 Parasoft C/C++test 连接到 Parasoft DTP 服务器的步骤:
- 在 IDE 中点击菜单栏的 Parasoft,选择选项(Visual Studio)或首选项(Eclipse)。
- 选择 DTP。
开启启用选项激活服务器设置。
基本 URL 指定 DTP 服务器基本 URL。 如果 DTP 部署到主机服务器根目录以外的位置,则该 URL 应包括上下文路径(主机名的相对路径;示例:https://mydtp.mycompany.com:8443/contextPath)。如果您的组织使用反向代理,则可能会是这种情况。有关反向代理服务器配置和上下文路径配置的更多信息,请参阅 DTP 文档。
用户名 指定 DTP 的用户名。如果没有权限,请联系您的 DTP 管理员。启用默认选项,使用您的机器名登录。 密码 指定 DTP 的密码。如果没有权限,请联系您的 DTP 管理员。 点击测试连接以验证连接。
如果在 DTP 上使用 OpenID Connect 进行身份验证,请提供您的 DTP 服务器的基本 URL,然后配置与 OpenID Connect 服务器的连接;请参阅在 UI 中配置 OpenID Connect。当您成功连接到 OpenID Connect 服务器时,DTP 页面将自动显示信息。
在项目部分点击配置按钮打开包含 DTP 中所有可用项目的对话框,并选择当前正在处理的项目。
活动许可证显示在许可证部分。 根据许可证类型,在建立与 DTP 的连接时会自动配置许可证。点击配置链接可手动配置您的许可证选项(如果适用)。
在报告部分,勾选启用发送报告结果到 DTP,可向 DTP 发送静态分析任务、单元测试结果和覆盖率信息。
要将报告发布到 DTP,需要具有以下选项之一的有效许可证:DTP Publish 或 Automation。
您可以点击编辑链接配置高级报告设置(键=值)
:- 点击确定保存设置。
在 GUI 中配置 OpenID Connect
DTP 支持 OpenID Connect 用户身份验证(详细信息请参阅 DTP 用户指南)。如果为 DTP 服务器启用了 OpenID Connect,则必须配置 C/C++test 以通过 OpenID Connect 对用户进行身份验证。
- 在 IDE 中点击菜单栏的 Parasoft,选择选项(Visual Studio)或首选项(Eclipse)。
- 选择 OpenID Connect。
- 勾选启用。
- 配置以下选项:
发行人 URI:OpenID Connect 服务器的 URI。
客户端 ID:在 OpenID Connect 服务器上注册的 ID。
客户端密码:应用程序连接 OpenID Connect 服务器的密码。
范围:以空格分隔的范围列表,用于在身份验证过程中授权访问用户的详细信息。
回调主机:与 OpenID Connect 服务器通信所需的本地回调主机。可选择以下选项:
- localhost:通信将使用 localhost 地址。
- 127.0.0.1:环回 IP 地址 127.0.0.1 将用于通信。
回调端口:与 OpenID Connect 服务器通信的回调端口号。可选择以下选项:
- 自动选择一个打开的端口:自动选择一个打开的端口(推荐)。
- 使用端口:允许手动指定端口号。
回调超时:以秒为单位指定浏览器等待用户凭据的最长时间(请参阅第 6 步)。 - 点击测试身份验证或应用,在浏览器中打开 OpenID Connect 身份验证页面。
- 在打开的浏览器窗口中提供您的凭据。该身份验证页面可能类似于:
- 显示身份验证确认后,关闭浏览器窗口,在 IDE 中继续操作。
- 点击应用以应用更改。
状态窗格显示当前 OpenID Connect 身份验证的状态。
在命令行中连接 DTP
在命令行模式下使用 C/C++test 执行测试时连接 DTP 的步骤:
- 在自定义
.properties
文件中指定连接设置。 使用
-settings
命令行选项提供.properties
文件的路径:cpptestcli -settings [PATH_TO_.PROPERTIES_FILE]
所需设置
配置连接需要以下设置:
dtp.enabled=true
- 启用与 DTP 服务器的连接。dtp.url=[URL]
- 指定 DTP 服务器的 URL。dtp.user=[USERNAME]
- 指定 DTP 服务器身份验证的用户名。dtp.password=[PASSWORD]
- 指定 DTP 服务器身份验证的密码。report.dtp.publish=true
- 启用向 DTP 服务器报告结果。
可选设置
dtp.project=[NAME]
- 指定 DTP 项目的名称。build.id=[IDENTIFIER]
- 指定用于标记结果的构建标识符。session.tag=[TAG]
- 指定一个为测试会话的结果签名的标签。dtp.additional.settings=[KEY1\=VALUE1\nKEY2\=VALUE2...]
- 指定向 DTP 报告结果的高级设置。
在命令行中配置 OpenID Connect
DTP 支持 OpenID Connect 用户身份验证(详细信息请参阅 DTP 用户指南)。如果为 DTP 服务器启用了 OpenID Connect,则必须配置 C/C++test 以通过 OpenID Connect 对用户进行身份验证。
在 .properties
文件(在其中配置了与 DTP 服务器的连接)中配置以下设置。
如果将使用设备代码身份验证(默认):
oidc.enabled=true
- 通过 OpenID Connect 启用用户身份验证。oidc.cli.mode=devicecode
- 指定用于在 OpenID Connect 服务器上验证用户身份的方法。请参阅使用设备代码身份验证。oidc.issuer.uri=[URI]
- 指定 DTP 注册的 OpenID Connect 服务器的 URI。oidc.client.id=[ID]
- 指定 OpenID Connect 服务器提供的 ID。oidc.client.secret=[PASSWORD]
- 指定 OpenID Connect 服务器提供的密码。oidc.scopes=[list of scopes]
- 定义以空格分隔的范围列表,在身份验证期间使用这些范围来授权访问用户的详细信息。默认值为:openid profile offline_access
.oidc.keystore=[PATH]
- 指定存储了用于在 OpenID Connect 服务器上验证用户的证书的密钥库文件路径。oidc.keystore.password=[PASSWORD]
- 指定存储了自签名客户端证书的密钥库文件的密码。oidc.devicecode.token.file=[PATH]
- 指定包含用户身份验证信息的自定义令牌文件的路径
如果将使用证书身份验证:
oidc.enabled=true
- 通过 OpenID Connect 启用用户身份验证。oidc.cli.mode=certificate
- 指定用于在 OpenID Connect 服务器上验证用户身份的方法。oidc.issuer.uri=[URI]
- 指定 DTP 注册的 OpenID Connect 服务器的 URI。oidc.client.id=[ID]
- 指定 OpenID Connect 服务器提供的 ID。oidc.client.secret=[PASSWORD]
- 指定 OpenID Connect 服务器提供的密码。oidc.keystore=[PATH]
- 指定存储了用于在 OpenID Connect 服务器上验证用户的证书的密钥库文件路径。oidc.keystore.password=[PASSWORD]
- 指定存储了自签名客户端证书的密钥库文件的密码。
我们强烈建议您使用经过编码的密码,以确保身份验证成功并提高安全级别;请参阅创建编码密码。
详细信息请参阅 OpenID Connect 设置。
创建编码密码
C/C++test 可以为密码加密,这为您与 DTP 的交互增加了一层安全保护措施。运行以下命令打印编码密码:
-encodepass [your password]
复制返回的编码密码,并使用该密码配置 .properties
文件中的连接。示例:
dtp.password=[您的编码密码
]oidc.keystore.password=[您的编码密码]
使用设备代码身份验证
如果启用了“devicecode”模式,则会将带有用户代码的验证 URI 打印到 C/C++test 的控制台中。用户必须使用该 URI 和代码进行身份验证。如果身份验证成功,信息将保存到令牌文件(文件的路径存储在 oidc.devicecode.token.file 设置中)中,并在每次运行 C/C++test 时复用。如果文件中保存的信息失效,用户需要重新进行身份验证。
关于 Parasoft 开发测试工作流程
除了为测试和分析您正在开发的软件提供许可和共享资产之外,Parasoft DTP 还从 Parasoft 工具、第三方分析工具和外部系统(如漏洞跟踪和需求跟踪系统)收集与合并数据点。DTP 会对数据进行整合和优先级排序,并执行额外的分析来帮助您优化开发流程。将代码分析和测试执行工具与 DTP 一起使用能够在跨团队和整个 SDLC 中应用一致的质量实践。
下图显示了一般的工作流程。
将 Parasoft 工具与构建工具集成
Parasoft 工具附带的插件可以与您的构建工具(如 Maven、Ant、Gradle、MS Build、make 等)集成。这些集成允许您分析代码并自动向 DTP 发送数据,作为自动化构建流程和持续集成(CI)的一部分。
捕获监测结果
当分析工具运行时,它会捕获与监测的代码相关联的大量详细数据。监测结果为代码质量数据,如静态分析违规、单元测试失败、指标等,以及关于代码的逻辑信息,如作者身份、范围和源码控制位置。
将数据转换为任务
当监测结果被发送到 DTP 时,它们会转换成“任务”并存储在数据库中。任务是经过分析、标准化并汇总为可操作数据的监测结果。
将 DTP 任务导入桌面端
您可以将关键问题和过滤后的任务从 DTP 直接导入 IDE 中处理。
持续循环
当您将代码签回源码控制中时,持续集成过程会获取更改数据,并重复工作流程。这样就能够及时检测到缺陷,防止缺陷在开发过程后期演变为软件中的 bug,导致补救成本变得更高。