Versions Compared

Key

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

...

Info

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

**prevent Prevent author approval

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

...

  • 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 Approval 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:

...

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. General . The rank can be any integer from 1 to 9999. Default is the lowest rank (highest number) so it is the last Approval Route Template evaluated.

qTest Project Configuration

...

  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": "1.0.0.0Vera Tutorial 3", 
        "Record TypesSchema": [{
          {
     "ID": "http://tx3services.com/schemas/0/0/records-management-policy.json",
          "NameMajor": "qTest Test Case0",
          "Minor":  "Definitions0":
    [    },
        "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

...

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 Approval Route Templates and update the General Approval 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

...

Code Block
 {
    "Route Templates": [
      {
        "Name": "Data Migration Test Case",
        "Rank": "10",
        "Prevent Author Approval": falsetrue,
        "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"]
          }
        ]
      } 
    ]
  }

...

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.

code

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

...

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"]
          }
        ]
      } 
    ]
  }

...

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": "TypeRegulation",
      "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

...

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": "TypeRegulation",
            "Value": "SOX"
          }
        ],
        "Levels": [
          {
            "Name": "Level 1",
            "Approvers": ["Product Team Member"]
          },
          {
            "Name": "Level 2",
            "Approvers": ["Product Lead"]
          }
        ]
      } 
    ]
  }

...

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": "TypeRegulation",
      "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

...

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": "TypeRegulation",
            "Value": "SOX & GxP"
          }
        ],
        "Levels": [
          {
            "Name": "Level 1",
            "Approvers": ["Technical", "Business"]
          },
          {
            "Name": "Level 2",
            "Approvers": ["Product Lead"]
          },
          {
            "Name": "Level 3",
            "Approvers": ["Quality"]
          }
        ]
      } 
    ]
  }

...

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 Data Migration Test case 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 Records Management Approval Policy as VeraAPTutorial-part2.json

...

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. SelectVera Tutorial AP

  4. On the policy details select Add Revisionand follow the steps in https://tx3.atlassian.net/wiki/spaces/V20232/pages/322338845/Upload+Policies#importrevision

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

  1. , the Import Policy Revision dialog opens

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

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

  4. 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. SelectVera Tutorial RMP

  4. On the policy details select Add Revisionand follow the steps in , 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

...

Vera configuration verification

Next let’s verify our configuration changes by importing Test Cases and Routing the Test cases for approval

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