Category: Quality Assurance

Implementing Six Sigma practices for better Quality

In a typical software development and testing projects – Agile and SDLC (Software Development Life cycle) practices are sufficient although to further improve quality beyond a certain extent advanced techniques are required. In this article the discussion is about how six sigma can be introduced to further improve the quality of the software product development and its delivery. For illustration purpose a software organization can be depicted as consisting the following:

• Business
• Process and
• People


In the above diagram improvements cannot be introduced although its enough to deliver the projects as per customer requirements. Six sigma techniques provides the possibilities for further improvements by adding to activities that can be introduced that will also further the overall organizational capabilities. Hence the purpose of improving the quality is just one aspect of overall capability improvements that are possible and can be depicted in the diagram shown below:


It is also observed that due to reporting to client/customer andt changing customer expectations the basic software testing in the SDLC processes is not enough hence additional data needs to be collected in ensuring reporting and also demonstrating quality as per customer expectations. Thus its imperative to improve by training in teams throughout organization and to be familiar with the additional activities to improve quality. These are categorized as below:

• Each team will have at least one six sigma champion – if not team member manager that can be designated.
• The designated team member will perform checks on the following sub-tasks

    • Continuous improvement
    • Maintaining customer satisfaction / loyalty by asking questions
    • Root cause analysis as a process
    • Identifying the performance metrics and reporting QA and development activities to client and stake holders
    • Voice of customer – understanding and establishing the end user/consumer
    • Trend analysis of requirements, delivery and issue tracking
    • Cause and effect analysis as a process
    • Identifying a process to fulfill a requirement and helping in improving it in discussion with client and within organization
    • Identifying and improving by taking special initiatives on poor quality areas


• In addition its possible to build on following capabilities :

    • ISO 9000
    • Project Management

• Further Each project and product development can customize the development process by introducing the Plan – Do – Check – Act process for development activities

• Continue to strict adherence to Agile and other SDLC practices for software development activities

The result of doing the above tasks will result in overall quality improvement.

Further following metrics can be measured:

• Improved predictability
• Delivering the project on time and as per schedule
• Better resource management
• Improved customer satisfaction

In Search of Value in Software Testing

It’s important to value the work done by a Tester. Though a tester will typically create and modify own assets namely the test cases, test execution results these are not necessarily quantifiable in terms of productivity and hence there is need to take help of better metrics. Typically the following are widely used:

• Number of Test Cases
• Test Execution Rate
• Defect Finding Rate

A Testing project consists of Test Deliverables – these include testing and its results. A product is measured in identifying defects in code and is correctly identified by defect rate.

What are the other metrics?
The product quality requires consideration for the other metrics

• Quality of Test Cases
• Quality of Execution
• Quality of Defects

These metrics are a result of what result these produce. Though before we can proceed with the next step it’s important to measure more critical “Quality Metrics”.

To understand the issue let us look at the developer live cycle (SDLC). A Developer spends considerable time in designing the product and identify use cases. The main use case and secondary uses are thoroughly understood and then code logic is developed and implemented. The code is then tested and defects reported. These do cover most of the testing although it cannot be said that all is done. During our testing of small and large test projects it was observed that following additional techniques were required to further improve the testing efforts and add value to testing process. These methods are well known and very useful for identifying the defects and improving overall quality

Root cause analysis using Fishbone Diagram
• Test case documentation standard Checklists
• Verification Checklists
• Preparing the Modular flow (and understanding) of the code.

In the above methods fishbone diagram as shown has shown the maximum benefit:

Fishbone diagram

Fishbone diagram

Having a process oriented approach and applying all of the above techniques the rate for defect finding was found to be improving and quantifiable.

Additional reading can be found here

JMeter Introduction for beginners…

What is Jmeter?

Apache JMeter is used as a load testing tool for analyzing and measuring the performance of a variety of services of web application.

Jmeter is a java based open source software tool.

JMeter can help you to do regression testing of your application by creating test scripts for web services.

JMeter runs in two modes:

  1. GUI mode (which runs on windows)
  2. Non-GUI mode (which runs on Linux)


Use of Jmeter?

JMeter can be used as a unit test tool for database connections, web services, etc.

Jmeter uses to test the load and performance of the web services.

Running Jmeter in GUI mode (which runs on windows)


1. Install Java run time in your PC

2. download Jmeter release.

3. Extract in your specify folder like as C://
run the file (C://jakarta-jmeter-x.x/bin/jmeter.bin)

Start the Jmeter interface, i.e. jMeter windows batch file from bin folder.


How to run JMeter?

Steps to run JMeter are as follows,

  1. Start JMeter windows batch file from bin folder, it will open interface as shown in below:Image
  2. Create your first test plan by creating thread group:Image
  3. Added Thread group:Image

Here thread group consists of 3 main properties,

a. Number of threads(users): It consists of number of requests you want to run in one test plan.

b. Ramp-up period (in seconds): It tells us how long all requests takes time to run. If there are multiple requests, then all requests get run one by one.

c. Loop count: It shows count that all requests get run in how many loops.

All samplers and listeners are involved in thread group.

4. Adding sampler:Image

Samplers describes that “Jmeter sends web requests to server and wait till response comes.”

5. Sampler (e.g: Http Request):Image

In this sampler, you can add parameters to send request to server to run the service.

6. Add listener:Image

Listener,  where test data and result get stored and it displays the output in different ways. Here added listener is “View as a tree”.

7. Run the test plan with result tree:

Now Select listener and run the test plan.Image

In this listener, output gets display in detail with,

a. Sample result: Where load time, sample count get displays to you.

b. Request: What request you send to server.

c. Response data: The exact output comes from server.

8. Run the test plan with result table: Here, table shows all results in tabular form with no. of requests and average time for all requests.Image

In this way your simple test plan of a web service get executed.