Software Quality Assurance

Software Quality Assurance

As illustrated below, this is step 5 of Software Development Life Cycle.

Watts Humphrey’s view of SQA is that: “SQA is a valid discipline in its own right and people can be SQA experts without being software design experts. This SQA expertise is what is required to establish a strong quality program. It includes knowledge of statistical methods, quality control principles, the software process, and an ability to deal effectively with people in contentious situations.”

Wheather you are looking to improve quality and efficiency or you need to improve existing test plans and scripts or you are starting from scratch, we can help you get there. We will use our leveraged knowledge, experience, and industry expertise to assess the strengths and weaknesses of your organization. Make detailed recommendations on how to raise your quality bar.

We will work with your team to build and execute a quality plan that meets quality initiatives, including plans and optimizations for product releases.

Leveraging SQA Resources By learning how to leverage your SQA resources, you can help reduce typical testing cycles since there would be fewer problems to find and fix. This means that products can get to market sooner, rather than later, and that customers will be generally more satisfied with the results.

SOFTWARE DEVELOPMENT LIFE CYCLE ILLUSTRATION

Here are three examples of areas beyond testing where we can help you leverage your SQA resources in a manner that will yield tangible results…

Peer Review of the Requirements: One activity that has a huge return on investment is peer review of requirements. Involve SQA in this activity so they can ask the questions like “Is every requirement testable?”

You will probably discover that many requirements are ambiguous and as a result, not testable as written. Keep in mind that every hour of effort spent removing ambiguity in the requirements during the early stage of a project can result in saving potentially 100 hours of effort during the testing stage!

Triage: Most organizations have many more defects than resources to fix them. And developers generally want to fix those defects that are “interesting” or are related to their own code, rather than those defects that impact customers most directly.

A Triage Team is empowered to review all defects and decide which ones need to be fixed – because they impact customers – and which defects can be deferred. This approach helps make more effective use of resources – for fixing defects and for regression testing.

SQA can play a key role as part of the Triage Team by bringing the customer’s perspective to the discussion. Of course, this requires that SQA have “domain knowledge”, that is knowledge of how your customers are using your products.

Root Cause Analysis: Customer Reported Problems (CRPs) are the most important type of defects that you have. You need to understand what you did not understand about how customers are using your products that has led to CRPs.

This understanding can result in changes that can prevent recurrence in future releases. Clearly, this is an important role for SQA since it represents potential gaps in your “domain knowledge”.