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


  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...

  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!!!!!

  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......

  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...


Post a Comment

Popular posts from this blog

Story Points estimation for Scrum with Fibonacci vs Shirt Sizes vs Linear - 7 minute guide

It is all began long time ago when Development Teams were constantly asked to provide estimate and they were having a hard time to properly face the task. Let's admit it, there are so many things that can change, happen, and simply go wrong during the development process that one can hardly expect a proper estimation of hours for each task. That why a relative estimation with Story Points came along. Story Points Estimation Its a different way to estimate the effort of the Scrum Development Team with-in Agile methodology, which means that instead of estimating hours of work the team estimates each effort relatively to other efforts in the project. Let's assume that a developer knows that specific 'Task 1' is much harder than another 'Task 2' it is hard for him/her to quantify that harder feeling in hours of additional work but it is possible to say that it much more work. This situation is being address by Story Points when each story point is

7 Most Popular Test Types in Software Testing

Today we are going to return back to basics of software testing and discuss the 7 most popular test types that are being used in every software testing effort. Those different test types cover all the levels of the software to make sure that the final result matching the expectations from every possible angle. Here is our list: Unit testing Smoke testing Regression testing Functional testing Integration testing User Acceptance Testing Performance Testing Now let’s have a deeper dive into each one of those by using a simple example of an imaginary system that was created in order to manage warehouse activity including shipments, inventory and goods receptions from suppliers. Unit Testing This type of testing is usually performed by the developers and is covering the very basic development component. In this test developers are testing the straight forward functionality of a functional piece of code to make sure that it is performing according to th

What is the velocity of an Agile scrum methodology?

Let's discuss some of the important measurements in Agile, and that is the Velocity of the Scrum team work. Based on Wikipedia definition Velocity is " ...the rate of change of its position with respect to a frame of reference and is a function of time...", which when transferred to the scrum world can be summarized as: The amount of work that the scrum team completed in a single measure of time - in a sprint. How we Calculate Velocity? Velocity is actually a very simple to calculate, it is done but totaling the number of story points of fully completed user stories from the sprint backlog. So if a current sprint included 4 user stories: 2 with 8 story points each, one with 3 story points and one with 32 story points. and by the end of the sprint the 32 one was not fully done the velocity calculation will be: 8+8+3=19 Note: the 32 story points are not part of the velocity calculation as this user story was not completed. What Velocity is used for? The v