通信软件白盒测试的三种境界(4)

发表于:2014-11-19来源:uml.org.cn作者:wayne_chan点击数: 标签:白盒测试
通常,白盒测试能力强的员工编码能力也强,测试能力差的编码能力也差,极少听说测试能力很强但编码很差。所以,要让白盒测试做得更深入、更有效,

  通常,白盒测试能力强的员工编码能力也强,测试能力差的编码能力也差,极少听说测试能力很强但编码很差。所以,要让白盒测试做得更深入、更有效,重点是解决思维方式问题,通过培训、日常锻炼也能起到一定效果,但终归不明显,毕竟项目组内个个都是得道高僧比较少见。根据实践经验,解决这个问题的最有效的措施是测试先行,如果编码之前就写用例,只能依据规格做测试设计了,这对能力强的与能力弱的都一样,思维方式强行改变,其测试无疑是最彻底、最见效的。

  从有序前期阶段过渡到有序后期阶段,如何看待测试代码也有很大变化,在前期,开发是开发,测试是测试,测试操作连同测试代码是附加的,可选的,到有序后期阶段,大家会把测试代码也看成一种产品代码,是必需的,也自然而然纳入产品维护。

  境界之三:自发状态

  自发状态是白盒测试的共产主义境界,此时生产力高度发达,设计用例的效率提高了,做测试不再是沉重负担。所谓自发,就像共产主义社会里劳动是个人意愿而非生存手段,开发人员自测也上升到个人意愿,即使领导不强制,流程也不限定白盒测试必须要做,开发人员仍自愿去做测试。自发状态是白盒测试的最高境界,它的典型表现特征是:白盒测试已成员工的普遍行为与自发行为。

  白盒测试进入自发状态,必须经历两大转变,一是测试效率要有数倍提高,这是基础,二是测试实践能够深入,能有效发现各种问题。目前已有一些公司经历过这两种转变,前者测试效率提高主要依赖于在线测试、持续测试、黑盒调测等理念(详情请见《第4代白盒测试方法概述》中拉通测试小循环、拉通研发大循环、调试转化为测试等章节),而后者有效发现问题,测试先行(TDD)已接受广泛的实践检验。当上述两大转变完成了,白盒测试就成为每位员工的必须行为,就像调试操作,每位员工写完代码,正常都要“调一调”,在自发境界下,随时“测一测”是每位员工自然而然要做的事。自发境界下的一个组织,实际操作中“测一测”很大程度上代替了“调一调”,这时,员工数月不开调试器是常见的现象,因为“测一测”对开发人员来说是让程序跑起来最经济实惠的手段,也是查错、检错最便利的方式,使用调试器并非必需。

  在自发境界下,时时测试、持续测试已成一种风气。另一方面,员工从领导层到基层,都普遍对白盒测试有着深入认识,知道白盒测试应该“有所为有所不为”,企业培养了一批白盒测试专家,他们很清楚哪些被测对象是可以做白盒测试的,哪些不大容易做。即使处于白盒测试最高境界,也并非所有系统都适合完整的做测试,尤其那些严重依赖特定硬件环境的软件层,当白盒专家识别出哪些模块不宜做单元测试或集成测试后,他会考虑替代方案,比如加强代码审查、加强同行评审、为特定接口追加模拟器设计等。

  总结

  本文描述了通信业界的白盒测试三种境界:混沌、有序、自发,这三种境界反映了通信企业在白盒测试领域的一般发展过程。从混沌状态升级到有序状态,核心焦点是要解决测试效率的问题,只要效率提高了,一个组织是很容易从混沌状态进阶到有序状态的初级阶段,接着通过组织结构与流程措施的优化,巩固已有成果,然后着重解决持续测试与深入测试的问题,解决好了就升级到有序的高级阶段,升级的关键在于“持续测试”这个理念的转型。从有序状态进阶到自发状态,涉及测试效率与测试质量的全面提升,操作模式会有很大变化,测试工具是关键,工具不仅方便易用、测试效率奇高,而且要方便让大家从“调一调”向“测一测”转变。

  上述企业白盒测试三种境界,可与孔夫子的人生境界相比拟,孔夫子说:吾十有五,而志于学,三十而立,四十而不惑,五十而知天命,六十而耳顺,七十从心所欲,不逾矩。

  “十有五而志于学”,这是混沌境界,“志于学”三字点出该阶段要做的事,对于白盒测试来说,处于混沌状态下的企业要勇于尝试,否则永远是原地踏步,没有进步;“三十而立,四十而不惑”对应于有序境界,此时白盒测试已找到门道,“不惑”是坚定自己的信仰,持续做下去,持续优化下去,所以,处于有序状态的企业贵在坚持;“七十从心所欲,不逾矩”,这是自发境界,老夫子的从心所欲,并非无限制的为所欲为(要不,孔圣人不该叫圣人,而应该叫神人),关键是“不逾矩”,知道规矩在哪才能不逾矩,才能从心所欲,所以,自发境界下的白盒测试还要“有所为有所不为”。我们概括一下:企业白盒测试处在混沌状态贵在尝试,处在有序状态贵在坚持,处在自发状态贵在自知。

原文转自:http://www.uml.org.cn/Test/200709172.asp