本主题解释如何配置 Parasoft 测试产品,以计算作者身份并在整个团队中分配质量任务。

本章包含:

关于任务分配和作者

通常有许多不同的团队成员在整个 SDLC 中从事开发项目 — 从应用程序逻辑的开发人员,到 Web 接口的开发人员,再到验证端到端流程和事务的 QA 测试人员。

使用从同行评审工作流自动化、静态分析、到单元测试、到运行时错误检测、到 SOA 策略执行、到单个 SOA 组件的功能测试以及端到端测试场景等技术,Parasoft 测试产品为各个团队成员生成要执行的质量任务。然后,可以根据手动分配或自动检测到的作者数据将这些任务分配给适当的团队成员。

此任务分配用于:

  • 允许每个团队成员只将他或她分配的任务从命令行测试导入 UI。
  • 给每个团队成员一份只包含他或她分配任务的报告。
  • 在经理报告中指出哪个团队成员负责哪些任务。

开发人员的任务分配

对于开发人员,代码作者数据可以影响测试了多少代码,以及每个开发人员的质量任务视图中显示了哪些测试结果。

通过更改测试配置的范围设置,您可以将测试配置为只覆盖您创建的文件或行,或者只覆盖您在指定日期之后修改的文件或行。此外,如果为用于测试的测试配置设置了 Test only files/lines authored by [your_username] 范围选项所编写的测试文件/行,那么质量任务视图将只显示您所编写的代码中的测试任务,以及重新分配给您的任何其他任务。 

QA 人员的任务分配

对于 QA 人员来说,Parasoft 测试可以通过多种方式基于源代码控制数据分配任务:

  • 如果您打算静态地分析源代码控制系统中的源文件,或者使用存储在源代码控制系统中的测试文件执行功能测试,您可以设置 Parasoft 测试来使用来自源代码控制系统的数据来分配任务。静态分析任务被分配给介绍它们的人。测试失败分配给最后从事相关测试的人员。
  • 如果您使用 Parasoft 测试进行功能测试,那么您可以直接为特定的测试套件或其他资源指定任务所有者。
  • 如果您将使用 Parasoft 测试来自动化同行评审,则评审任务分配是通过代码评审接口定义的(在代码评审部分中进行了描述)。

如果您在 Parasoft 测试环境中将源文件添加到项目中,您可以看到分配到该源文件的特定行中的团队成员,以及关于上次修改它的时间的信息:

  1. 打开相应文件的编辑器。
  2. 右键单击要查看其作者的行,然后从快捷菜单选择  Parasoft> Show Author at Line

注意,如果不使用源代码控制数据计算任务所有权,则消息将显示文件的修改信息(而不是所选的特定行)。

了解 Parasoft 测试的作者和任务分配

Parasoft 测试可以根据源代码控制数据(来自受支持的源代码控制系统)、@author Javadoc 标签、xml 映射文件(直接文件到作者的映射)和/或当前本地用户分配错误所有权。

如果您使用多个源来确定作者身份,则通过从上到下阅读首选项面板的范围和作者身份页面中的设置来确定作者身份优先级(首先是源代码控制,其次是 @author 标签,接下来是直接映射文件,最后是当前用户)。但是,如果所选选项之一没有确定作者(例如,选择了 @author 标签,但是文件没有 @author 标签),则 Parasoft 测试将根据所选的下一个选项确定作者。如果 Parasoft 测试仍然无法确定作者,则将用户设置为“未知”。同样,如果没有选择这些选项,则将用户设置为“未知”。

如果您将 Parasoft 测试配置为同时使用源代码控制和 @author 标记来计算作者身份,那么将尽可能检查源代码控制,而 @author 将用于不在源代码控制之下的项目和文件。

如果您选择使用当前的本地用户,那么本地用户将被视为作者,而本地修改时间将被视为最后一次修改时间。

