Do you remember the bug that made you both chuckle and panic? Do you remember the one you simply can’t forget?

Occasionally we all experience those instances when a bug pops out unexpectedly, leaving us in one of three states: head-scratching confusion, uncontrollable laughter, or desperate panic. It might be some bizarre fringe case or something so glaringly simple that it’s astonishing it ever existed.

Let’s share and learn together!

The worst bug I experienced was in a police case and custody management tool (don’t worry people, the product doesn’t exist anymore :laughing: ) when I was analysing my automated test failures and I found an error saving a record. The framework would like most, take a screen shot on failure and when I examined the screen shot the screen was showing a completely different record.

I followed the steps, the data that was input and I established there was no way this other record should have been displayed. Manually it would have also been impossible to navigate to this record in one click from the area the test was in.

What I’d established was that there had been some kind of back end conflict when the test had saved “Record A” at exactly the same time as developer who was working on “Record B” across the room had clicked save. My save had returned his record but he saw no conflict. I couldn’t reproduce it but I’d never seen such an issue in my career. I never trusted the product again and left. Once a product has gone deep down the wrong path in its architecture and has commercial commitments its doomed to failure.

Thats probably the most powerful example I have of how important shifting left is!

In my first job, we made a production deployment and the apps started crashing instantly. Even though I had done my part of thorough testing. Turned out to be a faulty deployment with the senior dev quite literally forgetting to run certain seeding operations.

One time User A was facing ‘something went wrong‘ when they click screen C in particular. And we did not know why its happening, as apparently everything was fine with that user records and screen C as well :smiley:

Now, it was time to dig deeper, the logs read: “User id 18 is missing and system looking for it” - on the error ‘something went wrong‘. Though the user ID for User A is different its not 18 :smiley: so whose this user 18?

I searched every where in DB - I did not find this user id 18. (User B).

Turns out: By checking the change logs of DB - user 18 was long deleted and User A had some pending items for user id18 on screen c, thats why whenever user A clicks on screen C error appears because the user was deleted long ago.

Lesson I learnt: The DB dependencies matters especially in case of Delete operation. I deleted the stale data caused by deleted user and voila the error was gone. Now I always make sure this at least does not happen.

The one I can not forget since over 10 years:

We had a product for logistics where around 24h were considered a unit of work, but the were no fixed times. I discovered that users weren’t forced to close that unit and could continue it the other day. I told that our PO and he answered that someone will do it. I didn’t asked further.

Some months later we had to deliver a hot fix because the server had become very slow. They data of each day since the first usage connected to a long chain which took a while to process. The time they told me about that I remembered what I told our PO.

The consequences weren’t too hard for us, but it told me a lesson.

for context I used to work for a company that created financial reports in this system you would select different prints to create a pack. This pack was then sent out for customers for things like Capital Gains Tax. At the time this was 40 year old code (I was told).

My 3rd day I am playing around with this pack creation and found 3 major bugs
3. If there is no data in the DB the whole print process fails. The comment to me was customers always do that which causes us loads of problems… They get a new print and try it out, wouldn’t you? (Why has it not been fixed?)
2. If you don’t add a name in a field you get the error message “I know that one, its a John Wayne film” (The man with no name) Very funny but not great if a customer see’s it and you are dealing with multi million pound company’s.

  1. My “I am going to get fired” moment… I had requested a pack with prints in an odd order (Power of Ignorance I guess). This proceeded to crash the entire print process, turns out test where using the same pipeline as live and so prevented 4000 packs from being sent out… “Should I get my bags now?” What happened is that the first print required data from another so when it didn’t get it the process crashed. It did highlight a major issue with prints not being modular and dependent on each other. I would have preferred to not have found that in my first week though. The partners where pretty ruthless I really did think I was going to get fired. Took them days to fix and catch up… We did get a nice new test pipeline though :rofl:

Your bug is pretty much identical to a bug we found in the London Cycle Hire website about 15 years ago. The difference is that the system had been live for several months and another company had done the testing prior to our involvement.

If two people logged in within about one second of each other, the transaction history they saw on screen would include both their and the other person’s transactions. Fortunately, the transaction histories were correct in the database and no money was charged incorrectly.

This bug had not been caught by any of the pre-launch testing, and we were only brought in after numerous customer complaints - they were getting perhaps a dozen a day, but the developers could not recreate the fault.

One that comes to mind isn’t strictly a bug, but a really stupid design decision. It certainly made me laugh.

I was looking at the HTML for an application form and I noticed it contained the confirmation message. Why would it do that? Surely the server sends the confirmation message after it receives the application and validates the data?

So I disconnected the network cable from my PC, submitted the form, and sure enough the website displayed the confirmation message saying my data had been received and would be processed, even though it obviously hadn’t.

We were all told to execute the same installer test on our different machines. I quickly read it, seemed obvious and boring so me being me, I blasted through, half paying attention to tick the box, then used the time to do my thing.

I managed to get the uninstall process to scrub my entire workstation. This was both hilarious as it’s quite a big bug and wouldn’t have been found if I’d actually done what was expected. I was also panicking as I could see all my files disappearing.

Ever since then I’ll always use virtual machines for installer testing.

Early in my career one of the projects in banking application production issue was raised in manage money functionality when the page was refreshed the amount was displayed from other persons account. Since then every project I worked on I make sure the refreshing browser is checked and it has helped me to prevent some major issues on other projects.

Testing telephony and mobile phone systems in the early 90-s was chuckle and panic all the time. Missed beer evenings with the boys since I “only had to test a little more”. The wild days.

During the User Acceptance Test, the user was asked to enter the amount of money in cents. There was a frustated reaction: “Now i have to calculate.” I tried not to laugh.My thought was: “Just multiply the amount with 100.”.

Then I realised, that we missed this bug for months. The user used to enter the amount of money in another way.

One of my favorite bugs to this day happened over a decade ago and was in the entertainment system of the BMW my wife got from work. At the time I had set the bluetooth device name of my phone to “;-)” and had connected it to the car to be able to take calls while driving.

My wife had connected several of her phones (work phone, personal phone, …) and at one point we needed to disconnect my phone (I think we had reached the maximum number of connected phones?).

Turns out that this wasn’t possible because the entry for my phone was a blank line in the list.

We tried everything and in the end the one thing that worked was disconnecting ALL phones, finally disconnecting mine and reconnecting all of them again.

My wife was NOT happy about that while I was simultaneously laughing at the bug and panicking because I messed up her company car.

My tester senses tell me that BMW used a storage format which broke on the “;” in my phones device name (some kind of CSV file probably).