Skip to content
The docs are now organized by product area. Old links still work. Report a broken link

Defects

How defects work in Qualflare: the four statuses, severity, categories, team ownership, automatic defects from clusters and flaky tests, and field limits.

Last updated

In Qualflare, a defect is a bug found during testing that a project tracks by number, severity, one of four statuses and an owning team; Qualflare also opens defects for you from failure clusters and flaky tests.

FactDetail
WhereDefects under Analysis in the project sidebar; each defect opens in a side panel
WhoRead: Viewer+ · project (requires the Viewer role or higher in the project). Create, edit, change status, assign a team and comment: Editor+ · project (requires the Editor role or higher in the project). Delete in the app: Owner · project (requires the Owner role in the project)
PlansDefects are on every plan. Cluster defects: Starter, Core, Scale, Enterprise (available on Starter, Core, Scale, Enterprise). Flaky-test defects: All plans (available on Starter, Core, Scale, Enterprise, Open Source). Redundant-case defects: Core, Scale, Enterprise (available on Core, Scale, Enterprise)
CLIqf <identifier> defects list and qf <identifier> defect get <seq> (Defects commands)
MCPlist_defects, get_defect, create_defect and update_defect (MCP server reference). Quo can read defects but not create or change them
Issue trackersGitHub, GitLab, Jira and Linear, one way (Linked issues)

How defects work

A Qualflare defect records one bug in one project, and each project numbers its own defects, for example #123. A defect has:

  • a Name, and a plain-text Description, Expected Result and Actual Result
  • a Severity, Medium by default
  • a Status, which starts as Active
  • a Category, which Qualflare sets: Unknown for defects you create
  • an Environment, No environment by default, which the app can't change after you create the defect
  • a Team, related test cases, linked issues and comments

Defects have no assignee, priority field, milestone, tags, attachments, steps or activity timeline; screenshots and logs stay on the case runs. For who changed what, see Audit logs Scale and above (available on Scale, Enterprise, Open Source).

A defect Qualflare creates from a failure cluster links the cluster and carries its summary, expected result and actual result.

How defects are created

SourceWhat happens
Create DefectYou fill in the form on the Defects page. The defect starts Active, with the category Unknown. See Create a defect.
Failure clustersWhen AI failure clustering labels a new cluster, Qualflare creates one defect for it, sets its severity and category, links the cluster's test cases and sends a "New defect created" notification. It needs Enable AI Features in the project's AI Features settings and a plan with AI failure clustering. See Failure clusters.
Flaky detectionWhen a test case becomes flaky, Qualflare creates a Medium-severity defect named "Flaky detection:" and the case name, with the flaky category, and closes it when the case is stable again. It works with the project's AI features off and follows the project's Quality settings.
Redundant case notificationsClick Create Defect on a redundant case notification: Qualflare creates a Low-severity defect, Redundant test cases: <n> cases affected, with the Redundant Case category, linked to the recommended cases. It needs the project's AI features on, a plan with AI Insights, monthly case analysis quota left and Redundant Case Insights on in the project's Notifications settings.
MCPMCP has list_defects and get_defect (read) and create_defect and update_defect (write); writes need a token with Allow writes. Quo can read defects but cannot create or change them.

You can't create a defect from a case run.

The Defects list

Columns

ColumnShows
NameThe number and name. Click it to open the defect panel
PriorityThe severity. Defects have no separate priority
CategoryThe kind of failure
EnvironmentThe environment, or None
Date Created, Date UpdatedWhen the defect was created and last changed
StatusThe status
TeamThe owning team. Click Assign team to pick one

Click a column header to sort by it; the first click sorts descending, and Team can't be sorted. By default, the list is sorted by number, oldest first.

Filters

The filter bar has Severity, Status, Category (only the categories your defects use) and Environment. Several values in one filter match any of them, and several filters must all match. You can also type them as tokens, for example severity:critical,high status:active,action_required. See Search, filters and shortcuts.

Row actions

More options (⋯) at the end of a row has Severity, Status and Delete. Delete runs at once (see Delete a defect).

Bulk actions

Select defects with the checkboxes and click Delete. Qualflare asks you to confirm. The Change Status bulk action isn't available yet, so change statuses one defect at a time.

The defect panel

Click a defect's name to open it in a resizable side panel over the list. Close it with its close button, Esc while the panel has focus, or the browser Back button; clicking outside the panel doesn't close it.

Panel header

The header shows the number and name, an Automated icon (defects from failure clusters or flaky detection) or a Manual icon, the severity, status, environment and category, how long ago the defect was created, and Linked issues when there are any.

Panel menu

More options (⋯) in the panel header has Edit (the name and description), Severity, Status, Reopen (Closed defects only, see Reopen a defect) and Delete.

Tabs

  • Overview: a Linked Cluster card on cluster defects, then Description, Expected Result and Actual Result (each result has its own edit button), and a Reopen Reason after a reopen.
  • Related Cases: the linked test cases. You can unlink a case here.
  • Comments: the discussion about the defect.

Work with defects

Each defect task has its own section in the guide:

Defect statuses

A Qualflare defect has one of four statuses. Active and Action Required count as open; False positive and Closed count as closed.

