本主题描述了 SOAtest 测试配置可用的设置。

本章包含:


如何配置和共享测试配置

与配置和共享测试配置相关的通用过程在 Parasoft 测试家族中是标准化的,在 配置用于策略的测试配置和规则中所描述。

Scope 选项卡设置:定义要测试的代码

仅适用于源码静态分析。

测试期间,SOAtest 将在所选定资源的所有代码上执行所选定操作,其中所选定资源满足所选定测试配置的作用域标准。默认情况下,SOAtest 在所选定项目或资产中的所有文件上进行操作。然而,可以使用 Scope 选项卡来配置限制,如下所示:

  • 只测试给定日期之后添加或修改的文件或行。
  • 只测试在本地机器上添加或修改的文件或行。
  • 只测试指定用户修改的文件。
  • 只测试匹配某个特定过滤标准的文件。

注意,某些文件过滤器和行过滤器仅适用于在受支持的源代码控制系统下工作的项目。

Scope 选项卡具有以下设置:

  • File Filters:限制 SOAtest 测试不符合指定时间戳和/或作者标准的文件。
    • Time options:限制 SOAtest 测试不符合指定时间戳标准的文件。可用时间选项包括:
      • No time filters:不根据文件的最后修改日期过滤任何文件。
      • Test only files added or modified since the cutoff date:过滤自截止日期以来未添加或修改的文件。
      • Test only files added or modified in the last n days:过滤未在指定时间段内添加或修改的文件。
      • Test only files modified between working and ____:过滤在工作的开发人员分支(工作区中)和指定的分支之间未修改的文件(或者,如果启用该选项,则检测到默认的集成流)。流名称可以是来自父开发人员工作流层次结构的任何流。默认集成流为开发人员工作流的父流。例如,如果拥有具有 [Main] --- [Integration] --- [Developer]这样层次结构的流,则 Developer 流的 Integration 为默认集成流。当前支持 SVN、AccuRev 和 Clear Case。
      • Test only files added or modified locally:过滤本机上未添加或修改的文件。该功能仅适用于受支持的源码控制系统下的文件。
    • Author options:限制 SOAtest 测试不符合特定作者标准的文件。可用的作者过滤选项包括:
      • No author filters:不根据文件作者过滤任何文件。
      • Test only files authored by preferred user:过滤不是由特定用户编写的任何文件(比如,过滤掉由其他用户编写的任何文件)。
    • Path options配置 SOAtest 过滤匹配特定过滤器标准的文件。使用 "accept” 过滤器来指定要包含的文件类型。使用 "reject" 过滤器来指定要排除的文件类型。对于编码查核测试配置,这些过滤器将预先使用相同的过滤选项进行填充。


过滤器提示和示例

提示

  • 可以使用 Perl 风格的表达式。
  • 支持以下通配符:
    • * 匹配除 '/’之外的 0 或多个字符。
    • ?  匹配除 '/’ 之外的任何单个字符。
    • ** 匹配包括 '/’ 的 0 或多个字符。它允许包含路径元素。
  • 以下示例元素默认添加到编码查核配置:
    • **/Bin/**/*.properties 添加到所拒绝通配符示例列表。
    • (.*?/(bin|obj)(/x86|/x64){0,1}/(Debug|Release)/.*?\\.(dll|exe|pdb))$ 添加到所拒绝正则表达式示例列表。
  • 正则表达式用于识别特殊的差异。例如,如果希望只标记添加、删除或修改 TODO 标签的源码变更,则将可以差异正则表达式
    .*TODO.*

示例

一个基本的文件掩码可能是:

  • *.java, *.xml, *.properties
  • *.c, *.cpp, *.h, *.cc, *.hpp, makefile, .project, .classpath
  • *.c, *.cpp, *.h, *.cc, *.hpp, makefile, *.sln, *.prj, *.res
  • *.cs, *.vb, *.sln, *.prj, *.resx

若要包含路径上所存在的名为 "bank" 或 "customer” 的文件夹的每个文件,则使用: 

  • **/bank/**, **/customer/**

若要包含路径上所存在的名以 "bank” 开头,中间包括 "customer” 或以 "invoice” 结尾的文件夹的每个文件,则使用: 

  • **/bank*/**, **/*customer*/**, **/*invoice/**

若要包含每个 .java 文件,其中 1) 名称以 "Test” 开头, 2) 定位于名为 "security" (其在任何项目的 src/test 目录中)的文件夹中,则使用:

**/src/test/**/security/Test*.java 

