What is QA?

This is something that is discussed a lot of Twitter, sometimes defended strongly and sometimes turned into humour. The situation still doesn't appear to be changing though. In my opinion its very straight forward, Quality Assurance (QA) is not Testing nor is it the stage or step that takes place during a project to determine the quality of a product. I believe the current use of such terms is damaging to both QA and Testing, one can exist without the other, in saying that though, if Testing was happening, then one could easy say that the companies approach to QA is to have a Testing stage. However an approach to QA could not have a Testing phase at all. QA, as mentioned is widely used throughout the software industry as the acronym for Quality Assurance, the stage in developing software were we assure the quality, where an individual or a team lead/manager stamps the product with a seal of quality.

“I QA Spokesperson, hereby state that the quality of the product has been assured, I have signed it so”.
That's some impressive work these individuals or teams take on, they must have spent weeks even months painfully trawling over all the available data, they must have done the following and more:
  • Gone back and interrogated the BA/PO’s, “You, is this what you really wanted, IS IT! You better not be lying to me, John! Bring in Sarah, she will make them talk! 
  • Cross references the written requirement to ensure they were indeed what the BA/PO stated they wanted. Ensuring they are all present and correct and of course stored in the correct format and in the correct location. Oh, how could I forget then made sure that they aligned with what they wanted the system to do. 
  • Reviewed every line of code, checked every DB table, debugged every build job to ensure its not doing and secret trickery. 
  • Ran each unit test manually, checked that there was enough unit tests. Counted them to double check that the CI server wasn't lying to them or the IDE. 
  • Interviewed all the developers, “Did you fully understand the feature you were writing?” Dev: “Yes I did”. “Oh yea, I bet you did, bet you wrote more code then need though didn't you, changed other functionality that wasn't necessary too I bet, you £$%£”. Dev: “I didn't, I swear”. 
  • Checked every single piece of existing functionality to ensure nothing has changed. 
  • Tested all the new functionality of the product following the release.
I could go on but you get my point and the train journey home is only 1 hour. But what's more important here is that all this has to take place in the stage that’s called QA, because none of the other stages have QA in their title, so obviously nothing can be done in those stages, right? QA is not a stage or a step and certainly isn't a team or someone's role. It’s not testing or checking. So what is QA? For me I use QA to label all the things individuals, teams and companies do to create an environment in which people can work to the best of their abilities and in turn produce quality products. In my view QA can take many forms, I would class the following as QA:
  • Employing talented people in the correct roles for them. 
  • Free tea and coffee, perhaps even biscuits and fruit. 
  • Two monitors, perhaps even three. 
  • A comfy chair. 
  • Having coding standards and reviews. 
  • Doing TDD or having unit tests. 
  • Some form of automated checking. 
  • Flexible working hours. 
  • Fair salaries. 
  • A test team. 
  • Regular team meetings, be it in the form of standups, retros even 1-2-1s. 
  • Continuous integration. 
  • Training and conferences.
All these things plus hundreds more I am sure you could all come up with, in my opinion come under QA. Allowing the employees to work to the best of their abilities in a comfortable friendly environment where they are encouraged to raise their concerns and have them heard. QA as I described it, can take care of itself, I've had the privilege of working at places where QA is in the culture but they didn't know it. There referred to it as testing, in this context a stage where testing and checking was done as QA, as soon as I made them aware of the difference, there was realisation that QA was throughout the whole process. This caused many to realise that some of things they did were in fact QA, subsequently this lead to them studying the impact of such tasks and improving them because of its relation to quality. I can’t help but see this post as a stepping stone because whilst QA is definitely not Testing, I am not sure what I have described is even QA. This requires more thought but I am not sure QA even needs to be a “thing” any more. What I have described as QA isn't assuring quality at all, its trying to embed quality into employees, processes and subsequently the product. So there is certainly work to be done to stop testing stages and test teams being referred to as QA, but for the future of QA?

“QA is Dead!” or atleast “QA is severely wounded”

