Qase Docs
Help CenterAPI DocsRoadmapSign up for free
  • General
    • Qase docs
    • Get started with the Qase platform
      • Account settings
      • Projects
      • Test suites
      • Test cases
        • Test Case Parameters
        • Test case review
        • Shared steps
        • Import test cases
        • Export test cases
        • Trash bin
        • Muted Tests
        • System fields
        • Nested steps
        • Test case actions
        • Filters
      • Requirements Traceability Report
      • AI Test Case Generator
    • Execute testing
      • Test plan
      • Test runs
      • Configurations
      • Environments
    • Issues tracking
      • Defects
      • Milestones
      • Requirements
    • Analytics
      • Dashboards
      • Queries (QQL, Qase Query Language)
      • Saved queries
    • Webhooks
      • Test Case
      • Test suite
      • Test plan
      • Shared step
      • Milestone
      • Custom field
      • Test run
      • Defect
      • Test review
  • AIDEN
    • AIDEN - QA Architect
  • Guide: Action editor
  • Administration
    • Workspace management
      • Users
      • Invites
      • Groups
      • Roles
      • Fields
      • Custom fields
      • Notifications
      • Tags
      • Attachments
      • Audit logs
      • Hotkeys
    • SSO / SAML instructions
      • AzureAD
      • OneLogin
      • Google Workspace
      • Okta
      • JumpCloud
    • SCIM
      • User lifecycle management with SCIM
      • Enable SCIM
      • Users
      • Discovery features
      • Errors
    • Security
      • SOC 2 Type II / SOC 3
      • ISO/IEC 27001:2022
      • Penetration testing report
      • Subprocessors
      • Qase IP addresses
    • Billing
      • Billing options
    • Subscriptions
      • Free plan
      • Startup plan
      • Business plan
      • Enterprise plan
  • Apps
    • Issue tracking
      • Jira Cloud
      • Jira Server/Datacenter Plugin installation
      • GitHub
      • Asana
      • Linear
      • Monday
      • ClickUp
      • Trello
      • Azure DevOps
      • GitLab
      • YouTrack
      • Redmine
    • CI/CD
      • Jenkins
      • BitBucket
      • GitHub CI
      • GitLab CI
    • Chats
      • Slack
  • Automation
    • Qase API
    • Reporters
      • JavaScript
        • Playwright
        • Cypress
        • Mocha
        • Newman
        • Jest
        • WebDriverIO
        • CucumberJS
        • TestCafe
      • Python
        • Pytest
        • Robot Framework
        • Behave
        • Tavern
      • Java
        • TestNG
        • JUnit 4
        • JUnit 5
        • Cucumber 3 (jvm)
        • Cucumber 4 (jvm)
        • Cucumber 5 (jvm)
        • Cucumber 6 (jvm)
        • Cucumber 7 (jvm)
      • PHP
        • PHPUnit
        • Codeception
      • Kotlin
        • Kaspresso
    • Qase CLI App
      • XCTest
Powered by GitBook
On this page
  • What are queries in software testing?
  • Create a new query
  • QQL Structure
  • Entities
  • Expressions
  • Supported operands:
  • Data types:
  • Functions:
  • Entity fields
  • Test case:
  • Defects:
  • Test run:
  • Test run results:
  • Test plan:
  • Requirement:
  • Examples of Queries
  1. General
  2. Analytics

Queries (QQL, Qase Query Language)

PreviousDashboardsNextSaved queries

Last updated 2 months ago

Queries are available in and subscriptions.

What are queries in software testing?

Queries help you make analytical requests to get specific data from your Qase projects.

Queries are based on Qase Query Language (QQL). You can access Queries from the top-left menu.

Create a new query


You can click on either one of the two buttons to create a new query.

Here, you can: 1. Select the entity from the drop down

2. Write your query

3. Search the query

4. Save the query

5. Choose the fields to be displayed in the table.

QQL Structure


QQL consists of two parts: "Entity" + "Query". Both are required to perform a search.

