In this instance I am specifically talking about the area of finding bugs and how it makes me feel. I often find myself not knowing how to feel and therefore have mixed emotions when I discover a new bug.
The bugs are always there so why should I feel differently each time I find one? A lot of it is dependent on the context.
- The type of bug (e.g. functional/security/user experience)
- When was it discovered? (at what point during the release cycle or at what point since it's creation)
- How reproducible is it?
- How much of a customer impact would it have?
- Is is a recurring bug? (is the same developer failing to fix it properly?)
- In what environment is it found (e.g. test or live)
Some examples of how I feel when discovering some of these different types of bugs are below.
Sometimes I feel proud of myself for catching something which would have had a major customer impact but which is not immediately obvious. It can then be fixed so customers will never have to experience it. On other occasions I feel disappointed that I didn't spot a bug earlier and I start beating myself up. The further through the release cycle we are when I find a bug the more I start to question myself as to why I didn't find it earlier. I can get quite excited when I find an obscure bug which exhibits unusual behaviour. I can get wound up when I find intermittent bugs as it can be very frustrating being unable to reproduce something I saw moments earlier. I can even almost convince myself that I imagined seeing it.
I think over time and with experience the emotional side of discovering bugs will diminish, not to say I will lose enthusiasm for testing. I can't see there being a downside to the positive feelings one gets when revealing new bugs. However, I expect the negative feelings associated with finding a bug to turn themselves more into constructive thinking and consequently taking action. For example when I find bugs later in the release cycle I will work out how I can lessen the chance of this happening in future. Perhaps it is a bug which I would have found if I'd seen it on a developer machine earlier in the life cycle. Maybe I can improve my note taking skills so those unreproducible bugs become easier to replicate (I'm sure some of these bugs do still disappear for no apparent reason though!)
My take home message for this blog is that you can never be certain of eradicating all bugs in a system. If that makes you uncomfortable then perhaps testing is not for you. Referring back to the title of this blog, you must embrace uncertainty and use the associated feelings in a positive and constructive way if you wish to enjoy and flourish as a tester.