Glossary Term (1091)
Insight (93)
Collection (62)
Session (99)
Moment (588)
Newsletter Issue (62)
News (58)
Link (1436)
ISO 13485 is an international standard that sets out the requirements for a quality management system for organisations that design, produce or service medical devices, including medical device software. Following it is voluntary, but it is widely adopted and often expected by regulators and customers as evidence of a controlled, documented approach to quality.
Why it matters: Medical software can directly affect health decisions, such as how much medication someone receives. A quality management system aligned to ISO 13485 gives a company consistent processes for managing risk, documenting work and showing evidence during audits.
In practice: Companies working to ISO 13485 keep controlled documents for requirements, risk analysis, testing and releases. Each release is recorded, each change request written down and each test run documented, reviewed and signed by an authorised person other than the author. Traceability from risk to requirement to test case to execution report is maintained so that auditors can follow it.Examples:
A test lead making sure every executed test case in a release has a signed report stored in a document control system.
An auditor asking to see the trail from a specific risk in the risk analysis file through to the tests that verified its mitigation.
A company running yearly mandatory training so all staff understand the documentation rules they must follow.
Common pitfalls:
Relying on a general test management tool alone for documentation, which may not meet the review and sign-off expectations of medical audits.
Treating documentation as something to finish just before an audit, rather than keeping it current with every release.
Is ISO 13485 mandatory? The standard itself is voluntary, but many markets and regulators expect medical device makers to have a quality management system that meets it or an equivalent, so in practice it is often essential.
What does ISO 13485 mean for software testers? It means testing is planned, documented, reviewed and traceable, and that the motto "if it is not documented, it did not happen" applies to every test run.
Rework rate is a quality metric that measures the share of a team's engineering time spent redoing work that was already marked as done or ready for release. It is usually calculated per sprint as rework hours divided by total engineering hours, and it shows how much effort is lost to learning things late.
Why it matters: Bug counts show how busy a team is before release, not how much damage could have been avoided. The earlier a team finds that its assumptions about requirements, user behaviour or configuration are wrong, the cheaper the fix. Rework rate makes the cost of late learning visible, and a rising trend says more about quality than the number of tickets closed.
In practice: Any work item that moves from Done or Ready for Release back to In Progress is tagged as rework, and the hours spent redoing it are logged. At the end of each sprint the team calculates the rate and watches the trend. Splitting rework into categories, such as requirement gaps and build or test gaps, shows where the problem starts.Examples:
A team with 480 engineering hours in a sprint spends 88 hours on rework, giving a rework rate of 18.3 percent.
An approval workflow breaks when roles are reassigned mid-cycle, a scenario missed in refinement, costing 26 hours of rework.
A misconfigured validation rule in an import endpoint, where the requirement was clear but the code was wrong, takes six hours to correct.
Common pitfalls:
Counting reopened tickets instead of hours, which hides how expensive some rework is compared with others.
Assuming rework always means poor testing, when most of it may come from requirement gaps and unclear usage.
How do you calculate rework rate? Divide the hours spent redoing work that was already done by the total engineering hours in the period, then express it as a percentage.
Is a high rework rate a testing problem? Not necessarily. Splitting rework by cause often shows that most of it comes from committing to work before usage and edge cases are understood, which points to refinement rather than testing.
An irreproducible bug, also called an unreproducible or non-reproducible bug, is a bug that cannot be reproduced consistently, even after several attempts. It may appear once and then vanish, or show up only under conditions nobody has yet identified, which makes it hard to track down and fix.
Why it matters: These bugs are easy to dismiss because nobody can show them on demand, and developers may push back with "it does not happen on my machine" or a lack of time. Yet they are often warning signs of deeper problems, such as operating system differences, third-party library mismatches or user-specific configuration, that can cause bigger failures later.
In practice: Testers report irreproducible bugs anyway, but with extra care. A useful report:
Labels the issue clearly as irreproducible.
Describes the failure precisely, with screen recordings, console logs and API calls.
Lists variables that might matter, such as browser, OS version, library version and hardware.
Explains which reproduction attempts have already been tried.
Follow-up work helps too: varying data, settings and the timing of interactions, preserving the test machine's state, and checking the bug tracker for similar past failures.Examples:
A crash seen once during exploratory testing is captured from a screen recording that was already running.
A failure that appears only on one tester's laptop turns out to depend on an unusual Java runtime version.
An error appears only when steps are clicked through very quickly, revealing a timing problem.
Common pitfalls:
Closing the report as "cannot reproduce" without a resolution code or tag, so the same issue cannot be linked when it returns.
Reporting the moment the bug appears without first preserving the system state or trying variations.
Is an irreproducible bug the same as an intermittent bug? They overlap. An intermittent bug comes and goes under the same conditions, while an irreproducible bug is any bug the team has not yet managed to make happen again on demand.
Should you report a bug you cannot reproduce? Yes. A careful report with evidence and context is often the first step towards finding the cause.
A review app is a temporary, fully deployed instance of an application created automatically for a single branch or pull request, so changes can be tested and reviewed in isolation before they are merged. Review apps are sometimes called preview environments or ephemeral environments, and they are usually torn down once the change is merged or closed.
Why it matters: Review apps let testers, developers and stakeholders try a change in a running environment early, without waiting for a shared staging server. This shortens feedback loops and avoids teams overwriting each other's changes. They do have limits: external dependencies are often replaced with mocks, so a review app only reflects the behaviour the team already knows about.
In practice: A continuous integration pipeline builds the branch, deploys it to a fresh environment and posts a link on the pull request. Automated tests run against it, and testers explore the change there. Third-party systems are usually mocked or stubbed, since connecting every review app to real partners is costly. Teams should be clear about which rules the mocks cover and plan further testing against real integrations before release.Examples:
A tester exploring a new checkout step in a review app linked from the pull request before any code is merged.
A product manager approving copy changes by clicking through a preview environment.
Data pipeline tests passing in a review app with mocked partner responses, then failing in production when the real partner rejects records.
Common pitfalls:
Treating a passing review app as proof the change works end to end, when mocks only cover the rules the team knows about.
Letting review apps drift from production configuration, so differences hide real problems.
What is the difference between a review app and a staging environment? A staging environment is usually long-lived and shared by everyone. A review app is short-lived and dedicated to one change.
Do review apps replace integration testing? No. They make early testing easier, but real integrations still need testing, because mocked dependencies cannot reveal rules the team does not know exist.
The INVEST mnemonic is a checklist for writing good user stories and requirements, stating that each one should be Independent, Negotiable, Valuable, Estimable, Small and Testable. It is often called the INVEST criteria and is widely used by Agile teams during backlog refinement to judge whether a card is ready to be worked on.
Why it matters: Poorly written cards assume context, leave out details and cause confusion later in delivery. Checking a story against INVEST encourages clear, detailed cards that reduce misunderstandings and raise the team's quality bar. For testers, the final letter is especially useful, because a story that cannot be tested cannot be shown to be done.
In practice: Teams use the six letters as prompts when creating or reviewing a card:
Independent: it can be built and released without waiting on other stories.
Negotiable: the details are open to conversation, not a fixed contract.
Valuable: it delivers something users or the business care about.
Estimable: the team understands it well enough to size it.
Small: it fits comfortably within an iteration.
Testable: it has clear acceptance criteria that show when it is complete.
Examples:
A hotel search story with defined inputs (check-in date, nights and guests) and outputs (rooms available and price per night), making it testable.
Splitting a large booking feature into separate search, selection and payment stories so each is small enough to finish.
Rewriting a bug card that says only that search is broken into one with reproduction steps and expected behaviour.
Common pitfalls:
Treating INVEST as a box-ticking exercise, so stories pass the checklist but still lack a shared understanding.
Leaving out quality characteristics such as security and speed, so a story looks testable but misses the implicit expectations that give it value.
What does the T in INVEST mean for testers? It means a story should have clear, testable acceptance criteria. Testers can help by asking how the team will know the story is done and turning vague statements into checks that can pass or fail.
Reversibility is how easily the effects of a change or a failure can be undone or fixed safely after release, for example by rolling back, patching or correcting data. In software testing, it is a factor used alongside user impact and cost of failure to decide what must be tested thoroughly before release and what can reasonably be left until after.
Why it matters: Small teams under delivery pressure rarely have time to test everything. Asking which failures would be visible and irreversible helps them put their limited effort where a mistake would do lasting harm, such as exposing data or breaking user trust. Problems that can be rolled back or patched quickly can be given lower priority without being ignored.
In practice: During planning or review, the team asks a few direct questions about a change: what would break user trust immediately if it failed, which failures could not be undone, and what could be fixed safely after release. High-impact, irreversible risks get careful testing before release. Reversible, lower-impact issues are noted, monitored and fixed later. This gives testers a shared, product-backed way to say "this matters" or "this can wait".Examples:
For a permissions change, a team focuses testing on making sure users cannot see data they are not meant to see, because leaked data cannot be taken back.
Confusing error messages in a secondary flow are accepted at release and fixed shortly after, because they are visible but reversible.
A database migration that deletes old records gets far more testing than a styling change behind a feature flag.
Common pitfalls:
Assuming something is reversible because the code can be rolled back, while forgetting that data changes, sent emails or lost trust cannot.
Using reversibility as a reason to skip testing altogether, rather than as one input to deciding how much testing a change needs.
How does reversibility affect risk-based testing? It sharpens the priority of each risk. Two failures with similar impact are not equal if one can be fixed in minutes and the other leaves permanent damage, so the irreversible one gets tested first.
A zombie cookie is a type of persistent cookie that is automatically re-created after a user deletes it, usually by restoring itself from a backup copy kept somewhere outside the normal browser cookie store. Because it keeps coming back, it is hard to detect and remove, and it is closely associated with privacy and security concerns.
Why it matters: Users who clear their cookies expect to stop being tracked. Zombie cookies undermine that choice and can conflict with privacy rules such as the GDPR, which require informed, freely given consent. They have some legitimate uses, such as preventing cheating in online games, but they can also be abused to track people or support malicious activity.
In practice: Zombie cookies can come back from several places:
Browser local storage or other storage mechanisms ordinary users rarely see.
Older technologies such as Flash local shared objects.
Copies held on the server and sent back to the client.
Code injected through cross-site scripting (XSS).
Testers check what data a site stores across all browser storage areas, not just cookies, and confirm that clearing site data truly removes it.Examples:
Deleting all cookies for a site, reloading the page and finding an identical tracking ID has reappeared.
Discovering that an ID removed from cookies is still held in local storage and copied back on the next visit.
Reviewing a third-party script that rebuilds deleted cookies, during a privacy or security test.
Common pitfalls:
Checking only the cookie list in developer tools and missing copies kept in other storage areas.
Treating cookie regeneration as harmless when users have withdrawn consent, which may breach privacy law.
Are zombie cookies illegal? Not in themselves, but using them to track users who have deleted cookies or withdrawn consent can breach privacy regulations such as the GDPR.
What is the difference between a zombie cookie and a supercookie? The terms overlap. A supercookie is stored outside the normal cookie store, while a zombie cookie specifically re-creates itself after deletion, often using such hidden storage.
Intrinsic cognitive load is the mental effort that comes from the inherent complexity of a task or the material being worked with. In software testing, it is the unavoidable thinking demanded by the system under test itself, such as complex business rules, distributed architecture, integrations and edge cases.
Why it matters: Intrinsic load cannot be designed away, because it reflects how hard the problem genuinely is. Recognising it helps teams set realistic expectations for how long testing a complex area will take, and makes clear why testers need protected time and clear support when working on the hardest parts of a system.
In practice: Rather than trying to remove intrinsic load, teams make room for it. They strip out avoidable distractions so more mental capacity is left for the complex work, break tests into small focused units with clear intent, and share knowledge so no single person carries a whole subsystem in their head. Pair testing and peer reviews help spread the load on particularly tricky scenarios.Examples:
Testing a payment flow that touches several third-party services, each with its own failure modes and timeouts.
Working through a pricing engine where discounts, taxes and regional rules interact in many combinations.
Investigating behaviour in a distributed system where events can arrive late, twice or out of order.
Common pitfalls:
Mistaking high intrinsic load for a lack of skill, and expecting complex features to be tested as quickly as simple ones.
Piling avoidable tool and process friction on top of already complex work, which pushes testers past what they can reasonably manage.
Can intrinsic cognitive load be reduced? Not directly, because it comes from the problem itself. Teams can make it easier to handle by simplifying how the work is presented, splitting it into smaller pieces and sharing knowledge.
Where does the idea of intrinsic cognitive load come from? It comes from cognitive load theory in educational psychology, which splits mental effort into intrinsic, extraneous and germane load, a model that has since been applied to software teams.
The Retrospective Prime Directive is a statement read at the start of a retrospective which asks everyone to accept that each person did the best job they could, given what they knew at the time, their skills and abilities, the resources available and the situation they were in. It was created by Norm Kerth, author of a handbook on project retrospectives, and is sometimes shortened to the Prime Directive.
Why it matters: Retrospectives only lead to improvement when people feel safe to talk honestly about what went wrong. Starting from the assumption that everyone acted in good faith shifts the conversation from blame to learning. Many testers apply the same principle beyond retrospectives, to bug reports, code reviews and everyday feedback, because harsh criticism damages relationships and reputations.
In practice: A facilitator usually reads or displays the Prime Directive at the opening of a retrospective and asks the group to agree to it. Teams then use it as a reference point if discussion drifts towards blaming individuals. Testers can use the same mindset when writing bug reports: critique the product, not the person, and explain problems in a way that suggests how to improve the system.Examples:
Reading the Prime Directive aloud before a release retrospective after a serious production incident.
Rewording a bug report from "the developer forgot validation" to a neutral description of the missing validation and its impact.
Approaching an audit or review with the aim of catching people in, not out, to build trust.
Common pitfalls:
Reading it as a ritual and then letting the discussion turn into blame anyway.
Treating it as an excuse to avoid discussing mistakes, rather than a basis for discussing them safely.
Does the Prime Directive mean nobody is accountable? No. It sets a blameless starting point so problems can be examined openly, which makes it easier to find and fix their real causes.
Can the Prime Directive be used outside retrospectives? Yes. Many teams apply it to feedback, code reviews and bug reporting as a reminder to assume the best of colleagues.
The Year 2038 problem, sometimes called Y2038 or the Unix Millennium Bug, is a date handling fault in systems that store time as a signed 32-bit count of seconds since 1 January 1970. The largest value that type can hold, 2,147,483,647, is reached on 19 January 2038, after which the count overflows and wraps to a negative number.
Why it matters: When the counter wraps, affected systems will read the date as December 1901, which can break scheduling, expiry checks, certificates and anything that sorts or compares dates. Systems do not need to wait until 2038 to fail: any feature that calculates dates in the future, such as a 25 year mortgage or a long contract, can hit the limit now.
In practice: Testers identify where dates and times are stored or calculated as Unix timestamps, particularly in older code, embedded devices and databases. They then test with dates on and after 19 January 2038, and with calculations whose results cross that point. It is worth checking each layer, since a value can be stored safely as 64-bit in one place and squeezed into 32 bits in another.Examples:
Setting an account expiry date to 2040 and finding it saved as a date in 1901.
A loan calculator that fails to produce a repayment schedule beyond January 2038.
An embedded device that resets its clock to an early date when the timestamp passes 2,147,483,647.
Common pitfalls:
Assuming the problem only matters close to 2038, when future dates are already being calculated and stored.
Checking the application code but not the database columns, file formats or third party libraries that also store timestamps.
How is the Year 2038 problem fixed? The usual fix is to store time in a 64-bit type, which pushes the limit billions of years into the future, and then to test every layer that reads or writes the value.
Interrupt work is unplanned work a team has to pick up during a sprint that sits outside the stories it committed to, such as production fixes, urgent support requests and stabilising the last release. It is often measured as the hours or percentage of sprint capacity it consumes, and is sometimes called unplanned work.
Why it matters: High interrupt work is a sign that learning is happening after delivery rather than before it. It quietly takes time away from planned work, and testing is often the first activity squeezed to protect scope. Tracking it alongside lead time shows the gap between a team's delivery cycle on paper and the time it really takes for work to become stable in production.
In practice: Teams log the hours spent on anything outside the sprint's planned stories and review the total at the end of each sprint. They also look for production stabilisation from the previous release spilling into the next iteration. Comparing interrupt work with lead time from ready for development to stable in production helps show where quality is being deferred rather than built in.Examples:
A team finds that interrupt work averaged 32 percent of sprint capacity over a quarter.
A feature is marked done on day 10 of a sprint, released on day 15, then needs fixing and retesting on days 23 to 25 after a production issue.
A tester notices regression testing being cut each sprint to make room for urgent fixes from the previous release.
Common pitfalls:
Absorbing interrupt work without recording it, so the sprint looks predictable while the team is overloaded.
Treating interrupt work as unavoidable noise rather than a signal about assumptions and quality earlier in delivery.
How do you measure interrupt work? Record the hours spent on work outside the committed stories each sprint, then divide by total sprint capacity to see the share it takes.
Is interrupt work always bad? No. Some unplanned work is normal, but a high or rising share usually means problems are being found late and should prompt a look at refinement, testing and release practices.
Retrieval-augmented generation (RAG) is a technique where an AI model or agent first searches a store of documents for information relevant to a request, then uses what it found to generate its response. It gives a large language model access to knowledge it was not trained on, such as a team's own documentation, bug reports or specifications.
Why it matters: Without a source of knowledge, every conversation with an AI agent starts like talking to someone on the first day of a new job. RAG lets an agent draw on the context a team has built up about an application, its quirks and its failure patterns. For testers, it also creates new things to test: whether the right documents were retrieved and whether the answer stays true to them.
In practice: Documents are split into chunks, converted into numerical representations called embeddings, and stored in a vector database. When a request comes in, the system searches that database by meaning and similarity, pulls back the closest matches, and passes them to the model alongside the prompt.Examples:
An agent given access to past bug reports writes new reports that follow the same template, even when the wording of the request is different.
An internal assistant answers questions about a product's API by retrieving the relevant sections of its specification.
A tester asks a RAG-based support bot a question whose answer sits in an outdated document, to see whether it repeats stale information.
Common pitfalls:
Assuming the model's answer is correct because it cites retrieved documents, without checking those documents were the right ones.
Feeding the knowledge store with outdated or contradictory material, which the agent then repeats with confidence.
Does RAG stop AI hallucinations? No. It reduces them by grounding answers in real documents, but a model can still misread, mix up or ignore the retrieved content, so outputs still need testing.
What is the difference between RAG and fine-tuning? RAG supplies extra knowledge at the time of each request, while fine-tuning changes the model itself through further training.
There are countless ways to show up and contribute. Which one will you try today?
Take this 7-question assessment to see where your QA team stands and get a plan for what to automate next.
BearQ continuously tests your app, reducing test maintenance and uncovering gaps scripted tests can miss.
Manage your entire QA lifecycle in one place. Sync Jira, automate scripts, and use AI to accelerate your testing.