Here are a few examples:

entity = "defect" and status = "open"
entity = "case" and project = "DEMO" and title ~ "auth" order by id desc
entity = "result" and status = "failed" and timeSpent > 5000 and 
milestone ~ "Sprint 12"
entity = "case" and isFlaky = false and automation = "To be automated"

Entity can be selected from the drop-down, and Projects, by default, include all projects available to a user.

If your expression contains a syntax error, the erroneous element will be highlighted in red, as well as you will see a red "x" icon appearing in the expression field:

Entities

Below are the available entities. Click on an entity to skip to the attributes available for it.

Expressions

Currently, QQL supports seven expression types. They are listed here in the decreasing priority order:

Expression Type
Example

Parenthesis

Negation

Logical Expression

or

Logical AND

Logical OR

Checking the attribute value

Sorting by field

Supported operands:

<

less than

integer

<=

less than or equal to

integer

>

greater than

integer

>=

greater than or equal to

integer

=, is

equal to

integer, bool

!=

not equal to

integer, bool

~

includes

string, text

in

includes (array)

array

not in

does not include (array)

array

is empty

no value

is not empty

value exists

Data types:

Integer

110

>, >=, <, <=, =, !=

String

Some text

~

Boolean

True or False

is

Array

['value 1', 'value 2'] ; ('value 1', 'value 2') ; [ ]

in

Null

null

Functions:

Name
Return type
Arguments
Description

currentUser()

integer

-

Returns an ID of current user

activeUsers()

integer

-

Returns IDs of all active users

inactiveUsers()

integer

-

Returns IDs of all inactive users

now()

integer

"+Nd" / "-Nd"- modifies returned value, adding/subtracting N days.

In "+Nd", replace d with ​ w for weeks; ​ m for months. ​

N must be an integer

Returns current timestamp

startOfDay()

integer

'YYYY-mm-dd' - modifies returned value to the start of this input date.

"+/-N[d/w/m]" - modifies returned value by N days/weeks/months.

Returns timestamp of start of current day.

startOfWeek()

integer

'YYYY-mm-dd' - modifies returned value to the start of first day of the week (relative to the input date)

"+/-N[d/w/m]" - modifies returned value by N days/weeks/months.

Returns timestamp of start of current week.

startOfMonth()

integer

'YYYY-mm-dd' - modifies returned value to the start of first day of the month (relative to the input date)

"+/-N[d/w/m]" - modifies returned value by N days/weeks/months.

Returns timestamp of start of current Month.

endOfDay()

integer

'YYYY-mm-dd' - modifies returned value to the end of the input date.

"+/-N[d/w/m]" - modifies returned value by N days/weeks/months.

Returns timestamp of end of current day.

endOfWeek()

integer

'YYYY-mm-dd' - modifies returned value to the end of first day of the week (relative to the input date)

"+/-N[d/w/m]" - modifies returned value by N days/weeks/months.

Returns timestamp of end of current Week.

endOfMonth()

integer

'YYYY-mm-dd' - modifies returned value to the end of first day of the month (relative to the input date)

"+/-N[d/w/m]" - modifies returned value by N days/weeks/months.

Returns timestamp of end of current Month.

Entity fields


Test case:

identifier

Test case title,

Pre/postconditions,

Description

creator the test case.

If a test case is created by a reporter app

Replace [name] with reporter name.

Reporters:


Playwright;

cucumberjs;

cypress;

jest;

newman;

testcafe;

cucumber3; cucumber4; cucumber5;

junit4; jnuit5;

testng;

pytest;

robotframework;

xctest;

phpunit;

codeception.

Custom fields: a complex attribute with a specific syntax, see examples.

Custom field values. (by all custom fields)

Time of case creation

The user who created the case

Last modified date

updatedBy

Last modified by user

Check whether the case has been deleted or not

Check whether the case has been flagged as flaky

By default, search is performed across all projects.

If required, you can specify a project code.

Test case's suite title

