Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Now we will modify the Vera polices and qTest test case settings to support new business rules.

Table of Contents

Sample

...

Business Rules

We will configure Vera to support the following chart.

Sample Requirement: Manual and automated test case approval is based on Type and Regulation and Test Type (A = Approver) below.

Test

Type

Regulation

Technical

Business

Data Owner

Product Team Member

Product Lead

Quality

Data Migration

N/A

A

A

A

A*

Configuration

None

A (2)

Configuration

GxP

A

A*

System

None

A (2)

System

GxP

A

A

A*

Acceptance

None

A (2)

Acceptance

GxP

A

A*

N/A

SOX

A

A*

N/A

SOX & GxP

A

A

A*

A*

Other

N/A

A**

Info

*Approve after other approvals are complete. Quality will approve after Product Lead approval.

**Prevent author approval

If Regulatory field value is not set it should be evaluated as None.

Vera Analysis & Design

Based on the above requirement we will need to make the following modifications:

  • Update qTest Test Cases fields and field values in the qTest Project.

    • Update Test Case Type field value

    • Add Regulation custom field and add field values

  • Update the qTest Test Case Record Type data fields in the Records Management Policy in Tutorial Policy Set

  • Modify the Approval Policy in the Tutorial Policy Set

    • Add new Approval Groups

    • Add and modify Route Templates

The new business rules apply to the qTest Test Case and Automated Test Case Record Types. We will need to update the Approval Policy with the following Approval Templates:

Approval Template Name

Rank

Record Type

Constraints

Level 1 Approvers

Level 2 Approvers

Level 3 Approvers

Prevent Author Approval

Data Migration Test Case

10

qTest Test Case,

Automated Test Case

Type = Data Migration

Technical,

Business,

Data Owner

Quality

N/A

false

Configuration Test Case

70

Test Test Case,

Automated Test Case

Type = Configuration,

Regulation = None OR IsEmpty

Technical,

Technical

N/A

N/A

false

GxP Configuration Test Case

20

Test Test Case,

Automated Test Case

Type = Configuration,

Regulation = GxP

Technical

Quality

N/A

false

System Test Case

80

Test Test Case,

Automated Test Case

Type = System,

Regulation = None OR IsEmpty

Product Team Member,

Product Team Member

N/A

N/A

false

GxP System Test Case

30

Test Test Case,

Automated Test Case

Type = System,

Regulation = GxP

Technical,

Business

Quality

N/A

false

Acceptance Test Case

90

Test Test Case,

Automated Test Case

Type = Acceptance,

Regulation = None OR IsEmpty

Business,

Business

N/A

N/A

false

GxP Acceptance Test Case

40

Test Test Case,

Automated Test Case

Type = Acceptance,

Regulation = GxP

Business

Quality

N/A

false

SOX Test Case

50

Test Test Case,

Automated Test Case

Type = SOX

Product Team Member

Product Lead

N/A

false

SOX & GxP Test Case

60

Test Test Case,

Automated Test Case

Type = SOX & GxP

Technical, Business

Product Lead

Quality

false

Default

100

N/A

N/A

Product Team Member

N/A

N/A

true

Info

Rank determines the order Route Templates are evaluated by Vera when a record is routed for approval. Use Rank to ensure Constraints are evaluated in the proper order. The rank can be any integer from 1 to 9999. Default is the lowest rank (highest number) so it is the last Route Template evaluated.

qTest Project Configuration

First we will look at qTest project Field Settings for Test Case.

  1. We need to update the Test Case Type Combo box list values by adding:

    1. Data Migration

    2. Configuration

    3. System

    4. Acceptance

      Image Added
  2. We need to add a new Test Case custom field Regulation Combo box and add the following list values:

    1. None

    2. SOX

    3. GxP

    4. SOX & GxP

      Image Added

Vera Configuration

Now that you evaluated the business rules and updated qTest, you can update the Records Management Policy and the Approval Policy.