若要包含每个 .cs 文件,其中 1) 该文件在 ATM 解决方案中,2) 该文件属于 ATMLib 项目,3)该文件在 CompanyTests 子文件夹内,4)该文件名称以 "Test” 开头,则使用:

ATM/ATMLib/CompanyTests/**/Test*.cs 


  • Line filters:限制 SOAtest 进行操作的代码行。首先应用文件过滤器,以便到达行过滤器的代码必须通过文件过滤器。可用的行过滤选项包括:
    • Time options:限制 SOAtest 测试不符合指定时间戳标准的代码行。可用时间选项包括:
      • No time filters:不根据代码行的最后修改日期过滤任何文件。
      • Test only lines added or modified since the cutoff date:过滤自截止日期以来未添加或修改的代码行。该功能仅适用于受支持的源码控制系统下的文件。
      • Test only lines added or modified in the last n days:过滤未在指定时间段内添加或修改的代码行。
      • Test only lines added or modified locally:过滤本机上未添加或修改的代码行。该功能仅适用于受支持的源码控制系统下的文件。
    • Author options:限制 SOAtest 测试不符合指定作者标准的代码行。可用的作者过滤选项包括:
      • No author filters:不根据代码行的作者过滤任何文件。
      • Test only files authored by users:过滤掉不是由特定用户编写的任何文件。例如,可以使用它来专注您(或所选定组成员)正在工作的文件。若要指定多个用户,则使用以逗号分割的列表(例如,matt, tom, joe)。


配置作用域和作者:

代码作者信息和最近修改日期按照作用域和作者首选项页面中设置的方式确定;有关可用设置的详细信息,请查阅 配置任务分配和代码作者设置

静态选项卡设置:定义如何执行静态分析

测试期间,SOAtest 将根据该测试使用的测试配置中定义的参数执行静态分析。 

Static 选项卡具有以下设置:

  • Enable Static Analysis:决定 SOAtest 是否执行静态分析,其中涉及检查所选定资源是否遵循为该测试配置启用的规则。
  • Limit maximum number of tasks reported per rule to决定 SOAtest 是否限制每条规则报告的违规(任务)数。如果是这样,那么在单个测试中应该报告每条规则的最大违规数。例如,如果希望看到每条规则违规的次数不超过五次,则将此参数设置为 5。默认设置为 1,000。
  • Do not apply suppressions决定 SOAtest 是否应用特定抑制。如果没有应用抑制,则 SOAtest 将报告所有发现的违规行为。
  • Rules tree决定静态分析期间检测哪些规则。使用规则树和相关控件来指明您希望在静态分析期间检查哪些规则和规则类别。
    • 若要查看规则说明,则右键单击代表该规则的节点,然后从快捷菜单选择 View Rule Documentation
    • 若要查看规则类别说明,则右键单击代表该规则类别的节点类别,然后从快捷菜单选择 View Category Documentation
    • 若要启用或禁用特定规则类别中的所有规则或特定规则类别中的特定类型规则,则右键单击类别节点,然后选择 Enable Rules>[desired option] or Disable Rules> [desired option]

    • 若要搜索一条规则,则单击 Find 按钮,然后使用该对话框进行搜索。
    • 若要隐藏未启用的规则,则单击 Hide Disabled 按钮。如果希望稍后显示所有规则,则单击 Show All


提示

  • 每个规则 ID 旁边的数字表示规则的严重度级别。严重度级别表示违反的违规可能将导致验证的构造缺陷(导致应用程序问题的编码结构,如性能低下、安全漏洞等)。潜在的严重度级别(从最严重到最不严重)有:
    • 最高 - 级别 1
    • 高 - 级别 2
    • 中等 - 级别 3
    • 低 - 级别 4
    • 最低 - 级别 5
  • 若要了解 SOAtest 包含的规则,请选择 Help> Help Contents,然后打开 SOAtest Static Analysis Rules 图书,然后浏览可用规则说明文件。
  • 若要生成一个可打印的列表,其中包含给定测试配置要检查的所有规则:
    1. 通过选择 Parasoft> Test Configurations打开测试配置面板。
    2. 选择表示要修改的用户定义测试配置的测试配置类别。
    3. 打开 Static 选项卡。
    4. 单击 PrintableDocs 按钮。


Execution 选项卡设置:定义如何执行测试

