Skip to content

Issue-driven testing

How Jira and Linear tickets become generated Tests, Runs, Results, and safe workflow updates.

View as Markdown

Jira or Linear remains the system of record for issue workflow. Smoketest owns testing execution, evidence, and synchronization history.

The lifecycle

  1. A Connection authorizes one Jira Cloud site or Linear workspace.
  2. A project Test Source selects the team or board, exact QA entry status, outcome statuses, and browser settings.
  3. A ticket entering QA creates or reopens one durable Test Request.
  4. Each QA cycle or authorized retry creates an Attempt.
  5. The Attempt freezes current context and owns one immutable generated Test.
  6. One or more Runs may execute that Test. A classified infrastructure retry can create one extra Run without spending another credit.
  7. The final Result is Passed, Failed, or No Result.
  8. Ticket sync updates the Attempt comment and, when safe, moves the ticket.

The Result and ticket sync are separate. A Passed or Failed Result stays true even if a comment or transition needs attention and must be retried.

Board and execution ownership

Only one active Test Source can own a ticket within a workspace. Each Test Source processes one Attempt at a time in QA-entry order.

The read-only Smoketest Board mirrors each Source's configured workflow as Development, Testing, and Passed. Jira or Linear remains authoritative for current status, assignee, priority, and ordering. Passed contains only tickets in the configured provider status with a recorded Smoketest pass; provider-completed tickets without that evidence are called out in source health. Known tickets open their Test Request, while untested Development tickets open in the provider.

The default All active scope combines active Sprints or Cycles and falls back to configured-status snapshots for Kanban Sources. Current, previous, and historical iteration selections, date ranges, and Board filters stay in the URL.

Queued work consumes no credit and creates no ticket comment. When credits return, Smoketest revalidates the ticket, Connection, and Test Source before resuming automatically.

Context and code

The frozen context can include bounded ticket text, recent human comments, supported image attachment metadata, execution settings, and supplemental context supplied for a manual new Attempt.

Code enrichment happens only when the ticket links to a pull request whose repository is connected to the same Smoketest project. Missing code access is recorded but does not block testing.

Safety

  • Exact Jira or Linear status IDs decide eligibility.
  • Passed and Failed transitions must be directly reachable from QA.
  • No Result stays in QA.
  • A newer human status change overrides automation.
  • One Attempt uses one evolving ticket comment rather than posting progress spam.
  • Evidence links require authenticated Smoketest access.
  • Paused Test Sources do not listen; reactivation scans the current QA status again.

Generated Tests never activate reusable-Test schedules, GitHub triggers, deployment webhooks, or result-follow-up automations. Saving one as reusable creates an independent editable copy.

On this page