Parasoft 测试分配作者身份和任务,如下所示:

  • 如果作者身份是基于源代码控制数据确定的,则 Parasoft 测试读取源代码控制数据,以确定谁最后修改了与任务相关的文件/行/方法等,然后将任务分配给那个人。
  • 如果作者身份是基于 @author Javadoc 标记确定的,那么 Parasoft 测试将查找与任务关联的代码最近的 @author Javadoc 标记,然后将任务分配给返回用户名的作者。
    • 对于方法级任务,它首先检查 Javadoc 中的方法,然后检查封闭类,最后检查文件的第一个类;返回第一个非空作者。
    • 对于类级任务,它首先检查 Javadoc 中的类,然后检查文件的第一个类;返回第一个非空作者。
    • 对于行级任务,它首先检查 Javadoc 中的方法,然后检查类,最后检查文件的第一个类;返回第一个非空作者。
    • 对于文件和文件级任务,返回文件的第一个类的第一作者
  • 如果直接指定文件到作者的映射,则根据这些设置分配作者身份。
  • 否则,将认为本地用户负责该任务,并将认为本地修改时间是最后一次修改时间。
  • 当静态分析违反被抑制时,它与实施抑制的人相关。

若要查看指定给某一行源代码的作者,以及关于最后一次修改时间的信息,请执行以下操作:

  1. 打开相应文件的编辑器。
  2. 右键单击要查看其作者的行,然后从快捷菜单选择  Parasoft> Show Author at Line .

注意,如果不使用源代码控制数据计算作者身份,则消息将显示文件的修改信息(而不是所选的特定行)。

更改计算作者身份的方式

可以指定作者身份计算设置:

  • 通过 Parasoft 测试 GUI 中的范围和作者首选项页面。
  • 通过 localsettings。

若要使用 GUI 控件更改作者身份计算,请执行以下操作:

  1. 选择 Parasoft> Preferences  以打开首选项对话框。
  2. 在左窗格,选择 Parasoft> Scope and Authorship 类别。
  3. 使用可用控件指示您希望 Parasoft 测试如何计算范围和作者。
    • Use source control (modification author) to computer scope: 源码控制数据将用于计算作者身份。
    • Use file system (xml map) to compute scope: 您将直接指定如何为特定文件或文件集分配任务(例如,您希望开发人员1 负责一组文件,开发人员2 负责另一组文件,等等)。关于更多详情,请查阅 Specifying File-to-Author Mappings 。
    • Use file system (@author tag) to compute scope: @author Javadoc 标记将用于计算作者身份。这只适用于 Jtest。
    • Use file system (current user) to compute scope: 本地用户名将用于计算作者身份。
  4. 单击 OK 设置并保存设置。

有关如何通过 localsettings 设置作者身份设置的更多详情,请查阅 配置 Localsettings

指定 File-to-Author 映射

如果希望直接指定哪些作者负责哪些文件(而不是自动计算作者数量),可以指定文件到作者的映射。这些映射可以自动配置一次,然后按照 跨团队配置 SOAtest中所描述的那样使用自动配置过程在整个团队中共享。

