白盒测试不是测试,更不高级

测试不单单是软件概念,但白盒测试仅仅是软件概念。html

  上面这句话足以说明白盒测试不是测试,至少不等同于测试。框架

  认为白盒测试更牛逼的一个经常使用论据是白盒测试须要对代码自己更高的熟悉程度,但说这样的话的人每每没有搞清楚测试究竟须要什么样的技能。测试首先须要的是良好的测试逻辑,其次才是对产品自己的了解。ide

  给定现象,给定需求,可以准确判断现象是否符合需求,这就叫作测试逻辑,好的测试人员可以体察模拟客户的真实体验,无比贴近地模拟出客户的判断。对产品的深刻了解可以帮助测试人员更准确地设计测试用例,更高效地执行测试用例,好的测试人员对于产品的功能、性能有着不下于产品经理的了解。此两者是测试人员所需的两个重要的技能。性能

  当局者迷旁观者清,好的评论家每每不会出自一件产品的做者。畅销小说改编的电影每每收获差评如潮就是这个道理,由于咱们有太多对细节过于了解的先入为主的影评家。他们对电影背后的脚本、细节有着很是接近真相的了解,但却不是站在观众的角度而是对立面。测试工做也是这样,客观的态度保证测试逻辑的不偏不倚,而产品的细节并非产品自己——一件产品作什么才重要,怎么作的根本就不重要。单元测试

  回过头来讲白盒测试,白盒测试所测试的并非产品,而是实现软件产品的代码自己——注意这是两个层次上面的概念——这也是为何白盒测试的概念仅见于软件产品。不客气地说,黑盒测试,也就是通常意义上的测试,比白盒测试有更普世的技能需求和适用范围以及更高的产品视角。白盒测试,充其量是单元测试,优秀的白盒测试者,除了证实他是个比较好的代码reviewer之外,实在不能说明任何其余的价值。放到IT以外的行业里,对一件产品的白盒测试就意味着,对这件产品的实现方式进行测试,也就是更底层的测试。若是说白盒测试和黑盒测试都是测试,那么测试就变成了这样一个概念:测试

  测试=黑盒测试+白盒测试=黑盒测试+更低一级的测试。这是一个能够无穷无尽扩展的等式,也就意味着无穷无尽的工做量。也就只有软件行业,对代码一级的测试代价小,且再低一级的测试无心义(操做系统、软件框架等成熟第三方解决方案),才会出现这么一个奇葩。操作系统

  IT行业真的是个奇怪的行业,你再也找不到这样一个行业,他们以可替换性强的技能工种为荣,以此做为其余同事工种的批判标准。你能想象一个建筑工人以“你连用什么顺序砌砖墙才会最结实都不知道,凭什么来监督咱们?”为由嘲笑质量监督?设计

  这里能够。htm

  P.S 什么?以为我说程序设计是“可替换性强的技能工种”有失偏颇?请不要自视太高。大规模产品上,良好的管理和合做比任何天才都来得有效,在任何行业都是如此。一个天才,一生都没法独立写出Office这样的软件,你赞成么?但一个天才项目经理加上足够的资金和劳动力供应,就能够办到。get

  注:本文只表明做者我的观点。