One Key Metric Should Drive Quality Engineering

quality engineering metrics If you are in an IT organization, you know how important Quality Engineering metrics are.  Gone are the days that you can talk to a few quality engineers and get their gut feel on determining if a software application has a high degree of quality.  It requires a lot more effort and energy and numbers to figure that out.  Quality Engineering metrics are the heartbeat of any IT organization.  While you should have several there is one that you should spend the majority of your time and effort focusing on.  That Quality Engineering metric is: Defects.  Defects tell so much of the story.  Once you are able to gather that metric and classify it you can do some pretty amazing things.

I have had many quality engineering positions over the years and understanding defects is the first one that I put my energy and effort doing research.  I start to ask a few questions:

  1. How does the organization feel about defects?  Is it seen as a positive tool or a negative one?  Do developers take defects personally or do they encourage their quality engineering counterparts to create defects?  This is a really important piece of information because it will help me to understand a lot about an organization and their appetite to influence change.
  2. Are all defects entered into a central tool?  This is necessary so that you will be able to capture all defects and not have to hunt through multiple applications to find them.
  3. How much technical debt does an organization have?  From what I have researched, most organizations carry a good bit of technical debt.  They are reluctant to spend time and energy in resolving defects.  It creates a negative experience from a business perspective and internal customers often have to workaround issues to get their desired result.
  4. Is there a standard for defects?  Once defects are being captured, there are certain criteria that needs to be gathered on each defect so that you can start to see trends and make decisions.  Some of those standards include severity, business priority, root cause, project or sprint, environment, and application.  By gathering this information you can start to classify defects based upon that criteria.
  5. Are defects being captured in production?  This is critical.  This metric will help you understand if the applications are stable, and if defects are being captured prior to a production deployment.  Often, production defects are captured in a separate tool, which makes it very hard to consolidate and gain access to for the quality engineering organization.  If they are being captured, what information is gathered?  Is it possible to tie it to a specific release or feature?
  6. Which teams are finding the majority of the defects?  Once I can get my hands on this information, I find it extremely helpful.  In one of my previous companies, I did analysis and found that most of the defects were being captured by UAT testers.  This led me to infer that they had the most subject matter expertise on the applications that were being tested.  I began to build a relationship with that team, and did several things to help the UAT testers and gain additional knowledge from that team.  The first thing, was to review the test cases they had created.  While they were at a very high level, my QA team was able to gain some valuable information.  We took that information and incorporated it into our test cases.  Second, we looked at their test cases and mapped those to our test cases.  My team had started automating test cases, so let let the UAT testers see the execution of those scripts and they agreed to let us run the regression test cases for them.  This was a huge boost in productivity for them and it really helped to solidify the relationship.

Using this framework, I did analysis on a company where I previously worked and identified a defect leakage percentage of 38%.  This number was mind blowing and really unacceptable. I established a goal to reduce defect leakage in production and set the target at 8%.

Here were some key focus areas when the team spent the bulk of their energy:

  • Reviewed all production defects and developed test cases for those.  Once the test cases were built we incorporated those test cases into our regression suite.
  • Leveraged the information gained from the UAT testers to build robust Quality Engineering test cases
  • Continued to build more test automation scripts so we could spend more energy building and executing test cases
  • Partnered with the development organization and ran our automated scripts sooner in the lifecycle so that we could find more defects upfront

After a year of hard work, the results were impressive.  We were able to get the production defect leakage down to 7%.  This was a huge milestone and everyone was thrilled.  The business was really happy with the improvements and became a fan of the quality engineering team.  While there are many quality engineering metrics that should be captured, defects is the first one that you should start with.

Build Strong Edge Test Cases

build strong edge test casesBuild Strong Edge Test Cases

If you are a software engineer, there is a lot of effort in software testing.  With management demanding more and more quality, there is a strong push to create efficient test cases which prevent defects occurring in production.  In my 15+ years of software testing, I have found that most organizations do a very good job in covering your happy path scenarios.  I have however found that creation of negative test cases and development of edge test cases are very limited.  The main reason for this is that there is often very little time but more importantly, a lack of creativity to build these scenarios.

Creating strong edge test cases requires a very creative mind.  Sure, you need to be able to understand how the system works, but you also need to think outside the box and ask the hard questions in your test case workflows.  If you only go by a rigid set of requirements and never deviate outside of that you aren’t going to find any edge scenarios.  Building strong edge test cases requires solid application knowledge.  For example, it is important to know what will happen when the same user tries to access the same information and perform an update on it.  Will the record get locked?  Which person will update the record?  These are the types of questions that have to be answered.  Here are some additional potential edge scenarios:

  • Have a user login and disable the user to see what happens
  • Have two users try to update the same record
  • Disable the connection between the application and database
  • Have the same user try to login from two different computers