Records Management Policy updates

We are going to update the Records Management Policy from Add Test Run Records to Records Management Policy . Open VeraRMPTutorial-part2.json in an editor for modification.

  1. Add Type and Regulation to the qTest Test CaseRecord Type in addition to the existing fields: Status, Description, and Precondition. The Automated Test Case Record Type inherits fields from the qTest Test Case Record Type with "Base Record Type": "qTest Test Case" element:

    Code Block
            "Fields": [
              {
                "Name": "Status",
                "Is Data": true
              },
              {
                "Name": "Description",
                "Is Data": true
              },
              {
                "Name": "Precondition",
                "Is Data": true
              },
              {
                "Name": "Type",
                "Is Data": true
              },
              {
                "Name": "Regulation",
                "Is Data": true
              }
            ]
          }

    Here is the updated qTest Test Case Record Type in the Records Management Policy with above code block:

    Code Block
    {
      "Revision": "3",
      "Records Management Policy": {
        "Version": "Vera Tutorial 3", 
        "Schema": {
          "ID": "http://tx3services.com/schemas/0/0/records-management-policy.json",
          "Major": "0",
          "Minor": "0"
        },
        "Record Types": [
          {
            "Name": "qTest Test Case",
            "Definitions": [
              {
                "Systems": ["qTest"],
                "Item Types": ["test-case"],
                "Singular Name": "Test Case",
                "Plural Name": "Test Cases"
              }
            ],
            "Author": 
              {
                "Source": "Route Owner"
              },
            "Constraints": [
              {
                "Type": "Field Is Not Equal",
                "Name": "Automation",
                "Value": "Tosca"
              }
            ],
            "Fields": [
              {
                "Name": "Status",
                "Is Data": true
              },
              {
                "Name": "Description",
                "Is Data": true
              },
              {
                "Name": "Precondition",
                "Is Data": true
              },
              {
                "Name": "Type",
                "Is Data": true
              },
              {
                "Name": "Regulation",
                "Is Data": true
              }
            ]
          },
          {
            "Name": "qTest Test Step",
            "Definitions": [
              {
                "Systems": ["qTest"],
                "Item Types": ["test-step"],
                "Singular Name": "Test Step",
                "Plural Name": "Test Steps"
              }
            ],
            "Fields": [
              {
                "Name": "Description",
                "Is Data": true
              },
              {
                "Name": "Expected Result",
                "Is Data": true
              }
            ]
          },
          {
            "Name": "Automated Test Case",
            "Base Record Type": "qTest Test Case", 
            "Definitions": [
              {
                "Systems": ["qTest"],
                "Item Types": ["test-case"],
                "Singular Name": "Test Case",
                "Plural Name": "Test Cases"
              }
            ],
            "Author":
              {
                "Source": "Route Owner"
              },
            "Constraints": [
              {
                "Type": "Field Is Equal",
                "Name": "Automation",
                "Value": "Tosca"
              }
            ]
          }
        ]
      }
    }
  2. Save the Records Management Policy as VeraRMPTutorial-part3.json

Now we have a Records Management Policy configured for the new Test Case business rules. The completed JSON file with qTest Test Case update can be downloaded here:

View file
nameVeraRMPTutorial-part3.json

Approval Policy updates

We are going to update the Approval Policy from Add Approval Template to Approval Policy. Open VeraAPTutorial-part1.json in an editor for modification.

First you will update Approval Roles, then you will add the Approval Templates in Rank order to make it easier to manage and troubleshoot.

Approval Roles

There are new Approval Roles you need to add to the Approval Policy: Data Owner, Product Team Member, and Product Lead

Code Block
languagejson
      "Approval Groups": [
        "Business",
        "Technical",
        "Quality",
        "Data Owner",
        "Product Team Member",
        "Product Lead"
      ]

Approval Templates

Now we can add the new Route Templates and update the Default Route Template.

