softAssert Documentation
softAssert is an AI-powered QA platform that brings together test case management, bug tracking, regression suites, and API testing in one place. It is built for individual QA engineers and teams who want to move fast without losing confidence.
This guide covers every feature in softAssert — from creating your first project to setting up webhooks that fire into your CI/CD pipeline.
Quick Start
Get from zero to your first generated test suite in under five minutes.
- 1Go to /register and create a free account — no credit card required.
- 2From the dashboard, click "New Project" and give it a name.
- 3Open your project and navigate to the Generate tab.
- 4Describe a feature in plain English (e.g. "User login with email and password, including forgot password flow") and click Generate.
- 5Review the generated test cases, accept the ones you want, and they are saved to your project.
- 6Head to the Bugs tab to log any issues you find while testing.
- 7Build a Regression Suite from your tests and run it to track pass/fail.
Plans & Limits
softAssert enforces per-plan limits on projects, AI generations, test cases, and bug reports. Limits reset at midnight UTC for AI generation counts.
- AI generation count resets every 24 hours at midnight UTC.
- Test case and bug limits are per project, not per account.
- Upgrading takes effect immediately. Downgrading takes effect at the end of your billing cycle.
- Exports (CSV, Excel) are available on all plans. JSON export requires Pro or Team.
Managing Projects
A project is the top-level workspace in softAssert. Everything — test cases, bugs, suites, API collections, and integrations — lives inside a project.
Creating a Project
- 1From the dashboard, click "New Project".
- 2Enter a project name (required) and optional description.
- 3Click "Create". You are taken to the project overview page.
Free accounts can have up to 2 projects. Pro accounts support 15. Team has no limit.
Project Overview
The project overview shows:
- Total test cases and breakdown by status (Draft, Approved, Deprecated).
- Open and resolved bug counts.
- Recent activity from the project activity log.
- Quick actions: Generate Tests, New Bug, New Suite.
Project Settings
Access project settings from the Settings tab inside any project.
Areas & Modules
Areas are named sections of your product (e.g., "Authentication", "Checkout", "Notifications"). They let you group test cases and bugs by functional area and filter/report on them independently.
Creating Areas
- 1Open your project and go to the Areas tab.
- 2Click "New Area".
- 3Enter a name, choose a color, and optionally set a sort order.
- 4Click "Create".
You can then assign any test case or bug to an area using the Area field on the create/edit form. Areas can be edited, reordered, or deleted at any time. Deleting an area does not delete the tests or bugs inside it — they simply become unassigned.
Creating Test Cases
Test cases are the core unit of work in softAssert. Each describes a specific scenario to validate, with structured steps and a clear expected result.
- 1Open your project and go to the Tests tab.
- 2Click "New Test Case".
- 3Fill in the Title, Preconditions, Steps, and Expected Result.
- 4Set Priority, Category, and optionally assign an Area.
- 5Click "Save". The test is saved as DRAFT by default.
Filtering & Searching
Use the filter bar on the Tests tab to narrow down the test case list:
- Filter by Priority: P0, P1, P2, P3 (multiple can be selected).
- Filter by Category: Functional, Negative, Boundary, Security, Performance, Accessibility.
- Filter by Status: Draft, Approved, Deprecated.
- Filter by Area: any area defined in the project.
- Toggle "Show Archived" to include or exclude archived tests.
- Search by keyword — matches against the test case title.
Properties Reference
Version History
Every save to a test case creates a new version automatically. This gives you a full audit trail of how tests evolve over time.
- Click the history icon on any test case to open the version drawer.
- Each version shows a timestamp and a diff of what changed.
- Click "Restore" on any version to roll the test case back to that state.
- Restoring creates a new version rather than deleting intermediate ones.
Bulk Operations
Use checkboxes in the test case list to select multiple tests at once, then use the bulk action toolbar that appears.
- Archive selected — moves tests to the archived state (hidden from the default view).
- Unarchive selected — restores archived tests to the active list.
- Delete selected — permanently deletes the selected test cases.
- Change status — set DRAFT, APPROVED, or DEPRECATED on all selected tests.
Importing Test Cases
You can import test cases in bulk into a project using the Import option on the Tests tab. The imported file should contain the test case fields (title, steps, expected result, priority, category) in a structured format. After upload, the system parses the file and creates the test cases as MANUAL source with DRAFT status.
How AI Generation Works
softAssert uses Claude (Anthropic) to generate structured test cases from a feature description. The AI takes on the persona of a senior QA engineer and produces cases with preconditions, numbered steps, expected results, priority, and category — ready to be saved directly to your project.
- 1Open your project and go to the Generate tab (or use the global AI Studio from the sidebar).
- 2Choose an input mode: Free Text, User Story, or API Spec.
- 3Write or paste your feature description (10–5,000 characters).
- 4Configure output options: count, priority floor, and which categories to include.
- 5Click "Generate". Results appear in seconds.
- 6Review each generated test case. Accept the ones you want added to the project.
- 7Optionally leave thumbs up/down feedback to help improve future results.
Input Modes
Generation Options
Daily AI generation limits are enforced per account, not per project. Reaching the limit returns an error; the counter resets every 24 hours at midnight UTC.
Generation History
Every generation run is saved as a session. Navigate to Generate → History inside a project (or the AI Studio history view) to see all past sessions.
- Each session shows the input text, timestamp, token usage, and how many tests were generated.
- You can re-open a session to review which tests were accepted.
- Feedback ratings (thumbs up/down) are stored per session.
Creating Bugs
Bug reports in softAssert capture the full context of a defect — steps to reproduce, expected vs. actual behavior, severity, and environment. Each bug gets an auto-incrementing sequence number per project (e.g., BUG-001).
- 1Open your project and go to the Bugs tab.
- 2Click "New Bug".
- 3Fill in the Title, Description, Steps to Reproduce, Expected Behavior, and Actual Behavior.
- 4Set the Severity and assign an Area if applicable.
- 5Add the Environment (browser, OS, device).
- 6Click "Submit Bug".
Bug Properties Reference
Status Workflow
Bugs follow a linear status progression, though any status can be set directly:
OPEN ──► IN_PROGRESS ──► RESOLVED
└──► CLOSED
└──► WONT_FIXAI Bug Features
Duplicate Detection
Before you submit a bug, softAssert scans your existing open bugs using AI to find semantically similar reports. If duplicates are found, they are listed so you can decide whether to merge, link, or proceed with a new report.
Severity Suggestion
Based on the bug title, description, and steps, the AI suggests a severity level (CRITICAL, HIGH, MEDIUM, or LOW). You can accept the suggestion or override it before saving.
Recording Analysis
Upload a screen recording of the bug in the "New Bug" form. The AI watches the video and automatically fills in the title, steps to reproduce, expected behavior, and actual behavior. You can edit any of the auto-filled fields before saving.
Pushing Bugs to External Systems
Once a project integration is configured (see Integrations), a Push button appears on every bug detail page. Click it to create the bug as an issue in the connected platform.
- Severity maps to the external platform's priority field (CRITICAL → Highest, HIGH → High, etc.).
- The bug title, description, steps, expected/actual behavior, and environment are all included.
- Pushing is one-directional — status changes in the external tool are not automatically synced back.
Creating Regression Suites
A regression suite is a named collection of test cases that can be executed together on a schedule or on demand. Suites are the backbone of structured testing cycles — smoke tests before releases, nightly regression runs, and PR gates.
- 1Open your project and go to the Suites tab.
- 2Click "New Suite".
- 3Enter a name, description, and choose a cadence.
- 4Set a fail threshold (percentage of tests that must pass for the run to be considered passing).
- 5Use filters to define which test cases belong to this suite (by area, priority, category).
- 6Click "Create Suite".
Running Suites
- 1Open the suite and click "Start Run".
- 2A new run record is created with status IN_PROGRESS.
- 3Work through each test case in the run view.
- 4For each test, mark the result: PASSED, FAILED, BLOCKED, or SKIPPED.
- 5Optionally add a note to any test result.
- 6When all tests have a result, click "Complete Run" or mark it as Aborted to stop early.
Viewing Results
After a run is completed, the results page shows:
- Pass rate for the run (passed tests ÷ total run tests × 100).
- Breakdown by result status (passed, failed, blocked, skipped).
- Which tests failed, with any notes added during execution.
- Duration from start to completion.
- Whether the run met the suite's fail threshold.
The suite overview page lists all historical runs and lets you track pass rate trends over time.
Exporting Results
Export a suite or run to share results with stakeholders outside softAssert.
- CSV — plain comma-separated export, compatible with any spreadsheet tool.
- Excel (.xlsx) — formatted workbook with separate tabs for suite summary and per-test results.
- Export includes: test title, preconditions, steps, expected result, priority, area, result, and any notes.
Collections & Requests
softAssert has a built-in API testing module. You can define collections of HTTP requests, add assertions, use environment variables, and run requests directly from the browser.
Collections
A collection is a named group of related API requests (e.g., "Auth Endpoints", "Order API").
- 1Open your project and go to the API Tests tab.
- 2Click "New Collection" and enter a name.
- 3Inside the collection, click "Add Request".
Request Configuration
Assertions
Assertions are checks that run against the response after a request is executed. Add assertions to a request to validate that the API is behaving correctly.
Example assertions:
status_code | (no target) | equals | 200
body | $.user.email | equals | test@example.com
header | content-type | contains | application/json
response_time| (no target) | less_than | 500Environments
Environments allow you to swap out variable values without editing every request. Create separate environments for Production, Staging, and Local development.
- 1In the API Tests tab, click "Environments".
- 2Click "New Environment" and give it a name (e.g., "Staging").
- 3Add key/value variables (e.g., base_url = https://staging.api.example.com).
- 4Set this environment as the default for the project, or select it per-run.
Use variables in requests with double-brace syntax: {{base_url}}, {{api_token}}. Variables are resolved at run time using the active environment.
Integrations Overview
softAssert can push bugs (and test cases) into external platforms. Each integration is configured per project and can be enabled or disabled independently.
- 1Open your project and go to Settings → Integrations.
- 2Click "Add Integration" and choose a platform.
- 3Fill in the required credentials (see platform sections below).
- 4Click "Save". The integration becomes active.
- 5On any bug detail page, click "Push" to send the bug to the connected platform.
Jira
Severity maps to Jira priority: CRITICAL → Highest, HIGH → High, MEDIUM → Medium, LOW → Low.
GitHub Issues
Bugs are created as GitHub Issues. Severity is added as an issue label.
Linear
Bugs are created as Linear issues. Priority is mapped from softAssert severity.
Azure DevOps
Azure DevOps supports pushing both bugs and test cases. Bugs become work items of type Bug.
Setting Up Webhooks
Webhooks send an HTTP POST to a URL of your choice when events occur in softAssert. Use them to trigger CI/CD pipelines, post Slack notifications, or sync with other tools.
- 1Open your project and go to Settings → Webhooks.
- 2Click "New Webhook".
- 3Enter the destination URL.
- 4Select which events should trigger this webhook.
- 5Optionally enter a secret for HMAC signature verification.
- 6Choose a platform: Custom, Slack, or Discord.
- 7Click "Create". The webhook is immediately active.
Event Types
Signature Verification
When a secret is set, every webhook request includes an X-softAssert-Signature header. This is an HMAC-SHA256 hex digest of the raw request body, signed with your secret. Verify it in your endpoint to confirm the request came from softAssert.
// Node.js example
import crypto from 'crypto'
function verifyWebhook(rawBody: string, secret: string, signature: string) {
const expected = crypto
.createHmac('sha256', secret)
.update(rawBody)
.digest('hex')
return crypto.timingSafeEqual(
Buffer.from(signature),
Buffer.from(expected)
)
}crypto.timingSafeEqual) rather than a plain string equality check to prevent timing attacks.Plans Overview
softAssert uses Stripe for all payment processing. Your card details are never stored on softAssert servers — they are handled entirely by Stripe.
- All plans include CSV export, suite execution, version history, and AI duplicate detection.
- Pro adds Excel export, custom project rules, screenshot annotation, and priority email support.
- Team adds Jira/Linear/GitHub push integrations, audit log, and Slack priority support.
Upgrading
- 1Go to Settings → Billing from the sidebar.
- 2Click "Upgrade to Pro" or "Upgrade to Team".
- 3You are redirected to Stripe Checkout to complete payment.
- 4After payment, your plan upgrades immediately — no need to log out and back in.
Customer Portal
The Stripe customer portal lets you manage every aspect of your subscription without contacting support.
- Update your payment method or add a backup card.
- View and download past invoices.
- Cancel your subscription (downgrade takes effect at end of billing cycle).
- Switch between monthly and annual billing (contact us for annual).
- 1Go to Settings → Billing.
- 2Click "Manage Subscription".
- 3You are redirected to the Stripe portal. Changes take effect immediately (or at cycle end for downgrades).