测试期间,SOAtest 将根据所选定测试配置的 Execution 选项卡中定义的参数执行测试用例。对于任何级别的执行,必须启用顶部 Enable Test Execution 选项。

Functional 选项卡

Execution> Functional 选项卡具有以下设置:

  • Execute functional tests决定是否运行任何功能测试。
  • Enable event logging决定 SOAtest 是否记录需要提供测试开始到结束之间发生的详细事件顺序的所有事件的数据(例如,所有发送的请求、接收的响应、使用的数据源、等待时间、导航任务等等)。有关更多详情,请查阅 探索测试事件细节 。
  • Execute in load test mode决定 SOAtest 是否在负载测试模式下执行可用测试,并提醒您任何可能影响负载测试的显出问题。例如,配置了错误的 HTTP 请求。有关更多详情,请查阅 Validating Tests
    • Auto-configure tests in preparation for load testing决定 SOAtest 是否配置基于浏览器的 web 场景,以在无浏览器负载测试环境中运行。有关更多详情,请查阅 Configuring Tests
  • Execute only opened Test Suite (.tst) Files (always false in command-line mode)决定 SOAtest 是否执行当前不活跃的测试套件(比如,当前没有进行的测试)。
  • Report traffic for all tests决定报告是否包含 "Test Traffic [All Tests]” 部分,其中包含每个测试执行的流量,无论其成功与否。入股启用此选项,则还可配置流量限制:测试执行会话过程中存储的流量数(而非每个测试)。默认为 500 KB。
  • Launch an application允许配置 SOAtest 测试配置,以便在测试配置执行开始时运行 Eclipse 启动配置。例如,假设希望对在 Eclipse 中启动和运行的应用程序的本地副本运行测试场景。  如果想要启动应用程序并在一个简单的步骤中运行测试,则可以创建一个测试配置来启动该应用程序以及执行测试。
  • Override default environment during test execution配置 SOAtest,使其始终使用指定的环境进行使用此测试配置运行的测试,无论测试用例资源管理器中的环境是否活动。
    例如,假设具有以下环境:



    这是您如何设置测试配置,使其始终使用 "staging server” 环境:



  • Use playback engine允许在测试执行时覆盖测试的回放引擎设置。默认情况下,测试配置被设置为使用测试套件级别指定的回放引擎来播放 web 场景。这允许使用单个测试配置来指定 Selenium 配置的混合测试以及传统引擎配置的测试。如果在此处选择了一个特定的驱动程序,则不管在测试场景级别上配置了什么引擎都将使用它。有关更多详情,请查阅 Using Selenium WebDriver for Legacy Browser RecordingsUsing the Legacy Native Driver Instead of Selenium
  • Use browser:允许在测试执行时覆盖测试的浏览器回放设置。有关更多详情,请查阅 配置浏览器回放选项
  • Apply static analysis to如果测试配置运行静态分析和测试执行(例如,执行 web 场景上的静态分析),则该设置决定是否在 HTTP 响应或浏览器内容上执行静态分析。
    • HTTP Responses 指的是浏览器为了构建其数据模型而生成的单个 HTTP 消息。服务器按原样返回的内容(在任何浏览器处理之前)。
    • Browser-Constructed HTML 指的是浏览器从其加载的所有 HTML、JS、CSS 和其他文件构建的实时数据模型。

Security 选项卡

Execution> Security 选项卡允许配置穿透性测试,其在 渗透测试中有所描述。

运行时错误检测(Runtime Error Detection)选项卡

Execution> Runtime Error Detection 选项卡允许配置运行时错误检测,其在 执行运行时错误检测中有所描述。

变更影响(Change Impact)选项卡

Execution> Change Impact 选项卡包含一个选项(Perform change impact analysis),该选项控制当前测试配置是否在测试执行期间执行变更影响分析。有关更多详情,请查阅 使用变更指导助手更新报文

API 覆盖率选项卡

Execution> API Coverage 选项卡包含测试执行期间计算 API 覆盖率的选项。有关更多详情,请查阅 API 覆盖率 。

应用程序覆盖率选项卡

Execution> Application Coverage 选项卡包含收集应用程序覆盖率数据的选项,它提供了对您的 SOAtest 测试所实现的代码覆盖率级别的可见性。关于更多详情,请查阅 Application Coverage 。

常见选项设置:定义影响多个分析类型的常见选项 

测试配置的 Common 选项卡控制影响多个分析类型的操作的测试设置。