Data Migration Test Case

Configuration element

Value

Code Snippet

Name

Data Migration Test Case

Code Block
"Name": "Data Migration Test Case"

Rank

 10

Code Block
"Rank": "10"

Record Type

qTest Test Case,

Automated Test Case

Code Block
"Record Types": [
  "qTest Test Case",
  "Automated Test Case"
]

Constraints

Type = Data Migration

The Field Is Equal or Field Is One Of constraint can be used for this business rule.

Code Block
"Constraints": [
  {
    "Type": "Field Is Equal",
    "Name": "Type",
    "Value": "Data Migration"
    "Ignore Case": true
  }
]

Note: Ignore Case default value is false.

Level 1 Approvers

Technical,

Business,

Data Owner

Code Block
"Levels": [
  {
    "Name": "Level 1",
    "Approvers": [
      "Technical",
      "Business",
      "Data Owner"
    ]
  }
]

Level 2 Approvers

Quality

Code Block
"Levels": [
  {
    "Name": "Level 2",
    "Approvers": ["Quality"]
  }
]

Prevent Author Approval

FALSE

Code Block
"Prevent Author Approval": false

The completed Route Template for Data Migration Test case is below:

Code Block
 {
    "Route Templates": [
      {
        "Name": "Data Migration Test Case",
        "Rank": "10",
        "Prevent Author Approval": true,
        "Record Types": [
          "qTest Test Case",
          "Automated Test Case"
        ],
        "Constraints": [
          {
            "Type": "Field Is Equal",
            "Name": "Type",
            "Values": ["Data Migration"],
            "Ignore Case": false
          }
        ],
        "Levels": [
          {
            "Name": "Level 1",
            "Approvers": ["Technical","Business","Data Owner"]
          },
          {
            "Name": "Level 2",
            "Approvers": ["Quality"]
          }
        ]
      } 
    ]
  }

GxP Configuration Test Case

Configuration element

Value

Code Snippet

Name

GxP Configuration Test Case

Code Block
"Name": "GxP Configuration Test Case"

Rank

20

Code Block
"Rank": "20"

Record Type

Test Test Case,

Automated Test Case

Code Block
"Record Types": [
  "qTest Test Case",
  "Automated Test Case"
]

Constraints

Type = Configuration,

Regulation = GxP

The Field Is Equal or Field Is One Of constraint can be used for this business rule. Ignore Case element default value is false.

Code Block
  Constraints": [
    {
      "Type": "All",
      "Constraints": [
        {
          "Type": "Field Is Equal",
          "Name": "Type",
          "Value": "Configuration"
        },
        {
          "Type": "Field Is One Of",
          "Name": "Regulation",
          "Values": ["GxP"]
        }
      ]
    }
  ]

Note: The All Boolean constraint is the default constraint.

Level 1 Approvers

Technical

Code Block
"Levels": [
  {
    "Name": "Level 1",
    "Approvers": ["Technical"]
  }
]

Level 2 Approvers

Quality

Code Block
"Levels": [
  {
    "Name": "Level 2",
    "Approvers": ["Quality"]
  }
]

Prevent Author Approval

FALSE

Code Block
"Prevent Author Approval": false

The completed Route Template for GxP Configuration Test case is below:

Code Block
 {
    "Route Templates": [
      {
        "Name": "GxP Configuration Test Case",
        "Rank": "20",
        "Prevent Author Approval": false,
        "Record Types": [
          "qTest Test Case",
          "Automated Test Case"
        ],
        Constraints": [
          {
            "Type": "All",
            "Constraints": [
              {
                "Type": "Field Is Equal",
                "Name": "Type",
                "Value": "Configuration"
                
              },
              {
                "Type": "Field Is One Of",
                "Name": "Regulation",
                "Values": ["GxP"]
              }
            ]
          }
        ],
        "Levels": [
          {
            "Name": "Level 1",
            "Approvers": ["Technical"]
          },
          {
            "Name": "Level 2",
            "Approvers": ["Quality"]
          }
        ]
      } 
    ]
  }

