51Testing独家连载:(八)软件测试精要

发表于:2009-3-13 17:56

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:董杰    来源:51Testing软件测试网

关键字:软件测试  51Testing软件测试作品系列

本章节为51Testing软件测试网独家连载

2.5  测试中的金矿

  本节的核心思想是把握住“势”,把时机抓在手中,把握住稍纵即逝的机会,取得更大的胜利。测试中有一个现象:不少埋藏较深的bug,正是在偶然地发现了一个异常时,把握住了一个也许是稍纵即逝的机会,深入地挖掘,才能发现。

  在寻找bug的过程中,我们通常都会经历这样一个规律曲线:刚开始进行功能测试时,bug数开始逐渐上升,这是第一阶段。这个阶段的bug种类比较多,从P1到P5都有散布,属于遍地开花的局面,感觉不用花太多精力就可以很轻松地找到bug。

  第一阶段结束和第二阶段开始的标志是bug数开始慢慢减少了,bug不再很容易就能找到。这时就需要测试人员不只进行功能测试,而要把系统测试性能测试、负面测试的武器一起抬出来投入战斗。同时测试人员也需要再多开动脑筋,构造新的前期测试用例未包含的测试方法,依赖在第一阶段中对产品功能和内部原理的熟悉,测试人员可以在这一阶段更好地补充测试用例的方法和策略。

  通过新的测试手段和测试武器在第二阶段的使用,结合测试人员更多的思考,在第二阶段常常可以找到一些埋藏较深的bug。因此,第二阶段的测试工作就很类似于挖金矿的工作,先通过一定的侦察和自己专业的知识经验,找出最容易出现金矿的地方,然后用工具开始坚持往下进行尝试。如果这时发现了一块金子,笔者相信任何掘金人肯定都会更兴奋地坚持往下挖。可是我们在测试时,很多情况刚好相反,当我们在经过一段时间的努力,发现了一个P1或P2问题时,人很容易就松懈下来。虽然很高兴通过努力又发现了新bug,却没有在出现bug的地方再加把劲,再努力地去试图挖出更多的金矿。

  我曾听一位有15年以上经验的测试老兵谈过,大部分严重的bug都集中在少数地方。原因很可能是在软件开发过程中,这里是属于开发复杂度较大的地方,或者某类异常情况处理没有想到,又或者负责该模块的开发工程师经验不够。因此,当我们在这些地方发现了一个bug后,很容易采用同样的测试策略发现更多类似的bug。所以,我们需要像挖金矿一样,只要找到一个bug,就更需要继续沿着相同的方向深入下去,以期挖到更多的“金子”。

  案例:电信网络设备的测试

  因为很多电信网络设备的基本功能主要是数据转发,所以对该类产品进行性能转发功能的测试是非常重要的。通常业内会第一步对该产品进行性能指标的测试,判断是否可以达到产品规格说明书所要求达到的参数。然后,测试工程师会对产品进行长时间的压力测试,这个阶段基本上都会发现比较严重的bug。同样的测试环境和测试条件,连续跑2天流量和连续跑4天流量会出现不一样的bug。

  有些测试人员容易犯这样一个简单的逻辑错误:认为同一个连续跑2天流量的测试方案,跑2次或3次的效果是一样的。可是测试经验却告诉我们,事实上同一个性能压力测试用例跑2次、3次有可能发现的bug是不一样的。假设该性能转发模块潜伏了A、B、C、D、E 5个bug,很巧合的是,当A bug发生了,设备就不会再运转了,因此B、C、D、E 4个bug就不会被发现。如果这时我们就停止了同一个方案的测试,就会把B、C、D、E 4个bug遗漏。所以即使是跑同一个测试方案,每次运行时都有可能出现不同的bug。

  举例

  寻找以太交换机的自身安全性bug。

  在大多数情况下,很多厂商对以太交换机产品很少会进行网络安全测试。因为以太交换机产品的定义中并不包括网络安全测试,主要针对以太交换机的二层功能和三层功能进行测试。即使少数厂家的以太交换机加入了部分网络安全模块,会针对通过交换机交换的数据进行安全性检测,但还是对以太交换机本身的安全性很少进行测试验证。由于以太交换机的广泛应用,大家会发现以太交换机工作失灵的原因不是我们在测试功能时有遗漏,而是大家从未考虑到以太交换机本身会受到网络病毒的攻击。

  有一次在处理市场问题时,我们发现如果持续对以太交换机的网管接口发出半连接的TCP连接,将会最终消耗完所有的TCP连接内存,导致设备最后重启。正是通过来自市场的实际应用问题,启发了我们对以太交换机的网管软件模块重点进行网络安全测试的想法。于是将常见的网络安全攻击测试,如UDP、TCP、SNMP的资源消耗的攻击,以及协议完整性的Fuzzing测试应用到了网络软件模块的测试工作中。

  在对以太交换机的网管模块深入进行这些安全测试后,我们的确又发现了10个以上P1级别的严重bug。虽然我们先偶尔挖到一块“金子”,但却在发现bug的地方不但没有结束测试,反而进行了更大范围的深度挖掘,以至于最终在这块被大家疏忽的地方发现了更多严重的bug。

  综上所述,在实战测试工作中需要在发现过bug的地方比未发现bug的地方花更多的精力,来研究出现bug的地方和触发原因,把握住这个已找到bug端倪的“势”。要抓住产品的弱点不放,争取把握住时机,实现一点突破带动全面突破,将发现bug的成就由小变大,取得最大的成绩。

本文选自《51Testing软件测试作品系列》之四的《软件测试精要》

本站经电子工业出版社和作者的授权,近期将进行部分章节的连载,敬请期待!

版权声明:51Testing软件测试网获电子工业出版社和作者授权独家连载本章节。

任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。

相关阅读:

查看本书介绍 >>

查看本书其 他章节连载 >>

查看软件测试作品系列其 他书籍 >>

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号