Skip to main content

What is Quality Assurance?

What is Quality Assurance (QA) in the software development world?

This one will be the most popular question,with the widest variety of answers, which by its own gives me a good reason to answer it.
So, I will start with dictionary(Wikipedia) definition:

Quality assurance, or QA (in use from 1973) for short, is the systematic monitoring and evaluation of the various aspects of a project, service or facility to maximize the probability that minimum standards of quality are being attained by the production process. QA cannot absolutely guarantee the production of quality products.

By large this is a nice definition, though it has two issues that need to be discussed further more:
1.minimum standard of quality.
2.quality of a product.
But before we go there let me say something about "assurance"
I have a friend in software development industry which used to treat Qa as a nice-to-have luxury, that means that only if he had an extra budget on specific project then, and only then, QA been hired pretty closely to the release date in order to execute some tests of the system. That approach gave him a really bad results, though he was all about blaming developers for not being good enough. In one of those BBQ conversations we had our Qa discussion, where I did my best to present to him my views on the subject:

"As you expect from the police force to be on the streets all the time to verify that the law is kept and to assure, us - citizens, that we will have an almost perfect and peaceful lives. The same way you expect that your Qa team will be there throughout your project to verify that you are heading toward almost perfect model of client needs and that quality is assured during the live of the project up-to a moment when it gets to the client"

Fortunately my friend agreed with me then though he had an expected question:
Assuring the quality "all the time" it's great, though it is a very costly process, how this quality assurance can be achieved in the limits of a project's budget?

To answer this question we have to go back to our original issues: minimum standard of quality, and quality of the product.

QA is all about achieving the maximum of quality in minimum of time. Now how we are going to do that? We should defined what the "quality of a product" is:
Quality of a product is how close we can come to the perfect model of client's needs.

Coming from that definition the "minimum standard of quality" will be dynamic thing which will be client dependent.

Some time ago I consulted a client that was building an e-commerce web site and what he needed is to have this easy-to-use, nice looking, smooth working web store. When we discussed with him his perfect model of his new site that was exactly what he told me:
"I want it to look nice, and to be assured that my web-store visitors will feel comfortable throughout their shopping experience, I want them to want to come back!".

For sure it was a great description of his needs, from client's perspective, but it's obviously wasn't enough information for a Qa person to work with.

So on the initial phase my job as QA consultant was to work with the client and extend the model of his needs by pointing out things like: there are different transactions methods for the credit cards, and different levels of hosing which will affect the security testing. More-to-that the functional testing should take into account decisions regarding the way the product should be presented, and how comfortable this presentation can be for the customers and many more.

Eventually after several meetings and discussions we came up with detailed perfect model that the client could be happy with. This model have been great source of information for the development team, and gave the QA team the required guidelines to plan the testing effort.

On the second phase of our effort we needed to determined what was that "minimum standard of quality" for that project. To do that we went through our new model again and marked how imported each feature is and came-up with a reasonable testing plan for each phase.

To summarize this subject Quality Assurance is all about verification that the product is as close as possible (from technical and budget perspective) to the perfect model of clients' needs.

Improve your Quality Assurance results, visit Broad Sky Inc

Comments

  1. I like the general idea but i completely disagree with the police style approach. QA people are not policemen, they just do verification of the software...

    ReplyDelete
  2. Hey, I think there is no such thing as "perfect model of clients needs", and you can't even get close to such a thing as this is unreal!!!!!

    ReplyDelete
  3. Hey Ferry, for sure QA should guard the development process thats why I see them as policemen of the industry, let's call it more metaphoric approach......

    ReplyDelete
  4. Mohad,
    Every DREAM is unreal but we need them to create our goals that what moves us forward, that exactly the idea of "Perfect model" to create such goal...

    ReplyDelete

Post a Comment

Popular posts from this blog

Proper QA estimation in Agile project

  Today, I want to chat about a common issue in Agile development – story point estimation. You see, it's easy to get caught up in estimating how long a feature will take to develop and forget about the crucial Quality Assurance (QA) effort.  It happens to often: your team is in the middle of sprint planning. New user stories are being discussed, and estimations are given, but there's a catch. You've estimated the development time perfectly, but you've barely even glanced at how much effort QA will take. Why? Agile talks about Development Team and you mistakenly thought that it is all about DEVELOPMENT. Sound familiar? Trust me; it's a more common scenario than you might think. So, what's the big deal? Well, when you leave QA effort out of the equation, several not-so-great things can happen: Vilocity can suffer: You might think you can squeeze more into a sprint than is humanly possible, setting your team up for disappointment and overcommitment. Quality can de

Performance testing vs Load testing vs Stress testing

Today I want to discuss a popular topic regarding a difference between Load and Performance testing. Those two types of testing are commonly used together but there are several key differences between the two. To get a better understanding of the topic lets have a real life example from one of my clients and use it to explain the difference. I have worked for a client that was building an in-house web application that provides its customers with an option to select and order different products and services. The request was, before the up-coming release, to test the performance of their product. We started the task by trying and understand what they expect from performance point of view and then went through an exercise of defining what is captured by what test. The client said that they are looking to have about 900-1300 active users on the site at a given moment, and the expected response time (for a page to load) should be less than 5 seconds. With those details what are the t