All Stories

Because somehow it is always testing’s fault

Tester got blamed

Accountability Remained

The Test Lead was removed from release calls, test channels and scope decisions but left on the organisation chart. Months later, an assurance review found that regression and…

The Expanded Assurance Scope

The security team issued a green report stating clearly that functional and performance testing were outside its scope. Delivery removed the word security from the heading and presented…

The Stable Service

The service was declared stable because incident numbers had fallen. Operations had built spreadsheets, manual checks and a rota to catch stuck claims before customers noticed. Those failures…

The Production-Like Environment

The test environment failed every afternoon and regularly lost data overnight. Delivery said its failures were irrelevant because production would be more stable. Production launched, failed in the…

The Accepted Defects

A Delivery Manager asked us to mark four failed tests as passed because the defects had been accepted for release. I explained that accepting a defect changes the…

The Test Team Still Existed

The programme report said functional, regression and performance testing remained fully resourced. In reality, every tester had been reassigned to create accounts and test data for the security…

The Prepared Demonstration

A developer demonstrated a new claims feature using one prepared customer and the exact sequence of clicks he had built it for. The business owner watched it work…

The Penetration Tester

The Delivery Manager appointed a penetration-testing specialist to lead functional, regression, performance and security assurance. The specialist had clearly stated that his expertise was penetration testing. The Delivery…

The Developer Demonstration

I asked what functional testing remained after the test team was reorganised. New features were being demonstrated by the developers who built them. “Who independently validates them?” I…

The Performance Requirement

The performance testers asked how many people the national claims portal needed to support. The answers included: National scale. Significant demand. As many users as necessary. More than…

The Zero-User Load Test

An external supplier spent weeks preparing to load-test the claims portal. They attended workshops, studied the user journeys and produced a detailed test plan. The Delivery Manager repeatedly…

The Renamed Defect

A tester raised a defect called: Uploaded Evidence Deleted After Claim Amendment The Delivery Manager renamed it: Evidence Display Observation Following User Update The tester changed it back.…

The Stable Claims Journey

A claimant uploaded evidence, then returned to correct an answer. The portal still said the documents were attached, but the caseworker could no longer see them. Each attempted…

Testing After Launch

A public launch date appeared in the programme plan without agreement from development or testing. The same plan showed testing finishing after launch. When this was raised, the…

The Upward Arrow

The dashboard showed test confidence at 43% for two consecutive weeks. A green arrow pointed upwards between the identical figures. When someone asked why, the Delivery Manager said…

The 43% Confidence Score

The Delivery Manager demanded an exact test-confidence percentage. There was no formula capable of converting unstable environments, incomplete coverage and serious defects into a meaningful probability. My Roman…

The Colour Calibration Workshop

Two major claims journeys were failing and the test environment was unstable. I reported red. The Delivery Manager changed it to green with significant dependencies, without changing any…

The Report Before I Joined

I joined the programme as Test Lead on Monday. On Tuesday, the Delivery Manager demanded that I explain a test report issued the previous Friday. The report stated…

The Handover

I joined after the previous tester had left. I asked for a handover. The project manager said everything was recorded in Jira. The relevant Jira ticket said: Decision…

The Commitment

I said the team had capacity to test ten stories. The project manager assigned us eighteen. He marked all eighteen as committed. At the end of the sprint,…

The Defect Triage Vote

Testing raised a critical defect. The delivery manager suggested deciding the severity by a vote. Five members of the delivery team voted to downgrade it. The tester voted…

The Vendor Environment

The supplier demonstrated the system perfectly in its own environment. When testing found defects in ours, the supplier said they were caused by our configuration. We asked what…

The Known Business Rule

A production issue revealed a business rule nobody had mentioned. The business lead said it was common knowledge. I asked where it was documented. He said it did…

The Sign-Off Template

The project manager sent me the release document. It already said: QA APPROVED He asked me to add my name underneath. I refused because testing had not approved…

The Retrospective Action

The retrospective agreed that testing needed to be involved earlier. The action was assigned to me. The next sprint’s design meetings happened without me. At the following retrospective,…

The UAT Expert

The business nominated its most experienced user to complete UAT. She delegated it to a new starter. The new starter passed everything because she did not know how…

The Updated Acceptance Criteria

I demonstrated that the feature did not meet the acceptance criteria. The product owner opened Jira during the meeting. He changed the acceptance criteria. Then he refreshed the…

The Consensus Decision

