Flaky Test Quarantine: Owners, Expiry, and Nonblocking CI Results
A confirmed flaky test can block unrelated changes without providing a dependable release signal. Removing that obstruction is reasonable only if someone still sees…
An invoice download can return the correct document and still leave a customer waiting long enough to abandon the task. It can also respond immediately with the wrong invoice. A useful test plan needs evidence about both the required behavior and the conditions under which that behavior remains acceptable.
Functional testing checks whether software behaves according to its specified requirements. Non-functional testing evaluates qualities such as performance, reliability, accessibility, usability, and security. The distinction helps teams ask different questions about the same feature. It does not divide testing into competing alternatives or guarantee that every check belongs exclusively to one category.
A functional requirement describes an operation or rule: which customer can download which invoice, what information the document contains, and what happens when the request is rejected. A functional test supplies a known situation, performs an action, and compares the observed result with that rule. The action might happen through an interface, an API, or a component's public behavior.
A non-functional requirement describes an expected quality under stated conditions. For an invoice service, that might concern response time at forecast demand, recovery after a dependency interruption, or access through a keyboard. Testing needs an observable basis for judging those qualities. “Fast,” “reliable,” and “easy to use” do not identify a testable acceptance condition by themselves.
Comparison Criterion | Functional Testing | Non-Functional Testing |
|---|---|---|
Primary question | Does the required behavior occur? | Does the behavior meet the relevant quality expectations? |
Requirement basis | Business rules, calculations, permissions, workflow states, and interface contracts | Quality requirements, user needs, service objectives, supported environments, and applicable criteria |
Evidence | Outputs, saved state, permitted actions, and required or prohibited effects | Measurements, observations, assessments, and behavior under specified conditions |
Acceptance decision | Compare the outcome with the expected rule | Compare the evidence with the agreed quality criterion; exploratory work may instead produce findings |
Execution approach | Manual or automated, at an appropriate scope | Manual or automated, at an appropriate scope |
Main limitation | Correct selected behavior does not establish every relevant quality | Acceptable selected qualities do not establish every business rule or complete product quality |
Both categories can produce pass or fail outcomes. A response-time threshold yields a verdict once measurements are compared with it. A keyboard-access requirement may be judged by observing whether the user can complete the task, without reducing that observation to a speed score. Conversely, an invoice's expected tax amount is numeric but belongs to a behavioral business rule.
Keep the distinction between a requirement and a measured performance baseline. The baseline records how a particular version behaved under particular conditions. It helps detect change, but a previous slow result does not become acceptable merely because the new version matches it. Agree on the user or business expectation separately. This measured reference is different from an approved test baseline, which is a versioned set of test definitions.
Consider a fictional customer portal where an authenticated customer can download an issued invoice belonging to their account. The examples below are proposed checks, not executed tests or reported customer results. All numerical targets are hypothetical requirements for this portal, not industry benchmarks or promises about any product.
Start each proposed check with an identifiable invoice, customer, document state, and environment. Otherwise, an unexpected result could reflect a different fixture or setup rather than a difference between behavioral and quality coverage.
For the functional check, prepare an issued invoice with known customer, invoice number, line items, tax, and total. Sign in as its owner, request the download, and verify that the returned document matches those approved values. Checking only that a file exists or the request succeeded would miss an incorrect amount, another customer's document, or an error page saved as a file.
For the performance check, suppose the team requires the 95th-percentile request duration to be no greater than two seconds during a ten-minute steady phase at 20 new valid download requests per second. Define the measurement from the request being sent until the complete document response is received. This does not include the customer's later file-saving interaction or the time a PDF viewer takes to render it.
Record the application build, infrastructure, invoice dataset and size distribution, account mix, cache conditions, and dependency configuration. Specify how the workload is generated and confirm that it was delivered. Repeatedly downloading one small cached invoice would provide weak evidence about a varied customer workload. A substitute document service also limits what the result says about the real dependency.
Measure response duration separately from errors and document correctness. A fast rejection or a quickly returned wrong invoice must not make the performance result look successful. In this fictional steady phase, assume the team also requires no unexpected request failures and no incorrect documents. Count timeouts and transport failures as failures, not as missing latency observations. The duration criterion covers the defined successful document responses, while these separate conditions prevent a fast but unsuccessful service from passing.
This example asks whether the feature meets its target at expected demand. Exploring the point at which capacity becomes insufficient is a different investigation, with separate safety limits and conclusions. The comparison of load testing and stress testing explains how those objectives change the workload and evidence.
The portal's functional permission rule says that a customer cannot retrieve an invoice owned by another customer. Prepare two synthetic accounts and an invoice owned by one of them. A proposed case uses the other account to request that invoice through an authorized test route, then checks the defined denial response and absence of private invoice content. A positive control confirms that the owner can still retrieve it.
This is an observable business rule and a security-relevant check. Labeling it functional does not remove its contribution to confidentiality; labeling it security testing does not make the expected denial less behavioral. The useful detail is the actor, resource, attempted action, and required result, rather than an argument over a single folder name.
Hiding the Download button is not sufficient evidence of server-side enforcement. The approved test scope should distinguish interface behavior from enforcement at the relevant service boundary. Follow the application's response contract rather than assuming that every denied request must use the same HTTP status or message.
One denied request is limited evidence. It does not establish that every role, invoice route, tenant boundary, session condition, or information-disclosure risk has been assessed. Broader security assurance needs its own risk analysis and authorized specialist work. Neither this case nor a successful security scan establishes regulatory compliance.
A basic functional check might show that selecting Download returns the expected invoice. An accessibility-focused check asks whether a keyboard user can achieve the same task in the supported portal environment. Can the customer reach the invoice, invoke the download operation, and respond to relevant dialogs without a pointing device?
Write the supported browser and operating-system context into the case and define the expected interaction. The criterion concerns equivalent task access. It does not require every visible pointer control to have a separate keyboard action if an accessible equivalent provides the same functionality. For an ordinary invoice workflow, a mouse-only operation would leave a user group without the required access.
The result can be a clear observed failure even though no latency threshold is involved. It can also expose a functional inability to complete the task, illustrating the overlap between behavior and quality. Keep the accessibility objective visible in the test record so that its intended coverage is not lost.
Automated accessibility tools can assist, but they cannot evaluate every accessibility aspect. Human judgment and appropriate manual evaluation remain necessary. A keyboard-only download check covers one part of accessibility; it is not a complete WCAG conformance assessment, usability study, or legal-compliance certificate.
Suppose a document-generation dependency is temporarily unavailable. The functional requirement might say that the portal shows an agreed retryable failure without returning another invoice or presenting a partial document as complete. The proposed check verifies the response and any business state that must remain unchanged.
A related recovery requirement asks whether normal service returns after the dependency is restored. For this fictional portal, suppose the requirement is to regain the earlier latency, correctness, and failure conditions at the same defined download workload within one minute of confirmed dependency restoration, without an application restart. Require those conditions to remain satisfied for a further two-minute observation window. These are invented acceptance criteria, not a universal recovery objective. Define the restoration signal and permitted retry behavior before testing. A healthy server process or one lucky successful download does not establish recovery.
The error response and the recovery window answer different questions about the same interruption. Passing the first does not establish the second. A retry policy might produce the correct final document while causing unacceptable delay or excessive repeated work. Any interruption testing needs an explicitly authorized, isolated environment and agreed safeguards; these examples are not instructions to disrupt a live dependency.
A test's objective, scope, execution method, and input condition describe different things. Treating them as one exclusive list creates misleading comparisons such as “functional versus automated” or “non-functional versus integration.”
The owner-versus-other-customer permission cases could be automated API-level functional regression checks with a security objective. The denied-owner case is negative testing because the attempted access is prohibited, not because its expected outcome is a failed test. The case passes when the application rejects the request correctly. Positive and negative cases can both exercise behavioral rules; neither label defines the functional/non-functional boundary.
Likewise, non-functional work need not wait for a completed system. A component-level timing measurement can identify an expensive operation early, while later testing evaluates the complete download path. Keep the conclusion proportional to the scope: a fast component does not establish end-to-end response time. Acceptance decisions can include both required feature behavior and quality targets.
Start with the user task and its consequences rather than a preferred tool or a fixed functional-to-non-functional ratio. An incorrect invoice, unauthorized disclosure, and a download that cannot complete at forecast demand create different risks. The feature needs evidence appropriate to each relevant risk.
For teams managing those expectations in Jira, Sherlock Test Management describes source-linked, versioned test baselines with human approval of proposed changes and release-specific test runs. If an invoice requirement changes, the relevant use is reviewing the proposed case updates while preserving which baseline version an earlier run executed. That is test-definition and evidence management, not proof that a load or security tool has run or that an unverified integration exists.
Before approving coverage for the next important feature, write one precise behavioral expectation and one decision-relevant quality condition beside it. If either lacks a clear source, observable outcome, or suitable evidence, keep that gap visible in the release decision rather than treating the other category's passing tests as a substitute.
A confirmed flaky test can block unrelated changes without providing a dependable release signal. Removing that obstruction is reasonable only if someone still sees…
A green automated test history can help a developer identify a safe-looking change while leaving a QA lead unable to answer a different question:…
A sprint can contain carefully estimated testing work and still overload the only person who can perform it. The missing input may be a…
Create traceable test cases, prepare release-specific test runs, and keep approved coverage current as the product changes.