1、定义
软件测试(QA)的定义无比简单:所谓软件测试,就是一个或者一系列过程,确保软件可以完成了该完成的功能,不执行不该有的操作。
2、开发眼里看测试
身为开发,恐怕没有几个人会乐于常常和测试打交道。原因很简单,无非就是测试会站在一个第三者的角度上将一些你写的代码中一些(他认为的)漏洞揪出来,而且像讨债一样催着你赶快fix。而很多开发则会认为测试的case很多是完全逻辑不通甚至反人类的(比如总是用一些非常极端的,甚至几乎不可能出现的情况作为测试case),属于非常不合理的考虑。造成这种现象的主要原因是双方面的,其一是测试人员未必能充分了解代码的运行环境和调用上下文,很难准确地掌握真正应该重点测试的关键点,其二是开发人员在经历千辛万苦写完代码之后,很容易陷入已有的思维定式,难以用旁观者的眼光从另一角度思考问题。事实上,多数情况下测试工程师的工作还是卓有成效的,为研发工程师发现了许多难以靠自已review代码发现的问题。
如何解决这个问题?除了测试工程师在开发中、提测时、测试中和测试通过时多与研发工程师保持沟通之外,更有效的方法是研发工程师最好可以借助职业QA的思想,跳出自身开发之后形成的思维定式,将多数潜在的bug消灭于萌芽状态。所以,个人认为,只有懂得测试的研发工程师,才是真正的好研发工程师。这也是我开这一分类的主要目的。