Skip to main content

The Defect Dance

When you find a defect in your test environment, it's always a nice feeling. You've managed to discover something that likely no one has discovered before.

When you discover a defect, what do you do next? Do you just raise a defect, after all the team needs to hear about how awesome you are, do you speak to a developer.... Here's a handy little guide that you can use to ensure that you are as effective as possible as a QA.

Ask yourself the following questions:
  • Is the bug reproducible?
    • If the answer is yes, then you've found a bug! 
    • If no, then I find it useful to make a mental note of the issue in case it happens again...
  • Is the bug in live?
    • If the answer to this is yes, then search the bug database, it may already have been logged, if it hasn't then raise a support issue or raise a bug, depending on what the company procedure is :)
    • If the answer is no, then still, check to see if the bug is a reoccurring bug and if it had been fixed previously and broke again, if the answer is yes, then raise a new bug and ensure there is an associated test case created to catch the bug again, if no raise a defect :) 
    • If it isn't a reoccurring bug then ask yourself (if you have domain knowledge) and speak to a developer, can the bug be fixed quickly, if it can then just liaise with the developer over the bug and let them fix it without raising a bug (there will be more about this in later posts, over when to raise a defect... ) if it can't, then go ahead, log a bug!

I've tried to summarise the above in a quick flow diagram below...


Obviously this won't work for every company, for example: if you're working on a brand new feature, the bug won't be in live so you can skip  that step...  However, I think it's a pretty useful set of questions that can help you decide what to do with a defect.

If anyone has anything to add to the defect dance or if you think there's a step that doesn't necessarily need to be there, then let me know! :)






Comments

  1. I actually tried to make a similar version of defect dance, based on your idea. This is how it looks http://i.imgur.com/s65MaqE.png

    It is not very far from what you have!

    ReplyDelete
    Replies
    1. Cool! I must admit though, I'd spend a bit more time if I can't recreate it first time, as I mentioned in future blog posts explaining why etc.

      Delete

Post a Comment

Popular posts from this blog

What is a PBI?

After my last post, I had the question of what is a PBI... so I thought i'd write a short blog post about what they are and why they are used.

A PBI is an acronym for Product Backlog Item. It is a description of a piece of work that your SCRUM team will develop and deliver. When you have a list of Product Backlog Items, you then refer to that collective list as a Product Backlog.

The product backlog is often prioritised and yourteam will work through each PBI, and release on a regular schedule... I am however going deep into the world of Agile development, which isn't entirely what this post is about, so I will stop myself now.

A Product Backlog Item is made up of the following:

Title - This is often a one liner that gives the team an idea of what the PBI is about, although it can just be an ID for the item and the team work off of that.

Description - Breaks down the PBI in a bit more detail, and can be written in any style, however I prefer it to be written as follows: 



By writin…

Dealing with Selenium WebDriver Driver.Quit crashes (Where chromedriver.exe is left open)

We recently came across a problem with Selenium not quitting the webdriver and this would then lock a file that was needed on the build server to run the builds.

We were using Driver.Quit() but this sometimes failed and would leave chromedriver.exe running. I looked around and found this was a common issue that many people were having. We (I say we, as we came to the solution through paired programming), came up with the following, that would encapsulate the driver.quit inside a task and if this task takes longer than 10 seconds, then it will clean up any processes started by the current process, in the case of the issue on the build server, it would kill any process started by Nunit.

[AfterTestRun]
        public static void AfterTestRun()
        {
            var nativeDriverQuit = Task.Factory.StartNew(() => Driver.Quit());
            if (!nativeDriverQuit.Wait(TimeSpan.FromSeconds(10)))
            {
                CleanUpProcessByInheritance();
            }
       }

        private s…

Famous Movie Quotes applied to Software Engineering - Jaws

You're gonna need a bigger boat? How can that relate to Engineering?

Firstly, let me ashamedly admit, that I've never seen the whole of Jaws all the way through. It's on my list of films to watch, but whether I get round to it, is another matter!



Anyway, to apply this to engineering, it's almost like "you're gonna need more testers/developers"...

We hear this all too often when trying to push releases out the door, let's throw men at it... However, as we all know, a bigger boat/more men... isn't always the answer, it's not a guarantee of quality, or even a guarantee of getting things done quicker.

If you have a task that will take 2 hours, simply having 2 people work on it doesn't mean that it is halved, in fact often, the time taken to do the task remains at 2 hours, but the maintainability and the knowledge around that area is increased, so it's a price, in my opinion that is often worth paying.