Manager 9.7.1 Release Notes

July 19, 2019

We are happy to announce the July 2019 release of qTest Manager 9.7.1 OnPremise! Here are a few release highlights:

  • APIs for Jira integration and configuration

  • New Site Templates APIs

  • New Project APIs and additional inputs

  • VERA integration pre-execution approval of Test Cases

New APIs to Automate Jira Integration Configuration and Retrieval

New APIs are available for our Jira Integration that automates the configuration and retrieval of Releases, Requirements, and Defects between qTest and your Jira instance. This is beneficial for Enterprise customers who want to manage their qTest Jira integration outside of the qTest UI.

Add a New Connection

The following APIs allow you to add a new Jira connection using either the username and password/token option, or through OAuth. If using OAuth, you will need to retrieve an authorize URL from Jira prior to attempting connection setup.

Add a new Jira connection, not using OAuth

  • POST {qTest URL}/api/v3/projects/{projectId}/settings/integration/connection

    • New connections are inactive. Once Jira Properties are added and configured you will use a separate API to activate the connection.

Sample Request:

{

"external_system": "Jira",

"connection_name": "new connection",

"server_url": "https://....",

"web_url": "https://...."

"authentication_type": "Token",

"username": "...@tricentis.com",

"token": "..."

}

Sample Response:

{

"Status": "Inactive",

"Connection id":30009

}

Jira Server=use Token or username/password for

Jira Cloud= use Token

Values in the sample request in bold cannot be changed.

Atlassian deprecated the ability to configure a Jira connection using username/password for Jira Cloud in 2018. Therefore, you must use the Token method.

Retrieve a Jira OAuth authorize URL in the event you would like to add a new Jira connection using OAuth method. This API must be performed first, before adding a new connection using OAuth.

  • GET {qTestURL}/api/v3/projects/0/settings/integration/connections/oauthAuthorizeURL?serverURL=...

Sample Response:

{

"jiraToken": "...",

"jiraSecret": "...",

"authorizeUrl":

"https://.../plugins/servlet/oauth/authorize?oauth_token=..."

}

  • Access the authorizeURL in a web browser that is retrieved in the response. Log in to Jira, grant access, and copy the verification code.

  • Use the Jira Token, Jira Secret, and the verification code as inputs in the subsequent API call to create a new connection using Jira OAuth.

Add a new Jira connection, using OAuth

  • POST {qTest URL}/api/v3/projects/{projectId}/settings/integration/connections

    • New connections are inactive. Once Jira Properties are added and configured you will use a separate API to activate the connection.

Sample Request:

{

"external_system":"Jira",

"connection_name":"https://...",

"server_url":"https://...",

“web_url”:“https://...”,

"authentication_type":"Oauth",

"username":"apikey",

"jiraToken": "...",

"jiraSecret": "...",

"jiraVerifier": "..."

}

Sample Response:

{

"Status": "Inactive",

"Connection id":

30009

}

Values in the sample request in bold cannot be changed.

Retrieve Jira ID's

The following APIs allow you to retrieve details of your Jira Projects, Issue Types, and Fields. You will receive the Jira ID's for each component which will be used in subsequent APIs.

Retrieve details of all Jira Projects

  • GET {Jira URL}/rest/api/2/project

    • Use the Jira Project Id in the response when calling subsequent qTest APIs

Retrieve details of all Jira Issue Types

  • GET {Jira URL} /rest/api/2/issuetype

    • Use the Jira Issue Type id in the response when calling subsequent qTest APIs

Retrieve details of Jira Fields of a Jira Project

  • GET {jiraUrl}/rest/api/2/issue/createmeta?expand=projects.issuetypes.fields&issuetypeIds={jiraIssueTypeId}

    • Use the key in the response when calling subsequent qTest APIs

Defects

The following APIs allow you to add and configure a defect type. You will use the Jira ID's received from the API responses above.

Add a Defect type with default configurations

  • POST{qTestURL}/api/v3/projects/{projectId}/settings/integration/connections/{connectionId}/defect/mappings?externalProjectId={jiraProjectId}&externalIssueTypeId={jiraIssueTypeId}

Sample Response:

