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.
- 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.
“QA is Dead!” or atleast “QA is severely wounded”