There are many more possibilities when building edge scenarios.  Over a period of time, you can begin to identify these edge test cases a lot easier, and you will begin to see tendencies which will cause these conditions.  Chances are pretty great that if the application will allow you to do something, your business user is going to try it.  These edge scenarios are also the ones that the development team is not typically going to think about, so they often will not program for it, and it will really require some thinking on their part.  These edge test cases will often stir up a lot of controversy, because these are often things that are not spelled out in the requirements.  Some of them will usually result in some significant frustration from a business perspective because it can cause a lot of uncertainty and could impact downstream processes because it wasn’t identified.

Edge test case can also typically be negative scenarios.  They could be automated, but they may not be the best candidates, because they are often complex in nature.  These are the types of things that requires deep thinking and creativity.  The testers that are the most creative, will always strive to get to the edge of coverage and push beyond in order to prevent business users from finding defects.  The good thing about edge testing is that you can perform these types of test in waterfall, agile or other SDLC cycles.

5 Step Install Robot Framework Ride using PIP

software testingIf you would like to learn how to 5 step install robot framework ride using PIP I can provide a simple process and get it installed quickly.  You have probably already installed Python, and most people use pip to make it super easy.  I have outlined the 5 steps below to install robot framework ride using pip.

 

RIDE is a lightweight and intuitive editor for Robot Framework test data.  If you would like to learn more information about the RIDE framework click here.

5 Step Install Robot Framework Ride using PIP

Step 1: Find Install location

Go to the location where you have installed Python.

Step 2: Copy the path of the folder location.

Step 3: Type cmd to open the command line

Step 4: Type cd and paste the path of the directory.

Step 5: Type pip install robotframework -ride and press Enter

5 Step Install Robot Framework Ride using PIP

That is it.  The 5 Step Install Robot Framework Ride using PIP.

 

5 Step Install PYWIN32 using PIP

software testingIf you would like to learn how to install pywin32 using pip I can provide a simple 5 step process and get it installed quickly.  You have probably already installed Python, and most people use pip to make it super easy.  I have outlined the 5 steps below to install pywin32 using pip.

 

If you have not configured Selenium with Eclipse click here.

Python extensions for Microsoft Windows Provides access to much of the Win32 API, the ability to create and use COM objects, and the Pythonwin environment.  If you want to learn more about the benefits of pywin32 click here.

5 Step Install PYWIN32 using PIP

Step 1: Find Install location

Go to the location where you have installed Python.

Step 2: Copy the path of the folder location.

Step 3: Type cmd to open the command line

Step 4: Type cd and paste the path of the directory.

Step 5: Type pip install -U pywin32 and press Enter

5 step install pywin32 using pip

 

That is it.  The 5 Step Install PYWIN32 using PIP has been installed successfully using PIP.

 

Install wxPython GUI Toolkit for Using PIP

If you are starting to learn how to use wxPython GUI Toolkit for Python so that you can get a jump start on developing test scripts using Python with Selenium.  You have probably already installed Python, and most people use pip to make it super easy.  I have outlined the steps below that are needed to get it up and running.

 

If you have not configured Selenium with Eclipse click here.

If you want to learn more about the benefits of the wxPython click here.

Install wxPython GUI Toolkit for Python

Step 1: Find Install location

Go to the location where you have installed Python.

Step 2: Copy the path of the folder location.

Step 3: Type cmd to open the command line

Step 4: Type cd and paste the path of the directory.

 

Step 5: Type pip install -U wxPython and press Enter

Install wxPython GUI Toolkit for Python

 

That is it.  The wxPython GUI Toolkit for Python has been installed successfully using pip.

If you would like to learn more about Selenium click here.

 

Install Python Robot Framework for Selenium using PIP

Install Java and Selenium WebDriverIf you are starting to learn how to use Selenium with Python it is a great idea to download a framework so that you can get a jump start on developing test scripts using Python with Selenium.  You have probably already installed Python, and most people use pip to make it super easy.  I have outlined the steps below that are needed to get it up and running.  This is the first time I have installed pip so you will be able to see the process from beginning to end.

 

If you have not configured Selenium with Eclipse click here.

If you want to learn more about the benefits of the Robot framework click here.

Install Python Robot Framework for Selenium using PIP

Step 1: Find Install location

Go to the location where you have installed Python.

Step 2: Copy the path of the folder location.

Step 3: Type cmd to open the command line

Step 4: Type cd and paste the path of the directory.

 

Step 5: Type pip install robotframework and press Enter

robot framework installed successfully

That is it.  The Python Robot Framework for Selenium has been installed successfully using pip.

If you would like to learn more about Selenium click here.