Tuesday, July 6, 2010

What You See is What You Test!

Testing is a skill and just like any other skill you learn it by practicing time to time. You practice it while you conduct testing on the job, offline when you are not testing, by visualizing different problem and thinking about how to solve them (or find defects) or by learning any technique and tool to enhance your knowledge areas.


Testing includes high level of observing skill. If you are a good observer then you can be a good tester (Off course you will also require other skills in addition!). When you test you observe:
    #1 You observe the behavior of the application
    #2 You observe the process and workflow in which application works
    #3 You observe what's going in and what's coming out
    #4 You observe how application behaves when induced with negative inputs
    #5 You observe how application manage error handling
    #6 You observe how application responds to a failover
    #7 You observe how application works under high load and stress


The key difference between an average and good testers lies in their ability and capability to observe what is being presented to them in a product. You observe based on what you understood from requirement specification or a design document or based on how a application is built and presented to you.


I have seen many times that good testers will find more defects as compared to average testers even if they are provided with same test scripts. The key difference lies in the ability of a good tester to visualize and observe the behavior of the application in addition to just exercising the steps mentioned in the test script. Good testers see more than average testers and they are able to test more conditions and increase their chances of finding more defects.


You can observe and practice following things while testing:
    #1 Observe the behavior of the function. Think whether the behavior of application is appropriate and as required?
    #2 Before executing any step think what are the possible states in which application can move and then check all of them one by one. Once you move between different states then compare the data to see if it is as required.
    #3 Monitor logs and identify any error generated by system. Read and try to understand the error as it may help you identify the cause and check other related scenarios.
    #4 Observe the trend of issues reported. This will help you identify weak areas of the application and help you focus on potential areas around which you may find more defects. 
    #5 While conducting testing whenever you are taken to a new window or screen quickly scan through and identify any other problems in addition to the function tested by you. Even though this may de-focus you from testing your key function at that particular moment but with some practice you can improve this skill area.


What You See is What You Test. It's all depends on you on how far you want to see...

Friday, July 2, 2010

Six Sigma - DMAIC Explained.

Six Sigma is a Performance goal, representing a quality level that meets standards for 3.4 defects per million opportunities.

It uses series of tools and methods used to improve existing processes (DMAIC) or design products, processes and/or services (DMADV). The principle of Six Sigma involves around improving the processes, using statistical measure indicating the number of standard deviations, to a quality level so as to meet and maintain quality standard requirement of 3.4 defects per million opportunities.

The core principle of Six Sigma revolves around discipline and fact-based approach to manage business and its surrounding process framework. In this post I'm mentioning details about DMAIC methodologies which can be used to improve existing processes in a organization.

DMAIC stands for Define, Measure, Analyze, Improve and Control. This is one of the key methodology followed in Six Sigma. I'm trying to explain briefly the key areas covered in the cycle for easier understanding.


#1 Define - This process group is used to:
      1. Define the problem statement
      2. Preparing the charter and goals
      3. Voice of the customer (Pain areas)
      4. Understanding customer expectations e.g. Kano model
      5. Define Process Maps
      6. SIPOC (Supplier Input Process Output Customer) definition



# 2 Measure - This process group is primarily used to measure data for data capturing processes:
       1. Identify key aspects of the current process
       2. Identify Critical to Quality (CTQ) tree 
       3. Stratification of data
       4. Identifying data to be captured
       5. Collect relevant data for analysis


# 3 Analyze - This process group is used to analyze data and identify any findings, trends and causes
       1. Investigate the data collected
       2. Determine what dependencies and relationship between various parameters
       3. Seek out root cause of the defect under investigation (Normal causes Vs. Special causes)
       4. Analyzing data using tools of Six Sigma i.e. Flow charts, Histogram, Pareto chart,Run chart, Scatter Plot, Control charts and Cause and Effect diagram


# 4 Improve - This is used to improve and/or optimize the current process:
       1. Data analysis using techniques such as design of experiments, mistake proofing
       2. Standard work to create a new or future state process
       3. Proof of concept (POC) to establish any changes
       4. Set up pilot runs to establish process capability
       5. Removing Delays, Decisions points and Overheads from the existing processes


# 5 Control - This process group is used to define control parameters and then monitor data based on the parameters:
       1. Define control parameters
       2. Defining and monitoring of thresholds
       3. Continuously monitor data using control charts
       4. Prevention mechanisms implementations
       5. Define contingency and/or Action plan