At release readiness, Development said yes. Product said yes. Operations said yes. Testing said no. The chair announced that there was consensus to proceed. I asked what consensus…

The Approved Test Plan

I sent the project manager the test plan. Four minutes later, he approved it. Three weeks later, he asked why data migration had not been tested. I showed…

The No-Blame Review

The incident review was described as a safe, no-blame discussion. The opening slide was titled: QA Failure The facilitator reminded everyone not to become defensive.

More Evidence

The project manager asked for evidence that the defect existed. I showed him a screen recording. He asked for evidence that a user would follow those steps. The…

The Defect Workshop

A developer disputed a typo defect. The project arranged a workshop with twelve people. We discussed severity, customer impact and whether the missing letter changed the meaning. The…

A Small Minority

The defect only affected existing customers. The project manager called that a small minority. I asked how many customers were existing customers. “All of them.” The issue affected…

Blocked by QA

Development needed an answer from the product owner. The product owner was on leave. The developer moved the ticket into the QA column because he could not progress…

The Known Issue

A production defect appeared in the release notes as a known issue. Testing had never seen it. I asked when it became known. The project manager said immediately…

Please Retest

The developer asked me to retest the defect. I asked what had changed. He said nothing. I retested it. It passed. He said, “You never know.” Hope had…

PowerPoint Recovery

The test status was amber because two critical defects remained open. The programme director asked for it to be green before the steering committee. The defects stayed open.…

User Error

The developer rejected the defect as user error. The user who found it was in the meeting. She explained exactly what she had done. The developer said real…

Accepted Risk

The product owner formally accepted the release risk. The dashboard remained amber. He asked why accepting it had not made the status green. I explained that accepting a…

The Two-Day Estimate

The project manager asked how long testing would take. I said I needed the scope, build and acceptance criteria first. He asked for a rough estimate. I said…

The Controlled Demonstration

The product owner demonstrated the new journey perfectly. I asked whether I could try it. He said there was not enough time for exploratory testing during the demo.…

The Friday Defect Count

We had 28 open defects. The project manager wanted zero for the Friday report. Testing refused to close them, so he closed them himself. Friday’s report celebrated zero…

UAT Sign-Off

The business user was too busy to complete UAT. She signed it off anyway because QA had tested it. After go-live, the business process failed. She joined the…

The Risk Owner

I raised a release risk. The delivery manager asked who owned it. I said the project owned it because the project was choosing to release. He assigned it…

The Green Status

The project dashboard showed testing as green. Testing had not started because there was no build. The project manager explained that there could not be any test issues…

Regression Scope

The developer changed one shared date component. The project manager allowed thirty minutes for testing because it was “a small change.” The component appeared on 46 screens. Testing…

Tested by the Developer

Developer: “I’ve tested it.” Tester: “What did you test?” Developer: “That it works.” Tester: “What happens when it doesn’t?” Developer: “Why would I test that?”

Wrong Build

I spent half a day proving that the defect was still present. The developer spent half a day proving that it was fixed. DevOps eventually checked the deployment…

Appropriate Error Message

The acceptance criteria said: The user receives an appropriate error message. The application displayed: Something happened. The business analyst marked the test as passed.

Read-Only Access

Tester: “A read-only user can delete accounts.” Developer: “Only by calling the endpoint directly.” Tester: “The Delete button calls the endpoint directly.” Defect reopened.

The Feature Flag

We tested the feature flag both on and off. Production used new_checkout_enabled. The test environment used new_checkout_enable. One missing letter had its own release strategy.

Safari Support

I reported that checkout failed on Safari. The developer said he could not reproduce it because he did not own an iPhone. Our customers remained strangely unwilling to…

Flaky Checkout

The checkout test failed eleven times out of twenty. The developer marked it as flaky automation. I placed twenty orders manually. Eleven failed. Production was apparently flaky too.

Production-Like Test Data

The change affected customers with ten years of transaction history. The test data team gave us one customer. His name was Dave. Dave had joined that morning and…

Severity Negotiation

I raised a Severity 1 because every user could view the payroll screen. The delivery manager lowered it to Severity 3 because the screen was restricted to administrators.…

No QA Required

The Jira ticket said: QA required: No The release note said: QA approved QA had never seen the ticket.

Just Test the Happy Path

Project manager: “Can you just test the happy path?” Tester: “Which path is that?” Project manager: “The one where everything works.”

Testing Delayed the Project

Development finished three weeks late. The release candidate reached QA on Friday afternoon. Testing found a blocker on Monday morning. The steering group slide said: Go-live delayed by…

