(续前)
检验其实是等于准备有次品,检验出来已经是太迟,且成本高而效益低。正确的做法,是改良生产过程。
很多人分不开QA和QC的区别,甚至在教科书中也往往把测试叫做QA,但事实上两者是有很大区别的。
QA全称是Quality Assurance,直译即质量保障 —— 避免生产质量不达标的产品。而QC的全称是Quality Control,直译即质量控制 —— 避免让质量不达标的产品出厂。两者看似没区别,但实际上却是截然不同的两种管理思想。质量保障的目标是把任何质量问题消灭在尽可能靠前的环节,甚至会一直前推到员工招募、原料采购这样的环节。而质量控制的目标则是局部的:不要让它出厂就好,哪怕生产过程中有浪费也无所谓。
而在软件开发中,我们常见的测试人员其实是QC的角色,不过,甚至连老外都在把这个职位叫做QA Engineer,但要明白,这种叫法是不严谨的。而QA则是更高一级的角色,它们关注的是开发流程,特别是对开发流程的裁剪和定制化,比如对CI等开发环境的评测与改进,开发规范的制定和改进等。
在敏捷开发中,QA的角色实际上是由Scrum团队来完成的,而且这个角色应该在Scrum团队的职责中占据重要地位。当然,基于Scrum的组织原则,这并不意味着Scrum中必须有一个专职的QA,不过团队成员中这方面的经验和能力是必不可少的。