“质量不等于测试”这一观点强调了质量管理与单纯的产品测试之间的区别。虽然测试是确保质量的一个重要组成部分,但它并不是质量管理的全部。
质量不是被测试出来的-----这句看似陈词滥调的话却包含着一定的道理。从汽车行业到软件行业,如果在最开始设计创建的时候就是错的,那它永远不会变成正确的。试问一下汽车行业的公司,大量召回事实上有质量问题的产品,代价是多么的昂贵。因此,从最初的创建阶段就要做正确,否则将会陷入混乱的万丈深渊。
全面质量管理(TQM):质量不仅仅是在最终产品上发现错误并修正它们。全面质量管理强调在整个生产和业务流程中,从原材料采购、设计、制造到客户服务,每一个环节都要注重质量控制。
预防而非纠正:质量更多地关注于预防缺陷的发生,而不是在问题出现后再去解决。这意味着在产品开发早期就要考虑潜在的问题,并采取措施避免这些问题的出现。
持续改进:质量是一个持续不断改进的过程。企业需要不断地评估其流程的有效性和效率,并寻找改进的机会。这种改进不仅限于产品本身,还包括生产流程、服务提供方式等方面。
客户满意度:质量的最终评判者是客户。一个产品或服务是否高质量,取决于它是否满足甚至超越了客户的期望。因此,质量管理工作也涉及到收集客户反馈,并根据这些反馈来调整产品和服务。
文化与意识:质量文化是指组织内部对于质量的态度和行为习惯。在一个拥有强烈质量意识的文化中,每个人都会对他们的工作负责,并致力于不断提高质量标准。
设计质量:质量始于设计阶段。在产品设计之初就应考虑其性能、可靠性、易用性等因素,而不仅仅是后续的测试阶段。
供应链管理:质量还涉及供应商的选择与管理,确保所有原材料和组件都符合高标准,这对于最终产品的质量至关重要。
然而,这句话也并不像听起来那样的简单和准确。虽然质量不是被测出来的,但同样有证据可以表明,未经测试也不可能开发出有质量的软件。如果连测试都没有做,如何保证你的软件具有很高的质量呢?
有一个简单的办法可以解决这个难题,那就是停止开发与测试的隔离对立。开发和测试应该并肩齐趋。你需要在写完每一段代码后立刻测试这段代码,当完成了更多的代码时就要做更多的测试。测试不是独立隔离的活动,它本身就是开发过程的一部分。质量不等于测试,当你把开发过程和测试放到一起,就像在搅拌机里混合搅拌那样,直到不能区分彼此的时候,你就得到了质量。
注意:
质量不等于测试。当你把开发过程和测试放到一起,就像在搅拌机里混合搅拌那样,直到不能区分彼此的时候,你就得到了质量。
在 某些公司,这正是我们的目标,就是把开发过程和测试融合在一起--开发和测试必须同时开展。写一段代码就立刻测试这段代码,完成更多的代码就做更多的测试,但这里的关键是由谁来做这些测试呢?众所周知,在 某些公司,专职测试人员的数量非常稀少,与开发相比根本不成比例,唯一可能的去做这些的就只能是开发人员。还有谁能比实际写代码的人更适合做测试呢?还有谁能比实际写代码的人更适合去寻找 bug 呢?是谁会为了避免受更大刺激而去想办法避免产生 bug 呢?某些公司,能用如此少的专职测试人员的原因,就是开发对质量的负责。如果某个产品出了问题,第一个跳出来的肯定是导致这个问题发生的开发人员,而不是遗漏这个 bug 的测试人员。
这意味着质量更像是一种预防行为,而不是检测。质量是开发过程的问题,而不是测试问题。我们已经成功地将测试实践融入为开发过程的一部分,并创建了一个增量上线的流程。如果一些项目在线上被证实的确是 bug 重重,它将会被回滚到之前的版本。在确保不出现回滚级别 bug 发生的前提下,预防了许多客户问题的同时,也很大程度降低了专职测试人员的数量。在 某些公司,测试的目标就是来判断这种预防工作做的怎么样。
把开发过程和测试混合在一起,密不可分,从代码审核问询时的“你的测试在哪儿”,再到在卫生间张贴着的、用来提醒开发人员的最佳测试实践。测试是开发过程中必不可少的一部分,当开发过程和测试一起携手联姻时,既是质量达成之时。
注意:
测试是开发过程中必不可少的一部分,当开发过程和测试一起携手联姻时,即是质量达成之时。