We Don’t Need Testers

“We don’t need testers. Our developers will get it right.” The first production defect arrived six hours later. The incident opened with: “How did testing miss this?”

The Tester Who Broke Nothing

The release went live at 4:00 pm. At 4:07 pm, customers could no longer log in. At 4:12 pm, the project manager asked why testing had missed it.…

The Bug That Became a Feature

I found that clicking Cancel completed the transaction. The product owner said changing it would delay release. Two meetings later, Cancel had been renamed “Complete and Exit.” Defect…

It Was in the Requirements

I raised a defect because customers could submit an order with no delivery address. The analyst rejected it. Apparently the requirements never said an address was mandatory. The…

Signed Off

A project manager asked me to sign off a release I had never seen. I said I needed the build first. He replied, “Can you sign it off…

Works on My Machine

Developer: Works on my machine. Tester: Can I borrow your machine for production? Developer: That is not how production works. Tester: We are getting somewhere.

The Friday Release

We said on Monday that it was not ready. We said it again on Wednesday. At 4:30 on Friday, someone approved the release anyway. At 5:12, production went…

Tester actually did it

The Test Case That Passed

A junior tester wrote a test step saying: Check the claims portal works. The expected result was: Claims portal works as expected. He later closed a defect because…

The Demo Account

I changed the executive demonstration account to a restricted user so I could test permissions. I forgot to change it back. The programme director logged in during the…

The Old Test Script

I followed the test script exactly. Step six told me to click a button that did not exist. I raised a blocker. The developer pointed out that the…

The Shared Screen

During defect triage, the developer challenged my evidence. I shared my screen to find the recording. A paused YouTube tab was still open: How to Deal with Stupid…

The Test Case Review

I asked another tester to peer-review my test cases. He changed Select Submit to Click Submit in 63 places. He returned them with 63 comments and marked the…

The Permission Test

I completed the full regression pack using one test account. Every journey passed. After go-live, normal users could not access half the system. I checked the test account.…

The Helpful Cleanup

The UAT environment was full of old customer records. I deleted them to give the business a clean starting point. They were not old customer records. They were…

The Evidence Screenshot

I attached a screenshot to prove the defect. The screenshot included a Teams notification from another tester saying: That fix is held together with prayers. The developer saw…

The Retest Queue

Another tester refused to retest defects unless the developer personally reassigned each ticket to him and wrote Ready for retest in a comment. At stand-up, he reported 23…

The Blocker Specialist

Another tester marked every defect as a blocker. A typo was a blocker because it blocked him from approving the page. A missing tooltip was a blocker because…

The Defect Filter

I reported that there were no open defects assigned to testing. The test manager congratulated the team. Then someone opened Jira without my saved filter. There were 63…

The Test Customer

I created a test customer called DO_NOT_USE_TEST_ACCOUNT. It appeared in the executive demonstration. The programme director asked why our most valuable customer was called Do Not Use. The…

The Copied Defect

I copied an old Jira defect to save time. I changed the title, steps and screenshots. I forgot to change the environment from Production to Test. The developer…

The Final Evidence Pack

I rejected a developer’s deployment because the release files were badly named. Then I sent the test evidence. The attachment was called: FINAL_Test_Evidence_v6_USE_THIS_ONE_REAL_FINAL2.zip

The Financial Defect

I raised a critical defect because the system total was £12,000 higher than my expected result. Finance checked the application. Development checked the calculation. I checked my spreadsheet.…

The Shared Password

I changed the password on the shared UAT account to test password history. I forgot to tell anyone. Within ten minutes, the whole project reported that UAT was…

Forty-Seven Defects

The same label was misspelled on 47 screens. I raised 47 separate defects. The developer corrected one shared component. At the weekly report, I announced that 47 defects…

The Production Email Test

The tester ran the notification suite using production SMTP credentials. Five thousand customers received: TEST EMAIL. PLEASE IGNORE. Support received hundreds of replies asking whether they should ignore…

The Environment Defect

I raised a blocker because the new feature was completely missing. I attached screenshots and browser logs. DevOps replied: “The deployment failed. You are testing the old release.”…

The Two-Pixel Defect

The designer raised a blocker because the Submit button was two pixels too low. The same button deleted the customer record. The alignment defect was fixed first because…

The Payment Stub

Our payment stub approved every transaction. It approved expired cards. It approved negative amounts. It approved a card number containing the word banana. UAT described the payment journey…

Fastest Regression Ever