GxP System Test Case

Configuration element

Value

Code Snippet

Name

GxP System Test Case

Code Block
"Name": "GxP System Test Case"

Rank

30

Code Block
"Rank": "30"

Record Type

Test Test Case,

Automated Test Case

Code Block
"Record Types": [
  "qTest Test Case",
  "Automated Test Case"
]

Constraints

Type = System,

Regulation = GxP

The Field Is Equal or Field Is One Of constraint can be used for this business rule.

Code Block
  "Constraints": [
    {
      "Type": "Field Is Equal",
      "Name": "Type",
      "Value": "System"
    },
    {
      "Type": "Field Is One Of",
      "Name": "Regulation",
      "Values": ["GxP"]
    }
  ]

Note: The All Boolean constraint is the default constraint.

Level 1 Approvers

Technical,

Business

Code Block
"Levels": [
  {
    "Name": "Level 1",
    "Approvers": [
      "Technical",
      "Business"
    ]
  }
]

Level 2 Approvers

Quality

Code Block
"Levels": [
  {
    "Name": "Level 2",
    "Approvers": ["Quality"]
  }
]

Prevent Author Approval

FALSE

Code Block
"Prevent Author Approval": false

The completed Route Template for GxP System Test case is below:

Code Block
 {
    "Route Templates": [
      {
        "Name": "GxP System Test Case",
        "Rank": "30",
        "Prevent Author Approval": false,
        "Record Types": [
          "qTest Test Case",
          "Automated Test Case"
        ],
        "Constraints": [
          {
            "Type": "Field Is Equal",
            "Name": "Type",
            "Value": "System"
          },
          {
            "Type": "Field Is One Of",
            "Name": "Regulation",
            "Values": ["GxP"]
          }
        ],
        "Levels": [
          {
            "Name": "Level 1",
            "Approvers": ["Technical", "Business"]
          },
          {
            "Name": "Level 2",
            "Approvers": ["Quality"]
          }
        ]
      } 
    ]
  }

GxP Acceptance Test Case

Configuration element

Value

Code Snippet

Name

GxP Acceptance Test Case

Code Block
"Name": "GxP Acceptance Test Case"

Rank

40

Code Block
"Rank": "40"

Record Type

Test Test Case,

Automated Test Case

Code Block
"Record Types": [
  "qTest Test Case",
  "Automated Test Case"
]

Constraints

Type = Acceptance,

Regulation = GxP

The Field Is Equal or Field Is One Of constraint can be used for this business rule.

Code Block
  "Constraints": [
    {
      "Type": "Field Is Equal",
      "Name": "Type",
      "Value": "Acceptance"
    },
    {
      "Type": "Field Is One Of",
      "Name": "Regulation",
      "Values": ["GxP"]
    }
  ]

Note: The All Boolean constraint is the default constraint.

Level 1 Approvers

Business

Code Block
"Levels": [
  {
    "Name": "Level 1",
    "Approvers": [
      "Business"
    ]
  }
]

Level 2 Approvers

Quality

Code Block
"Levels": [
  {
    "Name": "Level 2",
    "Approvers": ["Quality"]
  }
]

Prevent Author Approval

FALSE

Code Block
"Prevent Author Approval": false

The completed Route Template for GxP Acceptance Test case is below:

Code Block
 {
    "Route Templates": [
      {
        "Name": "GxP Acceptance Test Case",
        "Rank": "40",
        "Prevent Author Approval": false,
        "Record Types": [
          "qTest Test Case",
          "Automated Test Case"
        ],
        "Constraints": [
          {
            "Type": "Field Is Equal",
            "Name": "Type",
            "Value": "Acceptance"
          },
          {
            "Type": "Field Is One Of",
            "Name": "Regulation",
            "Values": ["GxP"]
          }
        ],
        "Levels": [
          {
            "Name": "Level 1",
            "Approvers": ["Business"]
          },
          {
            "Name": "Level 2",
            "Approvers": ["Quality"]
          }
        ]
      } 
    ]
  }