若要直接指定如何分配特定的文件或文件集:

  1. 请指示您将直接输入以下映射:
    1. 选择 Parasoft> Preferences 以打开首选项对话框。
    2. 在左窗格,选择 Scope and Authorship 类别。
    3. 选择的 Use file system (xml map) to compute scope
  2. 输入文件到作者的映射,细节如下:
    1. 在首选项对话框中选择 Scope and Authorship> Authorship Mapping 类别。
    2. 在 author 映射表中指定映射。注意,允许通配符;例如:
      • ?oo/src/SomeClass.java - 分配所有以任何字符(除 /)开头并以“oo/src/”结尾的所有文件
      • **.cs - 分配任何目录中的所有 *.cs 文件
      • **/src/** - 分配路径中包含名为“src”文件夹的每个文件
      • src/** - 分配位于目录“src”中的所有文件
      • src/**/Test* - 分配“src”目录中名称以“Test”开头的所有文件(例如,“src/some/other/dir/TestFile.c”)

        映射的顺序问题

        将最通用的路径放在映射的末尾。例如,在这里 /ATM/** 路径是最后一个,因为它是最通用的:
        /ATM/unittests/**  用户 1

        /ATM/other/**       用户 2

        /ATM/**                用户 3

        这表示将 unittests 文件分配给用户 1,将 other 文件分配给用户 2,将所有其他 ATM 文件分配给用户1.如果颠倒顺序,所有 ATM 文件将分配给用户 3。

    3. 单击 Save Changes
  3. 如果您还没有在整个团队中共享这些首选项,请单击 Export 将映射导出为 XML 文件,然后让团队成员导入映射文件。

或者,您可以通过以下方式直接使用 Parasoft 测试来使用导出的 XML 文件:

  • From the GUI - 在首选项对话框中指定该文件的路径的 Scope and Authorship> Authorship Mapping 类别(使用 Shared File 选项)。
  • From the command line - 使用以下命令指定该文件的路径: scope.xmlmap=true, scope.xmlmap.file=[file], 和 scope.mappings.locationproperties (通过 -local-settings 选项,如 配置 Localsettings中所述。这将覆盖 GUI 中指定的任何作者设置。

下面是一个示例 XML 作者身份映射文件:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE authorship (View Source for full doctype...)>
<authorship>
  <!-- assigns all files named: "foo/src/SomeClass.java" to "author1" -->
  <file author="author1" path="foo/src/SomeClass.java" />

  <!-- assigns all files whose names starts with any character (except /) and ends with "oo/
src/SomeClass.cs" to "author2" -->
  <file author="author2" path="?oo/src/SomeClass.cs" />
  <!-- assigns all *.c files in any directory to "author3" -->
  <file author="author3" path="**.c" />
  <!-- assigns every file whose path has a folder named "src" to "author4" -->
  <file author="author4" path="**/src/**" />
  <!-- assigns all files located in directory "src" to "author5" -->
  <file author="author5" path="src/**" />
  <!-- assigns all files in directory "src" whose name starts with "Test" i.e. "src/some/
other/dir/TestFile.java" to "author6" -->
  <file author="author6" path="src/**/Test*" />
</authorship>

从源代码控制生成 XML 映射文件

脚本可用于从源代码控制系统生成 XML 映射文件下面的示例 Perl 脚本演示了如何从 CVS 生成作者身份映射文件。如果使用不同的源代码控制系统,请进行适当的修改。

#!perl

############################################################
# GetAuthors.pl
# Sample script to generate file --> author mapping.
# Note that this is usually run only once, when you first
# deploy Parasoft Test .
#
# This script assumes that you have a list of all the files in the
# project. For example, such a list can be obtained on windows
# by using "dir /s/b *.c" for c files.
############################################################

sub GetAuthor
############################################################
# Gets the author (person who last modified the file) for
# the input file.
############################################################
{
   my $fileName = shift(@_);
   my $author = "DontKnow";
   system qq(cvs log $fileName > cvslog.txt);
   open(TMPFILE, "< cvslog.txt") || die "Could not open cvslog.txt";
   while (<TMPFILE>)
   {
         chop;
          if (m/(^date.*author:)(.*)(;[\s]*state)(.*)/)
          {
              $author = $2;
          }
   }
   close TMPFILE;
   return $author;
}

print "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n";
print "<mapping>\n";

############################################################
# AllCFiles.txt has a list of all the c files in the
# project. The following loop iterates through all the
# files and assigns owners to each.
############################################################
open(FILELIST, "<AllCFiles.txt") || die "Could not open AllCSFiles.txt";
while (<FILELIST>)
{
    chop;
    my $fileName = $_;
    my $author = GetAuthor($fileName);
    print "<file path=\"$fileName\" ";
    print "author=\"$author\" />\n";
}

print "</mapping>\n";

指定作者到作者和作者到电子邮件的映射

默认情况下,Parasoft 测试假定它检测到的每个用户名值(例如,基于源代码控制数据、系统的本地用户设置、@author 标记、直接映射文件、导入的 scanner.properties 文件)是代码作者的用户名,相关开发人员的电子邮件是 [username]@[mail_domain]。

但是,在某些情况下,您可能希望将检测到的用户名映射到另一个用户名和/或电子邮件地址。例如:

  • 如果您想将一个开发人员的所有任务重新分配给另一个开发人员(例如,如果用户1离开了这个组,而您希望用户2负责分配给用户1的所有任务)。我们将把这种类型的映射称为“作者到作者的映射”。
  • 如果开发人员的用户名与他的电子邮件地址不匹配(例如,检测到的用户名是 john,但是合适的电子邮件是 [email protected])。我们将把这种类型的映射称为“作者到电子邮件的映射”。

这些作者身份设置可以自动配置一次,然后按照中 Configuring Preferences Overview所描述的那样使用自动配置过程在整个团队中共享概要。 

