I have been working on a new project for the past couple of months. The last three weeks of testing prior to release were super intense, and as I was the only QA on project, I have been working evenings, weekends without really much of a break. Over the course of this last testing phase a lot of issues have been found and patched. Finally we released to production and a week later I have discovered a pretty bad bug. When we started to investigate, we found out that I have actually tested a similar scenario prior to the release and passed the test case. I am looking at the screenshots of that test and I see that it was clearly incorrect, but at the time I was running this test - it "didn't click" or raised any red flags as an incorrect behavior. I am really upset about this whole situation. But what crushed the most - is the reaction of my BA, who's opinion I respect very much. He was really frustrated and told me that this was the easiest use case and he doesn't understand how I could miss it and pass the test case. If you ever been in this situation, how do you deal with such failures? I dread coming back to work on Monday, feeling guilty and ashamed :(
Just to add on to Michael's answer,
The thought that 'I' messed up something helps you in realising what went wrong and the realisation that Glad I made the mistake so that I can make sure I won't make the same mistake again helps you grow as a professional.
A good IT professional is not just a person who can code, but can debug
So, that goes for debugging issues in the, process, design, and literally everything. So making mistakes will help you in identify such mistakes and finding solutions In future and thereby helps in your professional career.
Now about the situation, this is a chance to learn many things, few of them could be:
- Realise that, no one talks about this on Monday, they will be busy with fixing the issue and The entire team will have moved on by then.
- It's great that you are in a mindset to take up the responsibility, but this situation is not entirely your mistake
- It shows bad work culture, having a single QA to test a critical customer application that to manually with limited deadline shows lack of planning.
- Try to realise that you are doing more than what you could by pushing your work across weekend, working extra hours to finish the tasks.
- You won't be recognised for your hard work but have self-realization that you did the best but mistake still happens. We are not robots, so don't need to feel bad and blame yourself.
- Learn to prioritise test tasks:
Whenever you have such time constraints, always start with the critical use cases (Business cases). Then, try to cover all the other business cases or test cases that are already being identified. Once all test case execution is done just do a rough exploratory test.
- Talk to your team discuss an action plan, tell them that you are a human too and will have mental blocks when doing so many tasks. Ask them to split the work, and ask BA, Dev and others to pitch in to execute manual test cases when the deadlines are tight.
Welcome to Humanity
Admit the failure, feel bad briefly, move on.
It's hard being human with all the biological reasons behind many of our behaviors.
You will be ok if you start practicing the following beliefs:
- We are all human and we all make mistakes
- We often learn more from mistakes than successes
- The scientific method for improvement relies on being willing to make mistakes
- Admitting and examining mistakes and not covering them up is the way to learn from them
The most esteemed professions - doctors and airline pilots - have found that the inability for 'top smart people' to admit mistakes (and for those who work for them to point them out) leads to:
- infections and deaths in ICUs
- plan crashes
In both cases humans have learned to provide anonymous ways for folks to admit errors done by others - or even more importantly - by themselves - because pride by smart people can be deadly. There are many examples of this in engineering and of course at NASA, with super smart people, there have been some horrendous mistakes and resulting deaths.
So please end the perfection route. No-one is perfect and anyone who thinks they are may have more to learn than most. Also they may be insufferable to work with in my experience.
Not sure this is really suitable for our forum btw.
Perhaps The Workplace stack exchange site would be better.
Personally my Stack Overflow sites have a score over 180,000 (today) but I still practicing saying the following frequently
- I messed up
- my mistake
- I should have known better
- I could have done that better
- I have so much to learn
- I seem to know less the more I learn
- My colleagues are smarter than me and I love that
The more you practice it the easier it gets and also something really surprising happens:
Others really respect you and think you are (counter-intuitively) very smart. Experienced that myself. It's surprising but obviously fun to experience.
You may also find the following books really helpful:
- The Fearless Organization, by Amy C. Edmondson
- Dare to Lead, by Brené Brown
- Mistakes Were Made, by Carol Tavris and Elliot Aronson
- Not Nice, by Dr. Aziz Gazipura
- Perfect Software, by Gerald M. Weinberg
We do testing because some of our colleagues will have made mistakes before us. This is actually expected and is a consequence of us being imperfect human beings. Part of our job as testers is to identify, without rancour, other's mistakes so they can be fixed. Organisations have to accept (or be taught) that testers won't find everything that's wrong with the software and one of the reasons for this is that they will make mistakes themselves, either in the design or execution of tests. We are as imperfect as everyone else.
A lot of the processes we use in our jobs are designed to reduce the mistakes we make but they will still happen. As others have said learning from our mistakes is key to improving.
From a personal perspective I find that when I make mistakes honesty is the best policy. I find that it actually adds to credibility. I do get annoyed with myself sometimes and that's only natural. What I still find difficult to take is the sometimes lack of professional response when something goes through that should not have because someone in the organisation does not understand we are merely the last in a series of failures to find the issue.
Do not be ashamed. Be annoyed with yourself and honest if you think that you've messed up but this should spur you on to improve. If others are unnecessarily critical stand your ground.
This is the situation which can happen with any engineer in a software testing company. Main thing is that "What we are learning from the mistakes".
To avoid this situation in future we can follow below steps:
1. Ask the Product Management team to increase QA in the project if it's functionality is large.
2. Learn each and every aspect of the Application.
3. Create test cases and sort them in Priority.
4. Run the test cases and once each thing is done then spend some time in exploratory testing.
5. Have regular meetings and share progress with your PM team.
Don't feel guilty on coming to office rather than take this situation as an opportunity to improve and be more better.