The CI pipeline ran 1,204 automated tests in nineteen seconds. Everyone celebrated. Then we noticed the command was listing the tests rather than executing them.

The Smoke Test

The release manager asked me to run the smoke pack. I found four folders: SmokeSmoke_NewSmoke_FinalSmoke_Final_UseThisOne I chose badly.

From a Developer

The tester raised a critical defect because my API returned a 404 for a customer who did not exist. I explained that this was the correct response. He…

A Genuine Tester Update

Stand-up update: “Still testing.” That was my update for nine working days. I was actually stuck on the same broken environment and had given up explaining it.

The Automation Suite

Our automated regression suite had 612 tests. About 200 failed every day. Nobody knew why, so we ignored those. Another 150 were switched off. The remaining tests checked…

The Missing Button

I spent nearly an hour logging a defect because the Save button had disappeared. I added screenshots. I checked three browsers. I restarted everything. Then someone asked me…

My Finest Test Case

I once wrote a test case that said: “Check the page works correctly.” That was the whole test case. No steps. No expected result. No shame.

Testy Tips

The Amber Report

A Delivery Manager asked me to replace red with amber before Programme Board because red would distract from the recovery message. I changed the board version to amber,…

Name the Owner of Every Release Action

Give every release action one named owner and a deadline. “The team will fix the test data before Thursday” means the tester will discover at 4:45 on Thursday…

Turn Nobody Would Do That into a Test

Whenever someone says, “No user would ever do that,” write down the exact action and test it. You are testing the behaviour they are confidently refusing to imagine.…

Use a Fresh User for the Final Check

Repeat critical journeys with a newly created account before release. A six-month-old QA account has usually been made administrator, resurrected twice and exempted from half the rules. It…

Put the Decision Beside the Defect

Record who accepted, downgraded or deferred the defect directly on the ticket. “The project accepted the risk” is useless because projects cannot join incident calls and explain themselves.

Get the Business Rule from the Business

Make sure one named business owner decides how disputed rules should work. Three experts giving three answers is not comprehensive coverage. It is a future defect-triage meeting.

Group Defects by Root Cause

Check whether several failures come from one shared component before creating dozens of tickets. Twelve Jira defects for one typo is only efficient when your performance target counts…

Ask What Changed Before Retesting

Before spending an hour repeating the same test, ask what code, configuration or data has changed. “Try it again” is not a fix description. It is how people…

Separate Severity from Priority

Severity describes the impact. Priority describes how urgently the project chooses to act. A serious defect does not become harmless because the release date is emotionally important.

Test with the Weakest Permissions

Start important journeys with the lowest-permission user who should be able to complete them. Administrator access is not a representative customer journey unless the customers have recently taken…

Record the Exact Time

Include the date, time and timezone when reporting intermittent, integration or logging issues. “Just after lunch” is only searchable if the developer also knows what you ate.

Write Expected and Actual Results

A defect should say what happened and what should have happened. “Page broken, please investigate” is not test evidence. It is a cry for help with a Jira…

Name the Release Decision-Maker

Ask who has authority to approve or reject the release before the final meeting. A room full of people nodding cautiously is not governance. It is a group…

Make Automated Tests Fail

Temporarily break the feature and confirm the automated test catches it. A test that always passes is not stable. It is decorative.

Verify the Deployment Before Retesting

Confirm the version, database migration and feature flags are actually present before starting a full retest. There is no professional satisfaction in producing twelve pages of evidence against…

Test Retry Behaviour Deliberately

Check whether duplicate clicks, timeouts and automatic retries create duplicate payments or orders. Users will click once. Then twice. Then fifteen times while loudly blaming the website.

Save the Original Requirements

Capture the acceptance criteria before testing begins. Requirements have an extraordinary ability to improve after a defect proves they were wrong.

Ask What Else Uses the Component

Ask what else uses the component before agreeing the regression scope. A one-line change to a shared date picker can affect forty screens, three countries and every user…

Check the Response Body

Check the response body as well as the status code. A 200 OK can still contain a beautifully formatted explanation of how everything has failed.

Check the Test Data Before Blaming the Code

Check roles, account status, dates, balances and previous transactions before raising the defect. Sometimes the application is broken. Sometimes Dave has been configured as a deceased administrator living…

Challenge Works on My Machine

When a developer says it works on their machine, ask whether they plan to let the customers use their machine as well.

Put the Build Number in Every Defect

Put the build number in every defect, screenshot, log and video. “Works for me” becomes much less impressive when they are testing build 84 and you were given…