Common 选项卡具有以下设置:

  • Override Session Tag将指定会话标签分配给使用当前测试配置执行的测试运行的结果。它覆盖了在 Preferences> Parasoft> Reports中指定的会话标签。该值用于上传汇总结果到团队服务器。标记是在分析过程中检查模块的标识符。不同模块的报告应该用不同的标签标记。对 Parasoft 测试首选项有效的相同变量可以在此处使用。
  • Before Testing> Refresh projects确定项目在测试之前是否已刷新。当刷新项目时,SOAtest 检查外部工具是否更改了本地文件系统中的项目,然后应用任何检测到的变更。注意,当从命令行进行测试时,项目总是在测试之前进行刷新。
  • Before Testing>  Update projects from source control在测试项目之前,确定是否从源代码控制(如果使用受支持的源代码控制系统)更新项目。
  • Build在测试之前,确定项目是否已构建。注意,此设置适用于 GUI 测试,而不是命令行测试。可用选项包括:
    • Full (rebuild all files)指定应始终重新构建所有项目文件。
    • Incremental (build files changed since last build)指定只应重新构建自上一个构建以来已更改的项目文件。
    • Stop testing on build errors指定在报告构建错误时是否应该停止测试。
  • After Testing> Commit added/modified files to source control if no tasks were reported允许将测试和源代码控制登记合并到一个步骤中。例如,如果希望在文件上运行静态分析,则启用该选项。如果没有报告静态分析任务,则让 SOAtest 自动签入修改后的文件。在功能测试的上下文中,它告诉 SOAtest 是否运行修改后(并通过)的测试,它应该将修改后的测试检入到源代码控制中。

编码查核选项卡设置:定义编码查核选项

此选项卡包含自动准备、通知、跟踪同行评审过程的设置,其可用于在组织定义的质量策略上下文中评估关键 SDLC 构件(源文件、测试等)。

关于配置编码查核的更多详情(包括编码查核选项的详情),请查阅 代码审查。 

Goals 选项设置:定义错误报告和解决方案目标

团队管理人员可以指定报告极限(比如,“每个开发人员每天不能报告多余 25 条的静态分析任务”)和/或质量目标(比如,“所有静态分析违规行为应该在 2 个月之内修复”)。然后,SOAtest 将使用特定标准为每个开发人员选择测试任务的自己,以每天执行。这些目标在 Goals 选项卡中指定。然后可以在报告中监视指向这些目标的进展。

或者,可以设置全局团队目标,该目标可跨多个测试配置甚至所有 Parasoft 测试产品,如 配置任务目标中所述。这要求团队服务器和 Parasoft 测试自动版本许可证。如果目标为全局性的,则将禁用测试配置面板中的 Goals 选项卡。

Goals 选项卡具有以下设置:

Static 选项卡

  • Perform all tasks表示希望 SOAtest 报告其推荐的所有静态分析,以及团队是否应该立即执行所有静态分析任务。
  • Don’t perform tasks表示希望 SOAtest 报告其推荐的所有静态分析,但不需要团队立即执行所有静态分析任务。例如,如果希望查看所有推荐的静态分析任务,但又希望团队在处理静态分析违规之前集中精力修复测试失败,那么这是非常有用的。
  • No more than n tasks per developer by date指定希望在特定日期内每个开发人员只有 n 个静态分析任务。
  • Max tasks to recommend限制在任何测试运行中为每个开发人员报告的静态分析任务的数量。所显示的任务是随机选定的,以便在每次运行后显示不同任务。例如,如果将参数设置为 50,那么将随机选择每次运行后显示的第一个任务,而下面的 49 个任务将跟随完整报告中的第一个任务。

Execution 选项卡

  • Perform all tasks表示希望 SOAtest 报告所有功能测试任务,并且团队应该立即执行指定任务。
  • Don’t perform tasks表示希望 SOAtest 报告所有功能测试任务,但不需要团队立即执行所有指定任务。例如,如果希望查看所有必需的功能测试任务,但又希望团队在处理功能测试失败之前集中精力修复静态分析,那么这是非常有用的。
  • No more than n tasks per developer by date表示希望在特定日期内每个开发人员只有 n 个功能测试任务。
  • Max tasks to recommend限制在任何测试运行中为每个开发人员报告的功能测试任务的数量。所显示的任务是随机选定的,以便在每次运行后显示不同任务。例如,如果将参数设置为 50,那么将随机选择每次运行后显示的第一个任务,而下面的 49 个任务将跟随完整报告中的第一个任务。
  • No labels