Test case's milestone title

Test case's tags

Defects:

identifier

Defect title

Actual result

Project

Statuses


open; resolved; in progress; invalid

Severity


undefined;

blocker;

critical;

major;

normal;

minor;

trivial

The user who created the defect

If a defect has been created by a reporter app

Replace [name] with reporter name.

Reporters:


Playwright;

cucumberjs;

cypress;

jest;

newman;

testcafe;

cucumber3; cucumber4; cucumber5;

junit4; jnuit5;

testng;

pytest;

robotframework;

xctest;

phpunit;

codeception.

The user who created the defect

Time of creation

Time of update

Time of resolution

Whether the defect is deleted

Whether the defect is resolved

Defect's milestone title

Custom field values (by all custom fields)

Custom fields: a complex attribute with a specific syntax, see examples.

Defect's tags

Test run:

Identifier

Title

Description

Project

Title of the plan used

Status

The user who created the run

If a test run has been created by a reporter app

Replace [name] with reporter name.

Reporters:


Playwright;

cucumberjs;

cypress;

jest;

newman;

testcafe;

cucumber3; cucumber4; cucumber5;

junit4; jnuit5;

testng;

pytest;

robotframework;

xctest;

phpunit;

codeception.

The user who created the run

Time of start

Time of finish

Time of removal

Whether the run is deleted

Whether the run is started

Whether the run is ended

Whether the run has a public link

Whether the run is automated

Run's milestone title

Custom field values (by all custom fields)

Custom fields: a complex attribute with a specific syntax, see examples.

Run's tags

Test run results:

Identifier

Comment

Test Run Result's case title

Test Run title

Project

Status


Passed;

Failed;

Blocked;

Retest;

Skipped;

Deleted;

In progress;

Invalid

The user who created the result

If a test run result has been created by a reporter app

Replace [name] with reporter name.

Reporters:


Playwright;

cucumberjs;

cypress;

jest;

newman;

testcafe;

cucumber3; cucumber4; cucumber5;

junit4; jnuit5;

testng;

pytest;

robotframework;

xctest;

phpunit;

codeception.

The user who created the run

Time of finish

Whether the result is deleted

Time spent (in milliseconds)

Test plan:

Identifier

Title

Plan's description

Project

Time of creation

Time of the last update

Time of deletion

Whether the plan is deleted

Requirement:

Identifier

Parent requirement's title

Project

The user who created the requirement

The user who created the requirement

Title

Description

Status


valid;

draft;

review;

rework;

finish;

implemented;

not-testable;

obsolete.

Type


epic;

user-story;

feature.

Time of creation

Time of last update

Time of deletion

Whether the requirement is deleted

Examples of Queries


