QA 和 QC 的目的不同,QA 是跟软件开发站在一起的,为 了提高软件产品的质量和开发效率服务的,而 QC 看起来站在软件开发的对立面,专门来为软件产品挑刺的。做好 QC 工作很容易,安静的给软件产品找缺陷,每 个阶段做什么事情也有流程规范,照着做就行。可是做好了 QC 工作,对软件质 量提升的帮助是很小的。我们都知道,质量是设计出来的,不是测试出来的。 经过多轮回归测试,最后软件产品的缺陷满足了公司的缺陷率标准后,软件产 品的质量有保障了吗?没有。如果需要经过超过一轮回归测试才能达到公司的缺陷率标准,很明显该产品的质量保证体系是很薄弱的,是不堪一击的。达到 了公司的缺陷率标准,只不过因为还有缺陷没有被发现而已。好的质量保证体 系,需要在一次回归测试就能够达到缺陷率标准,每次回归测试都在质量标准
内。
所以,做好 QA 工作很难。在敏捷开发中,通常团队中的每个人都要参与
QA 工作,而每个团队中,都有一个人主要负责 QA 工作,这个人通常也被称之
为“QA”