当我看到王国维先生在《人间词话》中所谈到人生三种境界,我会有一个问题,软件测试这项工作的三种境界又是什么?软件测试的高境界是什么?先让我们复习一下人生的三种境界:

  Ⅰ.“昨夜西风凋碧树,独上高楼,望尽天涯路。”,有远大志向,不同一般人的志向,高瞻远瞩。

  Ⅱ.“衣带渐宽终不悔,为伊消得人憔悴。”,为了自己的远大志向,孜孜以求,努力、勤奋地工作,无怨无悔。

  Ⅲ.“众里寻他千百度,蓦然回首,那人却在,灯火阑珊处。”,反复追寻、研究,专注、下足功夫,自然会豁然贯通、功到自然成。

  三种境界可以看成是一个完整的、成功的人生过程,宏伟目标、奋斗、收获。

  联想到测试,这样的境界也是适用的。但是,如果更具体地看到这个问题,那么如何定义其三种境界呢?

  软件测试简单地说是发现软件中的缺陷,所以从找缺陷的境界看,软件测试的三重境界是:

  Ⅰ.测试过程中,一直渴望发现缺陷,看到别的工程师发现了不少缺陷,但自己是发现不了缺陷,比较迷茫。

  Ⅱ.有了更多的测试经验和技巧,对客户需求也有较好的理解,测试有针对性,能够有效地发现缺陷,并能举一反三,找到更多的缺陷。

  Ⅲ.当水平到了炉火纯青的地步,只要缺陷出现在面前,逃脱不了,而且知道什么地方会存在缺陷,手到擒来,有缺陷想不发现都难。

  当然,软件测试不局限于“找bug”,还要跟踪缺陷、分析缺陷,而且要不断提高测试效率,如引入自动化测试等。从更全面的角度去看,软件测试的境界又如何描述呢?在描述之前,需要说明一下,境界和功能是不一样的,虽然它们之间有关系。能力是掌握了实实在在的知识、技术和工具的程度,而境界更多体现在抽象的形态上,包括心态、思想境界以及处理问题的习惯、自然方式等。下面讨论一下软件测试的三层境界。

  第一境界:测试和人是分离的。测试仅仅是一份工作,做测试是被动的,测试工作往往停留在表面上,别人说什么什么,容易受产品设计人员、开发人员等左右。虽然也会学习一些软件测试知识,但不够深入,不会主动多问自己几个“为什么”。测试过程中很难发现缺陷,发现的缺陷也是比较肤浅的缺陷。发现了缺陷后,也只是报告出来,不会追究下去,不会举一反三。也不会主动配合开发人员工作??挖掘缺陷产生的根本原因。

  第二境界:测试和人靠得比较近。喜欢测试,测试工作中有很强的主动性,开始钻研测试的方法。测试过程中,理解用户的需求,从用户需求出发来指导自己的测试,对实现的功能有自己的理解,不再被开发工程师左右。测试过程中,针对性更强,善于思考,能够采用不同的测试手段来完成测试任务,包括使用测试工具。开发测试脚本来执行测试,提供测试效率。

  第三境界:测试盒人融合在一起。把测试视为自己的一生事业,全身心致力于测试,真正理解了测试真谛。测试不再只是发现缺陷,而是对产品质量的评估,发现产品产生的根本原因,帮助整个开发团队预防缺陷。在工作中,主动和产品设计人员讨论用户需求,帮助开发人员建立设计规范、代码规范,督促开发人员遵守规范。建立良好的自动化测试框架,不仅使测试工作更轻松、有趣,还能助开发人员的单元测试一臂之力。利用业余时间钻研测试,重新思考现有的软件测试思想,树立一套自己认可的思想体系,努力在测试方法上有所创新。这时候,测试不仅出现在工作中,而且出现在生活中,碰到任何一个产品,都会不自觉地检查它,找到它的不足。对生活中的任何对象,都有一种审视的态度,一种积极的看待问题办法,包括提出如何改进产品的建议。生活还是乐观、积极的,而不是抱怨、挑剔,只是看待问题的角度不同,或不会错过任何“测试(审视)”的机会。