{

"externalProjectId":

"10003",

"externalTypeId":

"10004",

"sendAttachmentToJira

": "true",

"configures": [

…,

{

"externalFieldId":

"description",

"qTestFieldIds":

"Session

Description,Session

Environment,Description"},

...

]

}

The following id's needed for this API are retrieved from the API responses in the GET Jira Projects and GET Jira Issue Types APIs.

  • jiraProjectId

  • jiraIssueTypeId

The bold text in the sample response defines the default auto-fill configuration.

You cannot add duplicate Defect mappings with the same Jira Project ID or Issue Type ID.

Configure a Defect Type

  • PUT{qtestUrl}/api/v3/projects/{projectId}/settings/integration/connections/{connectionId}/defect/mappings?externalProjectId={jiraProjectId}&externalIssueTypeId={jiraIssueTypeId}

Sample Request:

{

"sendAttachmentToJira": "true",

"configures": [

{

...

},

{

"externalFieldId": "description",

"qTestFieldIds": "Name,Target Release/Build"

},

{

...

}

]

}

The following id's are needed for this API and are retrieved from the API responses in the GET Jira Projects and GET Jira Issue Types APIs.

  • jiraProjectId

  • jiraIssueTypeId

The configure property is an array to define the auto-fill configurations.

  • Each element is a pair of Jira fields (external field id) and the qTest fields (qTest field id) will be auto-filled to the Jira field.

  • You can only auto-fill for Jira text type fields.

  • You can auto-fill multiple qTest fields to one Jira field. Use a comma with no spaces to separate the fields.

The following qTest fields can be configured to be auto-filled to Jira fields:

  • Assigned To

  • Description

  • Environment

  • Execution Type

  • Planned End

  • Planned Start

  • Submitter

  • Target Release/Build

  • Test Case Version

  • Test Data Source

  • Name

  • Precondition

  • Test Case Description

  • Session URL

  • Sessions Description

  • Session Environment

  • Test Run URL

Enable populating Jira unlinked Defects

  • PUT /api/v3/projects/{projectID}/settings/integration/connections/{connectionID}/defect?storeUnlinkedDefects=...

    • The following ids are needed for this API are retrieved from the API responses in the GET Jira Projects and GET Jira Issue Types APIs.

      • jiraProjectId

      • jiraIssueTypeId

    • New connections, by default, will not have this enabled. To enable, set the Store Unlinked Defects value =true.

Requirements

The following APIs allow you to add and configure Requirements. You will use the Jira ID's received from the API responses above.

Add a Requirement type with default configurations

  • POST{qtestUrl}/api/v3/projects/{projectId}/settings/integration/connections/{connectionId}/requirement/mappings?externalProjectId={jiraProjectId}&externalIssueTypeId={jiraIssueTypeId}

Sample Response:

{

"externalProjectId": "10003",

"externalTypeId": "10001",

"mapping_id": 73157,

"external_filter": "",

"external_field_1_id": "",

"external_field_2_id": "",

"active_external_fields": "id,status,summary,description"

}

The following id's needed for this API are retrieved from the API responses in the GET Jira Projects and GET Jira Issue Types APIs.

  • jiraProjectId

  • jiraIssueTypeId

You cannot add duplicate Requirement mappings with the same Jira Project ID or Issue Type ID.

Configure a Requirement Type and organize the imported Requirements

  • PUT{qtestUrl}/api/v3/projects/{{projectId}}/settings/integration/connections/{connectionId}/requirement/mappings?externalProjectId={jiraProjectId}&externalIssueTypeId={jiraIssueTypeId}

Sample Request:

{

"externalProjectId": "10003",

"externalTypeId": "10001",

"mapping_id": 73157,

"external_filter": "",

"external_field_1_id": "",

"external_field_2_id": "",

"active_external_fields": "id,status,summary,description,customfield_10021"

}

The following id's needed for this API are retrieved from the API responses in the GET Jira Projects and GET Jira Issue Types APIs.

  • jiraProjectId

  • jiraIssueTypeId

“external_field_1_id” and “external_field_2_id”: Keys of 2 Jira fields that are used to organize imported Requirements.

“active_external_fields": Keys of Jira fields that will display in the qTest Requirement page (Jira read-only properties panel).

  • You can specify a list of Jira fields. Use a comma with no spaces to separate the fields.

Enable Requirement Integration feature

  • PUT {qtestUrl}/api/v3/projects/{projectId}/settings/integration/connections/{connectionId} /requirement?active=true

    • Requirement Types must be added prior to enabling the Requirement integration.
    • Disable the Requirement integration by setting active=false.

Releases

The following APIs allow you to add and configure Releases. You will use the Jira ID's received from the API responses above.

Add a Release Type

  • POST{qtestUrl}/api/v3/projects/{projectId}/settings/integration/connections/30009/release/mappings?externalProjectId={jiraProjectId}&externalIssueTypeId={jireReleaseType}

Sample Response:

{

"externalProjectId": "10003",

"externalIssueTypeId":

"Sprint",

"data_retrieval_options": [ "active" ],

"auto_update_release_scope": "true" }

The following id is needed for this API and is retrieved from the API response in the GET Jira Projects.

  • jiraProjectId

External Issue Type ID allowed values:

  • fixVersions

  • Sprint

    • case sensitive

Configure a Release Type

  • PUT{qtestUrl}/api/v3/projects/{projectId}/settings/integration/connections/{connectionId}/release/mappings?externalProjectId={jiraProjectId}&externalIssueTypeId=Sprint

Sample Request:

{ "data_retrieval_options": [

"active", "future", "completed"

],

"auto_update_release_scope": "true"

}

The following id is needed for this API are retrieved from the API responses in the GET Jira Projects.

  • jiraProjectId

External Issue Type ID allowed values:

  • fixVersions

  • Sprint

  • case sensitive

Data Retrieval Options allowed values:

  • fixVersions:

    • released

    • unreleased

  • Sprint:

    • active

    • future

    • completed

Enable Release Integration

  • PUT{qtestUrl}/api/v3/projects/{projectId}/settings/integration/connections/{connectionId}/release?active=true &autoFilterTestRun=true

    • Release Types must be added prior to enabling the Release integration.

    • Disable the Release integration by setting active=false.

    • Enable the "Auto filter Test Runs on Jira iframe to match FixVersions/Sprint of Jira issue" by setting autoFilterTestRun=true

Activate Jira Connection

The following API allows you to activate your Jira connection once you have configured the Jira properties you want to sync with qTest.

  • PUT{qtestUrl}/api/v3/projects/{projectId}/settings/integration/connections/{jiraConnectionId}?active=true

    • You cannot activate the Jira connection if you have not added any Defect types.

    • Activating this connection will deactivate any other active connections. If this is the only available connection, activating it will also enable the Jira integration.

    • Disable the Jira Connection by setting active=false.

Trigger Data Retrieval from Jira to qTest

The following API allows you to trigger the data retrieval from the Jira properties you selected, from an activate Jira connection. The response includes a job ID so you can check when the data retrieval is completed, by using this API: GET {qtestUrl}/api/v3/projects/queue-processing/{jobId}

  • GET{qtestUrl}/api/v3/projects/{projectId}/settings/integration/connections/{ConnectionId}/retrieve?artifact={artifactType}

Sample Response:

{ "id": 2133988,

"type":

"FETCH_EXTERNAL_RELEASES",

"state":

"IN_WAITING" }

Artifact allowed values:

  • defects

  • requirements

  • releases

Retrieve and Remove Jira Connection Information

The following APIs allow you to retrieve and remove qTest information associated with your Jira connection.

Retrieve All Jira Connections of a qTest Project

  • GET /api/v3/projects/{projectID}/settings/integration/connections

Retrieve Defect Types of a Jira Connection

  • GET{qtestUrl}/api/v3/projects/{projectID}/settings/integration/connections/{connectionID}/defect/mappings? externalProjectId={jiraProjectId}&externalIssueTypeId={jiraIssueTypeId}

    • If externalProjectId and externalIssueTypeId are ommitted, all defect types are included in the response.

Remove a Defect Type

  • DELETE{qtestUrl}/api/v3/projects/{projectId}/settings/integration/connections/{connectionId}/defect/mappings?externalProjectId={jiraProjectId}&externalIssueTypeId={jiraIssueTypeId}

Retrieve Requirement Types of a Jira Connection

  • GET{qtestUrl}/api/v3/projects/{{projectId}}/settings/integration/connections/{connectionId}/requirement/mappings?externalProjectId={jiraProjectId}&externalIssueTypeId={jiraIssueTypeId}

    • If externalProjectId and externalIssueTypeId are ommitted, all defect types are included in the response.

Remove a Requirement Type

  • DELETE{qtestUrl}/api/v3/projects/{{projectId}}/settings/integration/connections/{connectionId}/requirement/mappings?externalProjectId={jiraProjectId}&externalIssueTypeId={jiraIssueTypeId}

Retrieve Release Types of a Jira Connection

  • GET{qtestUrl}/api/v3/projects/{projectId}/settings/integration/connections/{connectionId}/release/mappings?externalProjectId={jiraProjectId}&externalIssueTypeId=Sprint

    • externalIssueTypeId: its allowed values include fixVersions and Sprint (case-sensitive)

Remove a Release Type

  • DELETE{qtestUrl}/api/v3/projects/{projectId}/settings/integration/connections/{connectionId}/release/mappings?externalProjectId={jiraProjectId}&externalIssueTypeId=Sprint

    • externalIssueTypeId: its allowed values include fixVersions and Sprint (case-sensitive)

New APIs

Project APIs

These Project APIs combined with the new UUID or Template ID inputs, allow you to search for qTest Projects and update a Project with the provided values in the API request. Example, inclusion/exclusion of a UUID or a Template ID to a specific project.

Permissions Required:

  • Edit Projects

  • Manage Site Fields (only if using the Template ID input)

Search for Projects

  • POST /api/v3/projects/search

Updates a Project

  • PUT /api/v3/projects/{projectID}

    • This action will also be logged in the Audit Log as an 'Edit Project' action.

Site Templates API

The new Site Template APIs allow you to retrieve all Site Templates, overwrite a Site Template in an existing qTest Project, as well as remove qTest Projects from a Site Template. The new Template ID input available to you, in the Project APIs, allows you to complete the calls below.

Permissions Required:

  • Edit Projects

  • Manage Site Fields

Retrieves all Site Templates

  • GET /api/v3/site-templates

Apply a Site Template to an existing Project

  • POST /api/v3/site-templates/{templateID}/projects

    • Create new Site Field values = true creates new values to the site fields

    • Create new Site Field values = false keeps the values private to the project when there are "unique values in project fields that do not exist in site fields"

Removes Projects from a Site Template

  • DELETE /api/v3/site-templates/{templateID}/projects

  • Template ID = 0 removes all site templates associated with the provided Project ids list.

User APIs

The new User APIs allow you to update User information, such as status, authentication, groups, passwords, assigned Projects etc. This will allow customers to centrally maintain their base user access to qTest through APIs. New inputs are also available for the User API.

Update information of a user

  • PUT /api/v3/users/{user_id}

Remove association between users and projects

  • PUT /api/v3/users/projects

API Enhancements

The following APIs are enhanced to provide you the ability to manage qTest information through the use of APIs as opposed to using the qTest Manager UI.

Project APIs

Two new inputs are available in the Project APIs.

  • UUID: is an upper-level identifier for Enterprise customers utilizing APIs to link qTest Projects with additional, external ID's.

    • Note: UUID is case sensitive and space(s) are not allowed. You can assign a single UUID to multiple qTest Projects. A qTest Project can have one, or no UUID assigned.

    • POST/api/v3/projects create a new Project and assign a UUID

    • GET/api/v3/projects retrieves all Projects with a UUID

    • POST/api/v3/projects/search will search for Projects with/without UUID

      • Set “uuid”: [“”] to query all projects with an empty uuid

      • Set “uuid”: [“uuid_1”,””] to query all projects with a uuid =uuid_1 and projects with an empty uuid

    • PUT/api/v3/projects/{projectID} updates a specific Project with a UUID

      • Set " uuid": “” to remove UUID

  • Template ID:

    • POST/api/v3/projects create a new Project and assign a Site Field Template

    • GET/api/v3/projects retrieves all Projects with a Template ID

    • PUT/api/v3/projects/{projectID} add/remove a Site Template from a qTest Project

      • Set "template_id": “” to remove associated Template

User APIs

Several new inputs are available in the User APIs.

  • Status:

    • PUT /api/v3/users/{user_id}

      • Example, set “status” to 1 for “ACTIVE”, to 3 for “INACTIVE” to update the status of a user.
  • User Group IDs: List user group ids will be assigned for new user.

    • PUT /api/v3/users/{user_id}

  • Send Activation Email: activation email will be ignored if this is set to false

  • External Auth Config ID: auto assign this new user with External Authentication system by this providing config id here. If this value is provided, “external_user_name” need to have value, or it will fail to create.

    • PUT /api/v3/users/{user_id}

      • Set “external_auth_config_id” to LDAP/SSO configuration ID to link user to an LDAP/SSO user.

      • Set “external_auth_config_id” to -1 to turn user to INTERNAL user.

  • External User Name:

    • PUT /api/v3/users/{user_id}

      • external username that will be assigned to a newly created qTest user

      • Set “external_user_name” to the LDAP/SSO username to link the qTest user to an LDAP/SSO user.

New Features and Enhancements

Requirements Tab new UI

The Requirements tab has a new UI with the 9.7 release to provide an enhanced user experience. All of the information previously displayed is still available, however, the Description field is no longer displayed at the top of the main page. The Requirements description is now located within the Properties tab.

Vera Integration Pre-Execution Approval of Test Cases

The 9.6.1 Manager release, included the ability to integrate with VERA, which is an e-signature tool used for validation testing within a LifeSciences FDA regulated environment.

As of Manager 9.7, the VERA integration allows you to route a Test Case from qTest for approval/rejection to VERA prior to the Test Case execution. Previously, you could only route a Test Run for approval/rejection after execution.

For more information on the VERA integration, refer to VERA Integration.

Additionally, the following enhancements have been made to the Post-Execution approval process.

  • You cannot delete a Test Run that has been approved in VERA from the Test Execution Tree or the Data Query.

JIRA Plugin 8.03

This new version of the JIRA Plugin supports proxy for outbound connections from JIRA to qTest. You can download the new version here from the Atlassian Marketplace.

JIRA Plugin 8.02/6.11.12

This new version of the JIRA Plugin for JIRA Server and JIRA Data Center, is now compatible with JIRA SSO users who are submitting bugs from qTest to JIRA . You can download the new version here from the Atlassian Marketplace.

Compatibility Matrix

JIRA Plugin Version JIRA Data Center Version JIRA Server Version

6.11.12

7.5.0-7.13.5

7.5.0-7.13.5
8.0.2 8.0.0-8.2.1 8.0.0-8.2.1

Site Field Templates

Editing a Site Field Template

When editing a Site Template, that is used by multiple Projects, you now have an option to merge Project Field values with Site Field values when both the name of the Project Field matches the Site Field. This provides flexibility to include Project Field values that are used in multiple Projects and merge those Project Fields values with Site Field values in a Template.

Additionally, you can choose not to merge Project Field values into the Site Field values of the Template and keep that Project Field unique.

Include a Site Field Template when Creating a New Project

You now have the ability to add one Site Field Template when creating a new Project in Manager.

Open qTest Launch from Schedule Button in qTest Manager

An OTP (one-time password token) is added to the GET URL when opening qTest Launch from the Schedule button in qTest Manager.

Hibernate Search Removed

The Hibernate Search module is removed from the qTest Global Configurations page as it has been deprecated since ElasticSearch was first introduced with the 9.5.3 OnPremise release. ElasticSearch is a prerequisite for installation and automatically enabled for fresh installs of 9.5.3. Customers upgrading from 9.3 to 9.5.3 were instructed to enable ElasticSearch in qTest and re-index their data. Note, ElasticSearch is also a prerequisite to use Tricentis Analytics as of the 9.6.1 OnPremise release.

Auto-Sync Defects from Version One

You can now auto-sync your defects from Version One.

New Modify Test Logs Permissions

Two new user permissions are available that allow a user to modify a Test Log, provided the user is allowed to Execute a Test Run:

  • Modify a Test Log (executed by self)

  • Modify a Test Log (executed by others)

The user permissions above can be assigned at the Site Admin>User Profiles level, or within a specific project at the Project Settings>User Management level.

For ease of use, we have implemented a migration process for the new permissions that are associated with the existing Execute a Test Run permission. The rules are as follows:

Site Admin>User Profiles

  • In the event that a user is assigned the Execute Test Runs permission at the User Profile level, they will automatically be granted only the Modify a Test Log (executed by self) permission.

  • If a user has a Project Admin Profile and assigned the Execute Test Runs permission at the User Profile level, they will automatically be granted both the Modify a Test Log (executed by self) and (executed by others) permissions.

Project Settings>User Management

  • In the event, a user is assigned the Execute Test Runs permission at the Project level, they will automatically be granted only the Modify a Test Log (executed by self) permission.

  • If a user is a Project Admin and assigned the Execute Test Runs permission at the Project level, they will automatically be granted both the Modify a Test Log (executed by self) and (executed by others) permissions.

Features Affected:

  • Export Test Case

  • Export Requirements

Additionally, we have encountered a reproducible case when performing an export of a Test Case that contains a large number of attachments (near 50K.) This scenario will result in a failed export along with the error message of 'Network Error.'

Features Affected: Exporting to Excel

Security Enhancements

  • An enhancement has been made to prevent non-admin users from querying external authentication system information.

  • Ticket 22517: CSRF fix for APIs v3 authentication.

  • Set "secure" attribute on encrypted cookie.

  • Fixed Cross-site scripting on URL:  https://<domain>/login

  • Fixed Cross-site scripting on login redirect with too many sessions.

  • Ticket 30176: Fix "Oops" error when opening Resource page.

  • Fixed oops page with 500 internal server error when scheduling test runs on OP which uses self site certificate.

Performance Improvements

Loading Modules from Parent Modules

You can now load 32K objects, including Submodules, Testcases, and Requirements, from a Module to a Parent module without receiving a '500 Error'.

Projects with a Large Number of Users

Ticket 27711: Performance is now improved when moving from one Project to the next when there are a large number of users assigned to the Project.

Excel Export

We have enforced a rule when exporting to Excel, that limits you to no more than 50k rows in the export. qTest will stop the export and provide a message that you will need to select fewer objects, select a subfolder, or use the data query to narrow down the data before continuing to export.

The following exports are affected:

  • Requirements

    • Requirement Details report

    • Requirement Traceability Matrix report

    • Requirement and Test Case report

    • Requirement and Test Execution Results report: the total number of defects > 50k

    • Requirement and Test Execution Results report - no merged cell

    • Data Query > Export

  • Test Design

    • Test Case Details report: count Test Steps

    • Test Case Traceability Matrix report

    • Test Case and Requirement report

    • Data Query > Export

  • Test Execution

    • Test Run Detail: count Test Steps

    • Test Execution and Defects: the total number of test logs > 50k

    • Test Execution and Defects - no merged cell

    • Data Query > Export

    • Test Run grid > Export

    • Root > Execution Summary

    • Defect Summary > Export: count defects

    • Execution Summary > Export

    • Test Run grid > Export

  • Defects

    • Data Query > Exports

Test Run Grid Query

Ticket #s: 27114, 27115

The Test Run Grid of the Test Cycle page is enhanced to asynchronously load the total number of Test Runs and the details in the Test Run Grid. This enhancement allows you to view and interact with the Test Run Grid while the database query returns the total number of line items in the query.

While the query is running, you can still view the details of the Test Run Grid and use the Forward/Backward buttons. You will see a 'loading icon' on the total number of Test Runs that are being returned during the database query. Additionally, a timeout will occur if the query exceeds 30 seconds.

Test Cycle Statistics With More Than 10k Test Runs

Ticket #s: 27114, 27115

Similarly to the Test Run Grid Query enhancement listed above, when a Test Cycle contains more than 10k child Test Runs the database query will timeout at 30 seconds. When the statistics are returned successfully before a timeout, the results are cached and shared to all users in the project to enhance database performance. The cache will expire after 3 minutes.

  • If the query does not complete before the 30-second timeout, and the results are available in cache, then the query will terminate and the cached results will display. You will be notified that the results may be out of date since the cached results were calculated a few minutes ago. Example: "It failed to calculate statistics because your Test Cycle contains too many child objects. These are cached results which were calculated as of {timestamp of the cache}."

  • If the query does not complete before the 30-second timeout, and the results are not available in cache, then the query will terminate. You will be notified that the statistics failed to calculate. Example: "It failed to calculate statistics because your Test Cycle contains to many child objects."

Code Recursive Improvements in Tree View

The Code Recursive in getParentOfTestCycleByParentId which may have caused blocked threads has now been removed.

Updated Schedule Button for Automation Test Runs

With the release of Manager 9.6.1, and the updated Schedule button for Automation Test Runs, there was a known limitation that allowed you to schedule automation Test Runs for approved or unapproved versions of a Test Case regardless of the Approve Test Case permission.

This is now remediated and only Test Runs with an approved Test Case version can be scheduled.

  • Users with the Approve Test Cases permission can approve a test case not yet approved and schedule the test run

  • Users without the Approve Test Cases permission can not schedule test runs for an unapproved test case

Bug Fixes

Ticket # Component Description
27229 API Previously the Create a Test Suite API would intermittently return 500 errors. This is resolved through a database connection pool optimization and by increasing the overall amount of database connections available in the pool.
28146 Data Query Previously, System Queries of All test cases would display all test cases, but when trying to customize the view to add several customized fields, the query results were not as expected. This is now resolved.
28798 Excel Import Test Case Excel import would provide a message of 'import successful' but the Test Case folders would be empty. This is now resolved. The root cause was identified related to our recent fix for security. Specifically, active custom fields which are loaded into the Import Wizard are scanned and considered “vulnerable entities”, thus block the entire import process.

27839

29033

29297

29374

External Web Request

Customers using qTest with no internet connection, experienced a time-out issue when accessing qTest Manager, due to an API running in the background requesting for an external source:

https://www.google.com/recaptcha/api.js

This is now resolved.

29782

Java

qTest 9.6.1 version had a vulnerable version of Java installed in the folder qtestctl/server-jre.

In the 9.7.1 OnPremise release, qtestctl 6.4 package, we moved from Oracle Jdk 1.8.0_144 to Open JDK 1.8.0_212 to remove the vulnerable version.

28055 Login Resolves an issue when a user's qTest session is about to expire. When selecting Continue in the Session Expiration pop-up, the user also received an Access Revoked message. This has now been corrected.

28688

28869

Login Multiple clicks on the login page would previously result in a 500 error when using either IE11 or Chrome. This is now resolved.

27114

27115

Performance We have resolved the issue where counting Test Runs within a Test Cycle caused an outage.
NA Project When a user is removed from a project, his or her created or assigned objects are not also removed from that project.
29082 Site Fields Template When viewing a Site Field Template, and navigating between the object types, not all fields displayed. This is now fixed.
NA System Configuration Scenario 1.0 required a URL to be added in the System Configuration page. Users no longer using Scenario 1.0 would remove their URL, but it would not delete from the database, therefore causing issues. The DB will now remove the settings in the DB if the user removes the Scenario URL from the UI.
27131 Test Design When copying text from a Test Step Description field to the Test Step Expected Result field would sometimes cause the pasted text to unexpectedly have a white border. This caused an unfavorable display during Test Execution with the alternating lines of white & gray.
27131 Test Design When copying text from a Test Step Description field to the Test Step Expected Result field would sometimes cause the pasted text to unexpectedly have a white border. This caused an unfavorable display during Test Execution with the alternating lines of white & gray.
21635 Test Execution Previously, when using a Safari browser, the Execution History grid of a Test Run would display 'Invalid Date' in the Planned Start and End Date field. This is now resolved and the dates display as expected.
23280 Test Runs Comments on Test Runs now trigger notification events and show up properly as comments
25348 Test Run Report The Test Run Details report will now perform as expected
24378 Test Pad Parameters in the Test Pad will no longer display as code, but as the Parameter value selected in Test Design.
25270 Test Pad Previously, when executing a test case that contains Parameters, the Parameter data was displaying as HTML. This is now resolved.
29213 Test Status Test Statuses displayed in the Test Cycle and in the Tree View, as 'incomplete' when they are actually passed. This is now fixed.
26280 Trial Account The Test Run Details report will now perform as expected