There isn’t a nice way to say this, but having a dedicated software QA team is a waste of time, energy and money. This is especially true if your QA team is comprised of non-engineers. I am not trying to be facetious or provocative, I am saying this having witnessed ineffective QA teams in action at organizations of various sizes. These experiences left me questioning the purpose of having a QA team. Sure, we’ve all learned from various teachers, peers, textbooks, consultants and speakers that the purpose of having a QA team is “to catch and prevent software defects before a product or service is delivered to clients,” but is this really true?
A few years ago I joined a young startup and within the first few weeks it became apparent that writing automated software tests was considered an optional endeavor. A senior engineer even said to me, “I don’t believe in automated software testing.” I was shocked and wondered what I had gotten myself into. After a few more weeks I realized that my teammates and the management team did not understand a) the purpose of software testing and b) what constitutes an effective software test. Without understanding both it is hard to imagine software testing having much value.