SOX Test Case

Configuration element

Value

Code Snippet

Name

SOX Test Case

Code Block
"Name": "SOX Test Case"

Rank

50

Code Block
"Rank": "50"

Record Type

Test Test Case,

Automated Test Case

Code Block
"Record Types": [
  "qTest Test Case",
  "Automated Test Case"
]

Constraints

Type = SOX

The Field Is Equal or Field Is One Of constraint can be used for this business rule.

Code Block
  "Constraints": [
    {
      "Type": "Field Is Equal",
      "Name": "Regulation",
      "Value": "SOX"
    }
  ]

Note: The All Boolean constraint is the default constraint.

Level 1 Approvers

Product Team Member

Code Block
"Levels": [
  {
    "Name": "Level 1",
    "Approvers": [
      "Product Team Member"
    ]
  }
]

Level 2 Approvers

Product Lead

Code Block
"Levels": [
  {
    "Name": "Level 2",
    "Approvers": ["Product Lead"]
  }
]

Prevent Author Approval

FALSE

Code Block
"Prevent Author Approval": false

The completed Route Template for SOX Test case is below:

Code Block
 {
    "Route Templates": [
      {
        "Name": "SOX Test Case",
        "Rank": "50",
        "Prevent Author Approval": false,
        "Record Types": [
          "qTest Test Case",
          "Automated Test Case"
        ],
        "Constraints": [
          {
            "Type": "Field Is Equal",
            "Name": "Regulation",
            "Value": "SOX"
          }
        ],
        "Levels": [
          {
            "Name": "Level 1",
            "Approvers": ["Product Team Member"]
          },
          {
            "Name": "Level 2",
            "Approvers": ["Product Lead"]
          }
        ]
      } 
    ]
  }

SOX & GxP Test Case

Configuration element

Value

Code Snippet

Name

SOX & GxP Test Case

Code Block
"Name": "SOX & GxP Test Case"

Rank

60

Code Block
"Rank": "60"

Record Type

Test Test Case,

Automated Test Case

Code Block
"Record Types": [
  "qTest Test Case",
  "Automated Test Case"
]

Constraints

Type = SOX & GxP

The Field Is Equal or Field Is One Of constraint can be used for this business rule.

Code Block
  "Constraints": [
    {
      "Type": "Field Is Equal",
      "Name": "Regulation",
      "Value": "SOX & GxP"
    }
  ]

Note: The All Boolean constraint is the default constraint.

Level 1 Approvers

Technical, Business

Code Block
"Levels": [
  {
    "Name": "Level 1",
    "Approvers": [
      "Technical", 
      "Business"
    ]
  }
]

Level 2 Approvers

Product Lead

Code Block
"Levels": [
  {
    "Name": "Level 2",
    "Approvers": ["Product Lead"]
  }
]

Level 3 Approvers

Quality

Code Block
"Levels": [
  {
    "Name": "Level 3",
    "Approvers": ["Quality"]
  }
]

Prevent Author Approval

FALSE

Code Block
"Prevent Author Approval": false

The completed Route Template for SOX & GxP Test case is below:

Code Block
 {
    "Route Templates": [
      {
        "Name": "SOX & GxP Test Case",
        "Rank": "60",
        "Prevent Author Approval": false,
        "Record Types": [
          "qTest Test Case",
          "Automated Test Case"
        ],
        "Constraints": [
          {
            "Type": "Field Is Equal",
            "Name": "Regulation",
            "Value": "SOX & GxP"
          }
        ],
        "Levels": [
          {
            "Name": "Level 1",
            "Approvers": ["Technical", "Business"]
          },
          {
            "Name": "Level 2",
            "Approvers": ["Product Lead"]
          },
          {
            "Name": "Level 3",
            "Approvers": ["Quality"]
          }
        ]
      } 
    ]
  }