9 comments:

  1. I don't think quality can be assured (by a responsible tester) by any definition of the term. Our job isn't to introduce confidence in quality, it's to expose the reality behind any illusion of quality. Quality Assurance seems to me to be the same as marketing, and in that sense it's the opposite of testing. The only difference between QA and marketing seems to be that we sort of expect marketing people to lie - and what company needs to market to itself?

    ReplyDelete
  2. Carsten Feilberg21 January 2014 at 10:28

    Quality Assurance, as described in tedious details by the ISO9000-series, is about processes: describe (incl. updating) and enforce processes so that you know how you produced your product. In that sense QA is the work of making sure that peer reviews are done consistently, that unit tests are created, that a spec is written, reviewed, updated etc.
    QA is, as you say, not testing, as testing looks at the product and it's usage. QA deems that quality is assured by having everybody do work according to agreed procedures. This makes sense in industry, for example, which is what the ISO-standards origined from. An example is, that quality is assured by having someone measure the dimensions of every 1500 screws produced. If the measured screws are within the acceptable tolerances, the 1499 screws produced since last measurement are likely of the same dimensions. In that sense, QA looks for consistency in production procedures, and documents compliance or dis-compliance with a defined "quality". This provides opportunities for traceability (to every batch of 1500 screws), and "knowledge" based on following procedure. It looks like testing, but is focused on processes rather than the product. In case the batch of screws must be discarded because they do not comply with the acceptable measures, the procedure will either prescribe recalibration of the production platform, or call for more frequent measurements. The base idea is still, that if the process is good, it will produce items of "quality".
    As for producing software, that's not industry, but craftmanship, so the value of QA is not as big there. Enforcing some procedures, like peer reviews and conformance to coding standards, may be valuable, of course, but that's about how far QA will take us.

    But the simple distinction is: QA is about processes. Testing is about the product.

    ReplyDelete
    Replies
    1. "QA deems that quality is assured by having everybody do work according to agreed procedures"

      Do you believe that having everyone do work according to agreed procedures does actually assure quality?


      "QA is about processes"
      Which processes is it about, and what does QA have to do with them? And do you believe that involvement of QA in those processes actually assures quality?

      "Testing is about the product."
      Is it? Here's one view of problems in project processes as a reportable test result: http://www.developsense.com/blog/2011/09/testing-problems-are-test-results/

      Delete
    2. I agree Carsten, but unfortunately I have worked and heard of so many places referring to stage/step as QA where they mean "we are going to test it". That's my concern.

      If they stopped doing that they would realise the importance of both in whatever form they take.

      Delete
  3. One time, this company hired me as an Inspector. They hired me to help them “build better things”. This company made things not of wood or plastic, but of ones and zeros. The process they used to make their things was roughly:
    1) A Customer would describe a desired thing to a Writer
    2) The Writer would write down the description of the thing
    3) A Builder would use the description of the thing to build the thing
    4) An Inspector would compare the description of the thing against the thing itself, and also use their brain to inspect other aspects of the thing that were not explicitly written down in the description of the thing
    5) The Inspector (me) would then provide their findings to the thing Owners and let them decide what to do

    What was I doing? Quality Assurance? Quality Control? Testing? Checking? Verification? Validation? Some of those things? All of them?

    Another time, this company hired me as an Improver. They hired me to help them “build things better”. This company made things not of wood or plastic, but of ones and zeros. The process they used to make their things was roughly:
    1) A Customer would describe a desired thing to a Writer
    2) The Writer would write down the description of the thing
    3) A Builder would use the description of the thing to build the thing
    4) An Inspector would compare the description of the thing against the thing itself, and also use their brain to inspect other aspects of the thing that were not explicitly written down in the description of the thing
    5) The Inspector would then provide their findings to the thing Owners and let them decide what to do

    I suggested that they get more Inspectors involved during steps 1, 2, and 3. The Inspectors had a different perspective than the Writers and the Builders. Therefore, the Inspectors could potentially help as the Customer described the desired thing to the Writer, as the Writer wrote down the description of the thing, and as the Builder built the thing.

    What did I suggest? Quality Assurance? Quality Control? Testing? Checking? Verification? Validation? Some of those things? All of them?

    Yet another time, this company hired me as an Inspector and an Improver. During the hiring process, I noted that the hiring process itself was “broken”. After I was hired, I provided my findings to the hiring process Owners and let them decide what to do.

    What did I suggest? Quality Assurance? Quality Control? Testing? Checking? Verification? Validation? Some of those things? All of them?

    This morning as I got coffee, I noted that the chalkboard sign contained a misspelling. I provided my findings to the chalkboard sign Owner and let them decide what to do.

    Does it really matter what I call any of this?

    ReplyDelete
    Replies
    1. "Does it really matter what I call any of this?"

      http://www.developsense.com/blog/2013/04/semantics/

      Delete
    2. I remember that post. I replied to it back then. I guess I'm just tired of arguing semantics and interested in discussing substance.

      Anymore, I try to avoid the term “QA”. If someone asks me what I do, I tell them “I inspect computer programs”, or “I help improve the process used to make computer programs”. Sometime I simply say, “I look for things that are bad and try to help make them better.”. If they respond with, “Oh! You mean QC!” or “Oh, you mean QA!”, I say, “Whatever you’d like to call it…” and smile.

      Delete
  4. In 2008 I wrote a blog post on this - Testing Cliches ( http://expectedresults.blogspot.com/2008/09/testing-cliches.html ) - in which I referenced some even older posts that had the Test != QA argument and I said that every test blogger has to have at least one post on this subject. And on it goes

    and yeh, just yesterday we had visitor in the office, I was introduced as the tester and he said "Oh, yeah, QA". I suppose at some point I'll have The Conversation with him..

    ReplyDelete
  5. This comment has been removed by the author.

    ReplyDelete