如果尚未从自动配置过程中设置适当的作者设置,或者希望更改/覆盖导入的设置,则可以将检测到的默认用户值映射到其他用户名和/或电子邮件地址,如下所示:

  1. 选择 Parasoft> Preferences
  2. 打开 Parasoft> Authors 选项卡。
  3. 确保没有启用 Use Concerto settings 
  4. 确保没有启用 Authors mapping file location 。
  5. 如果要指定“作者到电子邮件”的映射,请执行以下操作:
    1. 进入  Login / Email / Full name 表。
    2. 单击 Add
    3. 在表中指定所需的映射
  6. 如果要指定“作者到作者”的映射,请执行以下操作: 
    1. 进入 Reassign tasks from this author...To this author 表。
    2. 单击 Add
    3. 在表中指定所需的映射
  7. 单击 Apply 按钮,保存更改。

在 UI 中指定作者 - 与 Concerto 集成

在所有允许输入团队成员姓名或电子邮件地址的 UI 位置(例如,电子邮件通知、重新分配任务、只由测试文件创建等),您可以开始输入姓名/地址,然后选择自动完成建议之一。

 


例如,如果输入的名称或电子邮件不在 Concerto 数据库中,则会发出警告,以防您输入错误。

在 localsettings 中指定作者映射

您还可以在 localsettings 文件中指定作者映射(从命令行或存储在 Concerto 上的 Parasoft 测试首选项中)。

为此:

  1. 设置 authors.mappings.location=local
  2. 使用 authors.mapping 指定合适的映射。
  3. 使用 authors.user 指定邮箱设置。

例如:

authors.mappings.location=local

authors.mapping1=baduser,gooduser

authors.mapping2=brokenuser,fixeduser

authors.mapping3=olduser,newuser

authors.user1=gooduser,[email protected],Gooduser Stowe

authors.user2=fixeduser,[email protected],Fixeduser White

...

确定“区分大小写”模式

可以确定是否将 author 值视为区分大小写的值。“区分大小写”设置适用于以下情况中的作者值:

  • 编码查核
  • 质量任务
  • 报告
  • 作用域和作者
  • Concerto 任务
  • 测试配置(比如, Scope tab > Author options and Code Review tab)

这里的“区分大小写”设置应该与 Concerto 中的“区分大小写”设置匹配。默认情况下,Concerto 区分大小写。关于如何在 Concerto 中配置“区分大小写”的更多详情,请查阅 Concerto 用户指南。

“区分大小写”详情

“区分大小写”设置决定同一用户名的多个变体是被视为一个用户还是多个用户,例如:

  • 区分大小写:David 和 DAVID 将被视为两个不同的用户。
  • 不区分大小写:  David 和 DAVID 将被视为同一个用户(相同用户)。

当团队使用的外部数据库中用户名的情况并不重要时,“区分大小写”模式尤其有用。如果用户名 david 作为 DAVID 存储在数据库中,并且您使用的是“区分大小写”模式,那么为 DAVID 导入的任务将无法与 david匹配。

“区分大小写”配置

您可以在首选项面板中设置“区分大小写”设置(Parasoft> Authors> Ignore case of user names in Parasoft Test platform)。



还可以使用 localsettings 选项 authors.ignore.case=true|false 配置此模式。有关 localsettings 选项的更多详情,请查阅 配置 Localsettings

使用多个源代码控制系统时处理作者身份

如果您和/或您的团队成员使用多个源代码控制系统,但对所有源代码控制系统使用相同的登录名,请按照以下步骤启动产品,以确保从源代码控制计算出准确的作者身份:

  • 独立版 Jtest: jtest -J-Duser.name=your_username ...
  • 独立版 SOAtest:SOAtest -J-Duser.name=your_username ...
  • 独立版 C++test: cpptest -J-Duser.name=your_username ...
  • 插件: eclipse ....-vmargs -Duser.name=your_username

手动设置本地用户

如果使用“本地用户”数据来确定作者,Parasoft 将默认使用机器上定义的本地用户设置。

如果希望使用不同的用户名,请转到顶部的 Parasoft 首选项页面,清除 Default,然后在 User name 字段中输入合适的名称。


  • No labels