Configuration Test Case

Configuration element

Value

Code Snippet

Name

Configuration Test Case

Code Block
"Name": "Configuration Test Case"

Rank

70

Code Block
"Rank": "70"

Record Type

Test Test Case,

Automated Test Case

Code Block
"Record Types": [
  "qTest Test Case",
  "Automated Test Case"
]

Constraints

Type = Configuration,

Regulation = None

OR

Regulation IsEmpty

The Field Is Equal, Field Is One Of or Field Is Not One Of constraint can be used for this business rule. The Any constraint can be used if only one constraint needs to be true.

Code Block
  "Constraints": [
    {
      "Type": "Field Is Equal",
      "Name": "Type",
      "Value": "Configuration"
    },
    {
      "Type": "ANY",
      "Constraints": [
        {
          "Type": "Field Is Equal",
          "Name": "Regulation",
          "Value": "None"
        },
        {
          "Type": "Field Is Empty",
          "Name": "Regulation"
        }
      ]
    }
  ]

Level 1 Approvers

Technical,

Technical

Code Block
"Levels": [
  {
    "Name": "Level 1",
    "Approvers": [
      "Technical",
      "Technical"
    ]
  }
]

Prevent Author Approval

FALSE

Code Block
"Prevent Author Approval": false

The completed Route Template for Configuration Test case is below:

Code Block
 {
    "Route Templates": [
      {
        "Name": "Configuration Test Case",
        "Rank": "70",
        "Prevent Author Approval": false,
        "Record Types": [
          "qTest Test Case",
          "Automated Test Case"
        ],
        "Constraints": [
          {
            "Type": "Field Is Equal",
            "Name": "Type",
            "Value": "Configuration"
          },
          {
            "Type": "ANY",
            "Constraints": [
              {
                "Type": "Field Is Equal",
                "Name": "Regulation",
                "Value": "None"
              },
              {
                "Type": "Field Is Empty",
                "Name": "Regulation"
              }
            ]
          }
        ],
        "Levels": [
          {
            "Name": "Level 1",
            "Approvers": ["Technical", "Technical"]
          }
        ]
      } 
    ]
  }

System Test Case

Configuration element

Value

Code Snippet

Name

System Test Case

Code Block
"Name": "System Test Case"

Rank

80

Code Block
"Rank": "80"

Record Type

Test Test Case,

Automated Test Case

Code Block
"Record Types": [
  "qTest Test Case",
  "Automated Test Case"
]

Constraints

Type = System,

Regulation = None

OR

Regulation IsEmpty

The Field Is Equal, Field Is One Of or Field Is Not One Of constraint can be used for this business rule.

Code Block
  "Constraints": [
    {
      "Type": "Field Is Equal",
      "Name": "Type",
      "Value": "System"
    },
    {
      "Type": "Field Is Not One Of",
      "Name": "Regulation",
      "Values": [
        "GxP",
        "SOX",
        "SOX & GxP"
      ]
    }
  ]

Note: The All Boolean constraint is the default constraint.

Level 1 Approvers

Product Team Member,

Product Team Member

Code Block
"Levels": [
  {
    "Name": "Level 1",
    "Approvers": [
      "Product Team Member",
      "Product Team Member"
    ]
  }
]

Prevent Author Approval

FALSE

Code Block
"Prevent Author Approval": false

The completed Route Template for System Test case is below:

