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

Coding something simple.... or not! Taking a screenshot on error using Selenium WebDriver

I recently wrote a little function that takes a screenshot at the end of a test if it has errored. What sounded very simple at the start turned out to be quite a bit of work, and quite a few lines of code to handle certain scenarios! It's now over 50 lines of code! I'll start with what I had at the beginning, this was to simply take a screenshot in the working directory, we are using SpecFlow and Selenium to run the tests, so we are going to check if the ScenarioContext.Current.TestError isn't null, if it is, then using Selenium, take a screenshot (note the below code is a simplified version of what I had at the beginning). [AfterScenario]         public static void TakeScreenShotOnError()         {             if (ScenarioContext.Current.TestError == null) return;             var screenshotDriver = Driver as ITakesScreenshot;             if (screenshotD...

How to manage resources within new teams?

Working where I work we are constantly spinning up new teams to take on new workloads as business come up with new demands and new features they want developed and tested. The problem with this is how do we ensure the work of the newly spun up team is of sufficient quality. One method is by taking people from other established teams and placing them on the new team. This works great for the new team, but unfortunately it will oftenl eave the established team lacking in a resource whilst they try and fill the gap left by the person who has left. We are seeing this often with our offshore teams, it can be damaging to the team structure and the teams velocity, but try as I might, I can't think of another way around it. It's far easier to take 1 person from a team that is established than it is to build a whole new team from scratch. At least by leaving the core of a team in place, you should be guaranteeing that the new team are aware of any coding standards or any QA standard...

Considerations when creating automated tests

We recently released to a number of teams our automated regression pack that has been worked on over the past few months. This regression pack tests legacy code, but contains a large number of tests.  As a bit of background, a number of teams are working on new solutions whilst some are still working on legacy code. With this in mind we constructed an email with a list of guidelines when creating new tests that need to be added to this regression pack.  I figured that these can be quite broad so should apply for any organisation, so thought it would make an interesting blog post...  So here goes,  when creating automated tests, it's important to consider and adhere to the following: - Think about data . The tests need to retrieve or set the data they need without any manual intervention - This should help them be more robust and easier to run without manual intervention. - The tests need to be idempotent - By making it so that each test is standalone and does...