从被测试对象的角度分类,测试方法可以分为黑盒测试、白盒测试、灰盒测试三种,这也是我们最常看到的分类方法。
任何一个程序在测试时都由这几部分组成:输入、程序的处理过程和输出三部分,如图1-1 所示。黑盒测试是指在整个测试过程中只关注输入和输出,如果输入一个测试数据,输出的结果是正确的,我们就认为这个功能是正确的。如输入测试数据(2,2),结果如果输出为4,就认为是正确的,其中程序是如何处理的,测试工程师并不关注,这里有可能是2×2、2+2,也可能是22。当然如果不知道程序是怎么处理的,那么再另一组数据后,可能得到的结果就不一定正确了,如输入(3,3),那结果就不一定会正确了。
白盒测试与黑盒测试不同的地方是,白盒测试不仅仅关注输入与输出的结果是否正确,同时还关注程序是如何处理的,同样是上面的例子,输入测试数据(2,2),白盒测试不仅仅关注测试结果是否为4,同时还关注这个程序的内部逻辑处理过程。
关于黑盒测试和白盒测试其实还像社会的两种人,黑盒测试就相当于黑道,白盒测试就相当于白道。黑道的老大如果要解决什么事情,他们会派下属去处理,并且老大只关注结果,至于中间是如何处理的,与他没有关系。而白道的人即我们说的公务员,他们对办事的整个流程或法律体系都很了解。举个例子,你亲戚和别人打架了,把别人打了,你第一件事不会去报案,而是联系朋友看法院、派出所或其他的相关部门是否有熟人,因为这些人对法律流程很熟悉&