Code Block
 {
    "Route Templates": [
      {
        "Name": "System Test Case",
        "Rank": "80",
        "Prevent Author Approval": false,
        "Record Types": [
          "qTest Test Case",
          "Automated Test Case"
        ],
        "Constraints": [
          {
            "Type": "Field Is Equal",
            "Name": "Type",
            "Value": "System"
          },
          {
            "Type": "Field Is Not One Of",
            "Name": "Regulation",
            "Values": [
              "GxP",
              "SOX",
              "SOX & GxP"
            ]
          }
        ],
        "Levels": [
          {
            "Name": "Level 1",
            "Approvers": ["Product Team Member", "Product Team Member"]
          }
        ]
      } 
    ]
  }

Acceptance Test Case

Configuration element

Value

Code Snippet

Name

Acceptance Test Case

Code Block
"Name": "Acceptance Test Case"

Rank

90

Code Block
"Rank": "90"

Record Type

Test Test Case,

Automated Test Case

Code Block
"Record Types": [
  "qTest Test Case",
  "Automated Test Case"
]

Constraints

Type = Acceptance,

Regulation = None

OR

Regulation IsEmpty

The Field Is Equal, Field Is Not Equal, Field Is One Of or Field Is Not One Of constraint can be used for this business rule.

Code Block
"Constraints": [
    {
      "Type": "Field Is Equal",
      "Name": "Type",
      "Value": "Acceptance"
    },
    {
      "Type": "Field Is Not Equal",
      "Name": "Regulation",
      "Value": "GxP"
    },
    {
      "Type": "Field Is Not Equal",
      "Name": "Regulation",
      "Value": "SOX"
    },
    {
      "Type": "Field Is Not Equal",
      "Name": "Regulation",
      "Value": "SOX & GxP"
    }
  ]

Note: The All Boolean constraint is the default constraint.

Level 1 Approvers

Business,

Business

Code Block
"Levels": [
  {
    "Name": "Level 1",
    "Approvers": [
      "Business",
      "Business"
    ]
  }
]

Prevent Author Approval

FALSE

Code Block
"Prevent Author Approval": false

The completed Route Template for Acceptance Test case is below:

Code Block
 {
    "Route Templates": [
      {
        "Name": " Acceptance Test Case",
        "Rank": "90",
        "Prevent Author Approval": false,
        "Record Types": [
          "qTest Test Case",
          "Automated Test Case"
        ],
        "Constraints": [
          {
            "Type": "Field Is Equal",
            "Name": "Type",
            "Value": "Acceptance"
          },
          {
            "Type": "Field Is Not Equal",
            "Name": "Regulation",
            "Value": "GxP"
          },
          {
            "Type": "Field Is Not Equal",
            "Name": "Regulation",
            "Value": "SOX"
          },
          {
            "Type": "Field Is Not Equal",
            "Name": "Regulation",
            "Value": "SOX & GxP"
          }
        ],
        "Levels": [
          {
            "Name": "Level 1",
            "Approvers": ["Business", "Business"]
          }
        ]
      } 
    ]
  }

Default Approval Template

Update the current Default Approval Route with the changes below:

Configuration element

Value

Code Snippet

Name

Default

Code Block
"Name": "Default"

Rank

 100

Code Block
"Rank": "100"

Record Type

Any

Add all record types

Code Block
"Record Types": [
  "qTest Test Case",
  "Automated Test Case",
  "qTest Test Run"
]

Constraints

No Constraints

No constraints are defined

Code Block
"Constraints": []

Level 1 Approvers

Product Team Member

Code Block
"Levels": [
  {
    "Name": "Level 1",
    "Approvers": [
      "Product Team Member"
    ]
  }
]

Prevent Author Approval

TRUE

Code Block
"Prevent Author Approval": true

The completed Route Template for Default Route Template is below:

Code Block
 {
    "Route Templates": [
      {
        "Name": "Data Migration Test Case",
        "Rank": "10",
        "Prevent Author Approval": false,
        "Record Types": [
          "qTest Test Case",
          "Automated Test Case",
          "qTest Test Run"
        ],
        "Constraints": [],
        "Levels": [
          {
            "Name": "Level 1",
            "Approvers": ["Product Team Member"]
          }
        ]
      } 
    ]
  }