entity = "case" and isDeleted is true
entity = "case" and created >= now("-3d")
entity = "case" and created <= now("-3d")
entity = "case" and isDeleted is true and project in ["QTC"]
project = "QTC" and automation = "Not automated"
project = "MR" and automation != "Automated"
project = "QTC" and status in ["Draft", "Actual"]
entity = "defect" and status !="Open" and severity = "Not set"
entity = "defect" and status !=1 and severity = 0
entity = "defect" and status !=1 and severity = 0 and cfv in ["1", "2"]
entity = "defect" and status !="Open" and severity != "Not set" and milestone is empty
entity = "defect" and status !="Open" and severity != "Not set" and cf["Defect URL"] is not null
entity = "case" and author != "CEO" and updated <= now("-1d") and isFlaky is false
entity = "case" and author != "CEO" and updated <= now("-1d") and project in ('QA

From this page, you can manage and create new ones.

can be used with the .

QQL widget allows you to leverage advanced query searches, and pin frequently used or preferred QQL searches to your to facilitate quicker and more comprehensive monitoring of testing activities.

( expression )
not expression
true
false                    
expression and expression
expression or expression
attribute operand value
ORDER BY field ASC/DESC
id
id = 17
id != 20
id is 17
id in [1, 2, 10]
not id in [1, 2, 10]
title
preconditions
postconditions
description
title is "first test"
title = "first test"
title ~ "rst"
title in ["first test", "second test"]
author
author in ["user1", "user2"]
author = "user1" [or] 
author = "user2"
author = group('name') [or] 
author in [group('name1'), group('name2')]
author = activeUsers() [or] 
author = inactiveUsers()
author
author = [name]-reporter
Eg: author = pytest-reporter
cf
cf["Epic"] = "Auth"
cf["Story"] in ["Story 1", "Story 2"]
cf["Epic"] is null
cf["Story"] = ["Auth", "Login"]
cfv
cfv = "Auth"
cfv in ["Story 1", "Story 2"]
status
type
behavior
automation
layer
priority
severity
status is "Actual"
status = "Actual"
status != "Deprecated"
status in ["Draft", "Actual"]
created
created >= now("-14d")
created >= startOfDay("-1m")
created < 1569430502709
createdBy
createdBy in ["user1", "user2"]
createdBy = "user1" or createdBy = "user2"
updated
updated >= now("-7d")
updated >= startOfDay()
updated < 1569430502709
updatedBy = currentUser()
updatedBy = group('group name')
updatedBy = 'User A'
isDeleted
isDeleted is false
isDeleted = true
isFlaky
isFlaky is false
isFlaky = true
project
project = 'DEMO'
project in ['DEMO', 'QTC']
project not in ['DEMO']
suite
suite ~ 'auth'
suite != 'auth'
milestone
milestone = 'Sprint 24'
tags
tags not in ['tag','tag2']
id
id = 17
id != 20
id is 17
id in [1, 2, 10]
not id in [1, 2, 10]
title
title is "first test"
title = "first test"
title ~ "rst"
title in ["first test", "second test"]
actual_result
actual_result is "first"
actual_result = "first"
actual_result ~ "rst"
actual_result in ["first", "second"]
project
project = 'DEMO'
project in ['DEMO', 'QTC']
project not in ['DEMO']
status
status is "Open"
status = "Resolved"
status != "Invalid"
status in ["Open", "Invalid"]
severity
severity is "blocker"
severity = "blocker"
severity != "blocker"
severity in ["blocker", "critical"]
author
author in ["user1", "user2"]
author = "user1"
author
author = [name]-reporter
Eg: author = pytest-reporter
createdBy
createdBy in ["user1", "user2"]
createdBy = "user1" or createdBy = "user2"
created
created >= now("-14d")
created >= startOfDay("-1m")
created < 1569430502709
updated
updated >= now("-14d")
updated >= startOfDay("-1m")
updated < 1569430502709
resolved
resolved >= now("-14d")
resolved >= startOfDay("-1m")
resolved < 1569430502709
isDeleted
isDeleted is false
isDeleted = true
isResolved
isResolved is false
isResolved = true
milestone
milestone = 'Milestone title'
cfv
cfv = "Auth"
cfv in ["Story 1", "Story 2"]
cfv is empty
cf
cf["Epic"] = "Auth"
cf["Story"] in ["Story 1", "Story 2"]
cf["Epic"] is null
tags
tags not in ['tag']
id
id = 17
id != 20
id is 17
id in [1, 2, 10]
id not in [1, 2, 10]
title
title is "first test"
title = "first test"
title ~ "rst"
title in ["first test", "second test"]
description
description is "first"
description = "first"
description ~ "rst"
description in ["first", "second"]
project
project = 'DEMO'
project in ['DEMO', 'QTC']
project not in ['DEMO']
plan
plan = 'Regression'
status
status is "passed"
status = "in progress"
status != "aborted"
status in ["failed", "aborted"]
author
author in ["user1", "user2"]
author = "user1" or createdBy = "user2"
author
author = [name]-reporter
Eg: author = pytest-reporter
createdBy
createdBy in ["user1", "user2"]
createdBy = "user1"   or 
createdBy = "user2"
started
started >= now("-14d")
started >= startOfDay("-1m")
started < 1569430502709
ended
ended >= now("-14d")
ended >= startOfDay("-1m")
ended < 1569430502709
deleted
deleted >= now("-14d")
deleted >= startOfDay("-1m")
deleted < 1569430502709
isDeleted
isDeleted is false
isDeleted = true
isStarted
isStarted is false
isStarted = true
isEnded
isEnded is false
isEnded = true
isPublic
isPublic is false
isPublic = true
isAutotest
isAutotest is false
isAutotest = true
Milestone
milestone = 'Milestone title'
cfv
cfv = "Auth"
cfv in ["Story 1", "Story 2"]
cfv is empty
cf
cf["Epic"] = "Auth"
cf["Story"] in ["Story 1", "Story 2"]
cf["Epic"] is null
tags
tags not in ['tag_name']
id
caseId = 17
caseId != 20
caseId is 17
caseId in [1, 2, 10]
not caseId in [1, 2, 10]
comment
comment is "first test"
comment = "first test"
comment ~ "rst"
comment in ["first test", "second test"]
case
case is "first"
case = "first"
case ~ "rst"
case in ["first", "second"]
run
run is "first"
run = "first"
run ~ "rst"
run in ["first", "second"]
project
project = 'DEMO'
project in ['DEMO', 'QTC']
project not in ['DEMO']
status
status is "Invalid"
status = "Invalid"
status != "Invalid"
status in ["Invalid", "Failed"]
author
assignee
author in ["user1", "user2"]
author = "user1" or createdBy = "user2"
author
assignee
author = [name]-reporter
Eg: author = pytest-reporter
createdBy
createdBy in ["user1", "user2"]
createdBy = "user1" or createdBy = "user2"
ended
ended >= now("-14d")
ended >= startOfDay("-1m")
ended < 1569430502709
isDeleted
isDeleted is false
isDeleted = true
timeSpent
timeSpent > 10000
id
id = 17
id != 20
id is 17
id in [1, 2, 10]
not id in [1, 2, 10]
title
title is "first test"
title = "first test"
title ~ "rst"
title in ["first test", "second test"]
description
description is "first test"
description = "first test"
description ~ "rst"
description in ["first test", "second test"]
project
project = 'DEMO'
project in ['DEMO', 'QTC']
project not in ['DEMO']
created
created >= now("-14d")
created >= startOfDay("-1m")
created < 1569430502709
updated
updated >= now("-14d")
updated >= startOfDay("-1m")
updated < 1569430502709
deleted
deleted >= now("-14d")
deleted >= startOfDay("-1m")
deleted < 1569430502709
isDeleted
isDeleted is false
isDeleted = true
id
id = 17
id != 20
id is 17
id in [1, 2, 10]
not id in [1, 2, 10]
parent
parent is "first test"
parent = "first test"
parent ~ "rst"
parent in ["first test", "second test"]
project
project = 'DEMO'
project in ['DEMO', 'QTC']
project not in ['DEMO']
author
author in ["user1", "user2"]
author = "user1"     or 
createdBy = "user2"
createdBy
createdBy in ["user1", "user2"]
createdBy = "user1"  or 
createdBy = "user2"
title
title is "first test"
title = "first test"
title ~ "rst"
title in ["first test", "second test"]
description
description is "first test"
description = "first test"
description ~ "rst"
description in ["first test", "second test"]
status
status = 'valid'
type
type = 'epic'
created
created >= now("-14d")
created >= startOfDay("-1m")
created < 1569430502709
updated
updated >= now("-14d")
updated >= startOfDay("-1m")
updated < 1569430502709
deleted
deleted >= now("-14d")
deleted >= startOfDay("-1m")
deleted < 1569430502709
isDeleted
isDeleted is false
isDeleted = true
saved queries
Saved Queries
QQL widget
dashboards
Test case
Test run
Test run result
Test plan
Defects
Requirement
Business
Enterprise