(那天晚上和江焱风一起吃饭,说到质量管理体系的话题。其实ISO9000就很明白了:质量来自过程和管理,而不是来自检验。)
所 以,尽可能地把测试自动化,这实际上是在积累质量管理体系。这事情分为三个环节:(1)发现缺陷;(2)用自动化的测试案例描述缺陷,以测试案例通过为依 据验收缺陷修复;(3)频繁运行所有测试案例,确保已经被修复的缺陷永不再进入代码库。而朱少民所说的“为追求测试自动化而忘记发现缺陷之根本”的问题, 实际上是一个不存在的伪问题,因为这两件事情分别位于环节(1)和环节(2),彼此正交。朱少民还说“70%缺陷【的发现】还是需要人的智慧和思考”。不 是的,100%都得靠人的智慧和思考。你不想发现的缺陷,它是不会被发现的——当然了用户会发现然后暴跳如雷地来找你,那就是另一回事情了。
总结:QA的工作分为测试、流程制定和流程监督三部分。质量不是靠守门守出来的,而是靠贯穿整个软件生命周期的管理管出来的。敏捷项目为什么容易获得更好的质量?因为它把质量管理落实到每个小时的每件具体事情上,而不是写在纸上。