Save the Approval Policy as VeraAPTutorial-part2.json

Now we have an Approval Policy configured for the new Test Case business rules. The completed JSON file with new Approval Roles and Approval Templates can be downloaded:

View file
nameVeraAPTutorial-part2.json

Uploading Updated Policy File Revisions

Next, we will upload the VeraAPTutorial-part2.json as a revision of the Vera Tutorial Approval Policy in the Tutorial Policy Set.

  1. Login and navigate to Vera Administration

  2. Navigate to the Policy Management

  3. Select Tutorial AP

  4. On the policy details select Add Revision, the Import Policy Revision dialog opens

  5. Select VeraAPTutorial-part2.json with the Choose File button

  6. Enter “Added Regulation approval templates for Test Cases” in Revision Comments

  7. Click Import to add the revision

Uploading the VeraRMPTutorial-part3.json as a revision of the Vera Tutorial RMP in the Tutorial Policy Set

  1. Login and navigate to Vera Administration

  2. Navigate to the Policy Management

  3. Select Tutorial RMP

  4. On the policy details select Add Revision, the Import Policy Revision dialog opens

  5. Select VeraRMPTutorial-part3.json with the Choose File button

  6. Enter “Added Regulation and Type fields to Test Case” in Revision Comments

  7. Click Import to add the revision

Info

See https://tx3.atlassian.net/wiki/spaces/V20232/pages/322338845/Upload+Policies#importrevision for more information on Policy Management

Assign Users new approval roles

New Approval Roles were introduced in the revised Approval Policy.

We will add new approvers to the Tutorial domain and update tutor_mu with additional approval roles:

User Name

Full Name

Domain Membership

tutor_data

Tutor Data Owner

Tutorial: Data Owner

tutor_mem

Tutor Product Team Member

Tutorial: Product Team Member

tutor_lead

Tutor Product Lead

Tutorial: Product Lead

tutor_mu

Tutor Multi Role

Tutorial: Data Owner,Product Team Member, Product Lead

Use the sample file below to import the following users into Vera

View file
nameTutorialUsersImportSample-2.csv

  1. Download the csv file to your desktop

  2. Add passwords for local accounts

    1. Open the file to edit

    2. Add a strong password after the colon (:) in the IdP User Name Column for each user

      Image Added
  3. Save the file in CSV (comma delimited) format

  4. Open and log in to the VERA Administration site

  5. On the VERA sidebar, select User Management

  6. Click Import Users and the Import Users dialog box opens

  7. Select the file TutorialUsersImportSample-2.csv

  8. Click Import

  9. View Latest Import Results for success status

Info

We are using local accounts for this tutorial.

See Password Policy Settings for password configuration.

See Import VERA users for more details on importing users.

Vera integrates with SAML for corporate authentication.

View imported users by domain (Domain Management)

  1. Open and log in to the VERA Administration site

  2. Display the Domain Management module

    1. On the VERA sidebar, select Domain Management

  3. On the domains table, search and select Tutorial Domain

  4. Scroll down to Domain Users on the Domain Details

  5. Domain Users are displayed with their User Name, Full Name, and Roles

Vera configuration verification

Next let’s verify our configuration changes by importing Test Cases and Routing the Test cases for approval. First, Import the below Excel file to add Test Cases with Regulation and Type fields defined. Click here for instructions on how to import from Excel.

View file
nameImport Test Case - Verify Vera config.xls

Now that the Tests Cases are in qTest you can route each of the Test Cases for approval to verify the polices are configured correctly.

Select each imported test case and click the Route for Approval button. Reload the record and view the Vera Approval Route and compare the Approval Route with the Approval Route documented in the Test Case Step. If you configured Vera correctly, the results will match.

Info

This concludes the Vera Site Administration Tutorial. The following section contains Vera Constraints for your reference. Vera Constraints