Queries (QQL, Qase Query Language)
🆕 🎉 QQL Now supports Grouping and Aggregation functions. Read more 👉 Grouping and Aggregates
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.

From this page, you can manage saved queries and create new ones.
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:

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:
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
!~
does not include
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:
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
Grouping & Aggregates
QQL now supports Grouping and Aggregation functions. It has become easier to summarize large sets of data with aggregation and grouping. Use it to get quick counts, grouped insights, or high-level summaries of your entities.
Functions:
SELECT()— choose which fields or calculated values to returnCOUNT()— count matching recordsMIN() / MAX()— find the earliest or latest valueFIRST() / LAST()— return the first or last item in the current sort orderGROUP BY— group results by a fieldHAVING— filter grouped results based on aggregate conditions
Fields Supported in SELECT() and GROUP BY
Most system fields can be used in SELECT and GROUP BY. Some fields (like tags or custom fields) are filter-only and cannot be grouped.
Basic Fields
Field
SELECT()
group/aggregate
Entity
id
Yes
Yes
case, defect, run, result, plan, requirement
title
Yes
Yes
case, defect, run, plan, requirement
description
Yes
Yes
case, run, plan, requirement
preconditions
Yes
Yes
case
postconditions
Yes
Yes
case
Status & Type
Field
SELECT()
group/aggregate
Entity
status
Yes
Yes
case, defect, run, result, requirement
type
Yes
Yes
case, requirement
behavior
Yes
Yes
case
automation
Yes
Yes
case
isManual
Yes
Yes
case
isToBeAutomated
Yes
Yes
case
isMuted
Yes
Yes
case
Priority & Severity
Field
SELECT()
group/aggregate
Entity
severity
Yes
Yes
case, defect
priority
Yes
Yes
case
layer
Yes
Yes
case
isFlaky
Yes
Yes
case
Relations
Field
SELECT()
group/aggregate
Entity
project
Yes
Yes
case, defect, run, result, plan, requirement
milestone
Yes
Yes
case, defect
suite
Yes
Yes
case
Timestamps
Field
SELECT()
group/aggregate
Entity
created
Yes
Yes
case, defect, plan, requirement
updated
Yes
Yes
case, defect, plan, requirement
deleted
Yes
Yes
run, plan, requirement
Author Fields
Field
SELECT()
group/aggregate
Entity
author
Yes
Yes
case, defect, run, result, requirement
updatedBy
Yes
Yes
case
createdBy
Yes
Yes
case, defect, run, result, requirement
Boolean Fields
Field
select()
group/aggregate
Entity
isDeleted
Yes
Yes
case, defect, run, result, plan, requirement
Fields with CustomBuilder (Filter-Only)
Field
select()
group/aggregate
Entity
tags
WHERE clause only
No
case, defect, run
isAiGenerated
WHERE clause only
No
case
cfv
WHERE clause only
No
case, defect, run
cf["field"] (custom fields)
WHERE clause only
No
case, defect, run
Advanced Query Examples
Below are examples showing how to use SELECT, GROUP BY, and aggregates across different Qase entities.
Test Case Examples
Query
Description
Total number of test cases
Count of critical, high-priority “actual” test cases in DEMO
Count test cases per status
Count by combined groups
Find oldest and newest test case
Earliest and latest update times
First and last test case by current sort
Only statuses with at least one test case
Defect Examples
Query
Description
Total number of defects
Count of critical open defects in DEMO
Count defects per status
Count defects by grouped dimensions
First and last defect title
Severity levels with at least one defect
Test Run Examples
Query
Description
Total number of test runs
Count active runs in DEMO
Count runs per status
First and last run titles
Only statuses with at least one run
Run Result Examples
Query
Description
Total number of test results
Count active results in a specific run
Count results per status
Only statuses with at least one result
Plan Examples
Query
Description
Total number of test plans
Count plans in DEMO project
Plans grouped by project
Oldest & newest plans
Earliest & latest updates
First & last plan titles
Only projects with at least one plan
Requirement Examples
Query
Description
Total number of requirements
Count of valid user stories in DEMO
Requirements per status
Multidimensional grouping
Oldest & newest requirements
Earliest & latest updates
First & last requirement
Only statuses containing requirements
Export Query results
Query results can be exported as a CSV file. The exported CSV will include only the columns currently selected in your view.

You are free to leave the Queries screen while the export is prepared. You'll see a notification when the export is ready for download.

Last updated