StatusDotCounts asMeaning
ActiveRedOpenThe default for new and reopened defects
Action RequiredOrangeOpenSomeone needs to act
False positivePurpleClosedNot a real defect. Qualflare never reopens it automatically.
ClosedGreenClosedFixed

You can set any status at any time from the Status submenu in the row menu or the panel menu. There is no closure reason or duplicate link, so add a comment to explain your choice. The Status filter also offers Reopened, but Qualflare never sets it.

Reopen a defect

Reopen appears only on Closed defects and needs a Reopen Reason of 1 to 1,000 characters. The defect returns to Active, with the reason on its Overview tab. See Reopen a defect.

Automatic status changes

  • Regression: When new failures join the failure cluster of a Closed defect, Qualflare sets it back to Active with a Reopen Reason that starts "Regression detected." and gives the date it was closed, and sends a "Regression detected" notification. This needs the project's AI features on and a plan with AI failure clustering. False positive defects are never reopened this way.
  • Recovery: When a flaky test case is stable again, Qualflare closes its flaky-detection defect.
  • Still flaky: If you close a flaky-detection defect, or mark it False positive, while the case is still flaky, the next analysis run opens a new one.
  • Deleted cluster defects: New failures in the cluster of a deleted defect don't create or reopen a defect.

No setting changes a defect's status from CI results.

Severity

Severity says how bad a defect is, and it's the only ranking a defect has.

SeverityIconUse it forExample
CriticalFour red barsSystem unusable, data loss, security breachLogin completely broken
HighThree orange barsMajor feature broken, significant workaroundCheckout fails half the time
MediumTwo orange barsMinor feature broken, easy workaroundSorting in the wrong order
LowOne green barCosmetic issue, typoMisspelled label

Change it from the Severity submenu in the row menu or the panel menu.

Categories

Qualflare sets each defect's category. Defects you create start as Unknown. Failure-cluster defects get the category the analysis assigns. Flaky-detection defects get the flaky category, which the defect shows as Flakiness and the Category filter lists as Flaky Test.

The Category filter lists only the categories your project's defects use. Its names are Assertion Failure, Locator Failure, Timeout, Flaky Test, Environment Error, Precondition Failure, Script Error, Data Error, Ci Infrastructure, Regression, Low Value Case, Redundant Case and Unknown. Defects created from redundant case notifications have the Redundant Case category, but the list and the defect panel show them as Unknown.

Team ownership

Defects belong to teams, not to people. In the Team column, click Assign team (or the current team) and pick a team; to clear it, click × on the chip or select the current team again. The team's other members get an in-app notification, and an email if Team Assignment Notifications is on in the project's Notifications settings. See Teams.

Qualflare links a failure-cluster defect to the cluster's test cases, and a redundant-case defect to the recommended cases. A flaky-detection defect names its test case but doesn't list it. The app has no button to link a case by hand. To remove a link, unlink the case on the defect's Related Cases tab or on the case's Defects tab.

Linked issues

Connect GitHub, GitLab, Jira or Linear under Integrations in the project sidebar (Jira also needs the Qualflare app for Jira) and choose the events that create issues: Defect Created, Launch Failed, Cluster Created or Flaky Test Detected. Delivery is one way: tracker changes don't flow back.

Only an issue filed for Defect Created is recorded on the defect, under Linked issues; issues for the other events aren't linked to any defect. Defect Created goes out for defects created with Create Defect, the API or MCP, and from flaky detection. Cluster defects and redundant-case defects never send it, so they never show Linked issues.

Defect Created also sends the defect.created webhook, and Slack can post when a defect is created and when it is closed or marked False positive. See GitHub, GitLab and Jira.

Comments

Post comments on a defect's Comments tab: type in Write a comment... and click Post, or press ⌘Enter or Ctrl+Enter. Replies go one level deep, and a reply notifies only the author of the comment it answers; there are no @mentions. You can edit or delete your own comments, edited ones show (edited), and a comment holds up to 10,000 characters. Posting needs the Editor role or higher in the project.

Delete a defect

Deleting a defect can't be undone

Delete takes effect at once. The row menu and the panel menu don't ask you to confirm; only bulk Delete does. Deleting a defect also deletes its comments, its links to test cases and its record of linked issues. Issues already created in GitHub, GitLab, Jira or Linear stay there. You can't undo a delete.

After you delete a cluster defect, new failures in its cluster don't create or reopen one. To delete a defect, click More options (⋯) > Delete in its row or panel. In the app, only project Owners can delete defects.

Permissions

ActionRole needed
View defects and commentsViewer+ · project (requires the Viewer role or higher in the project)
Create and edit defects, change severity or status, reopen, assign a team, comment, unlink casesEditor+ · project (requires the Editor role or higher in the project)
Delete defects in the appOwner · project (requires the Owner role in the project)

Your role on a project is the higher of your project role and your workspace role. In the web app today, buttons follow your project role. See Roles and permissions.

Field limits

FieldLimit
NameRequired, up to 128 characters (at least 3 in Create Defect)
DescriptionUp to 10,000 characters in Create Defect, and up to 5,000 when you edit it
Expected Result, Actual ResultUp to 5,000 characters each when you edit them
Reopen ReasonRequired, up to 1,000 characters
CommentUp to 10,000 characters

Text fields are plain text. Markdown isn't rendered.