软件测试方法论——黑盒测试篇(开发观点看测试)

发表于:2011-7-27 13:30

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

 作者:赵凯    来源:51Testing软件测试网采编

分享:

  2、开,暴露问题

  开的主要目的是使用一切手段发现问题,只有先发现了问题,才能找到问题的所在,最终解决问题。开,主要有以下事情要做,那就是:

  ◆ 怀疑一切

  ◆ 换位思考(模拟用户行为)

  ◆ 创造条件,把问题放大

  2.1 怀疑一切

  开讲得是广度,在这里没有什么是不可能的,本着怀疑一切的态度去列出任何可能的甚至是不可能的情况。在此时,要假设拿到手的软件就是一个垃圾,一无是处,而你的任务就是去蹂躏这个软件,用所有想得到的手段暴露出这个软件的所有弱点。基本上来说,怀疑的越多,越容易发现软件的缺陷。有些BUG之所以很难重现,很大程度上就是因为没有怀疑足够多的东西,有些路径没有走到。

  测试之前,肯定都会先写测试用例。对于每一种类型的软件,总有和这种类型相匹配的一些重点嫌疑对象,这些重点嫌疑的东西,要重点测试。Windows上的所有带有用户界面的软件,都是事件驱动的。大多数软件,驱动者就是操作软件的用户;但对于一些网络的软件,例如IM软件,驱动者除了用户的操作之外,还有一个更重要,也是比较容易被忽视的就是网络数据的驱动。有些问题,虽然是在通过鼠标操作时候发生了某些异常,但实际上可能是这段时间内收到了某些网络数据,出发某个流程,出了异常。所以这个时候就要尽可能多怀疑一些情况,然后分别进行有针对性的测试。怀疑的对象越多,离真正的结果就越近。

  怀疑一切,要敢于去怀疑,大胆地怀疑,只有想不到因素,没有测不出来的BUG,更没有重现不出来的BUG。

  2.2 模拟用户的行为

  测试归根到底是模拟用户的行为,替用户把各种可能的操作都做了,把各种问题都提前暴露出来,然后反馈到开发人员手里,修改掉。

  在模拟用户行为的时候,不但要模拟用户正常的行为,更要模拟用户不正常的行为,因为用户完全可能做出一些意想不到的动作。某些流程在开发的时候已经设定好,只要按照这个流程操作,绝对不会出问题。然而到了用户手中,用户的某些操作,完全可能改变流程的方向,从而导致软件产生异常。因此模拟用户的操作是极其重要的。

  模拟用户操作,需要做到覆盖全面。例如一个窗口在正常状态没有问题,但如果在窗口最小化的时候,或者正在拖动的时候,有某些事情发生,是否可能会出问题?类似这种情况,都是应该考虑在内的。

  模拟用户操作,还需要模拟用户端个各种条件,包括软件条件和硬件条件。

  用户行为的各种可能性,可以按照不同种类列出来,然后互相组合,一一进行测试。下图是一个IM产品聊天窗口的用户行为示意图:

  上图看似复杂,而且是一个乘法的关系,很容易被吓到,但实际上即使全部条件算上,基本上也还是一个可控制的范围,全部走一遍是可以做到的。

  当然,实际的应用中,可能比这个要更复杂一些,这时候可以使用表格列出各种条件,互相组合起来测试,问题总会暴露出来。

52/5<12345>
2023测试行业从业人员调查问卷已开启,千元大奖正在等你~

精彩评论

  • blum
    2012-3-15 22:02:24

    真的不错,受益了

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号