您还未登录! 登录 | 注册 | 帮助  

您的位置: 首页 > 软件测试技术 > 其他相关 > 正文

软件测试之探索性测试技术

发表于:2017-01-09 作者:石头哥 来源:

  一、关于探索性测试:
  1、探索性测试不是自由测试,而是需要有一定的方法来指导;这里就像一个旅行者来到一个完全陌生的城市一样,如果没有一个地图或者旅游指南的话,那么可能就会在这个城市漫无目的的转了。
  2、探索性强调测试人员的主观能动性,抛弃繁杂的测试计划和测试用例设计过程,强调在碰到问题时及时改变测试策略。
  二、探索性测试的目标:
  1、理解应用程序如何工作,它的接口看起来怎么样,它实现了哪些功能;(找到软件切入点)
  2、强迫软件展示其全部能力;(满足所有的功能上的需求)
  3、找到缺陷;(树立明确的目的,而不是漫无目的寻找影子)
  三、常见的探索性测试方法:
  1、自由探索性测试:类似于自由测试,效果跟经验有很大关系。
  2、基于场景的探索性测试:这里跟我们上一章分享的基于场景的用例设计方法很类似。
  3、基于策略的探索性测试:这里我们主要是根据对产品的熟悉程度和经验来进行有针对性的测试,目的是很快的发现软件存在的风险
  4、基于反馈的探索性测试:这里是指我们在探索性测试的过程中通过分析当前的质量以及前面的测试情况来指导后面的探索性测试。
  当然, 一个比较好的效果就是我们能够将这些方法结合起来,从而达到效果的最大化。
  下面介绍一下基于旅行者的探索性测试方法吧(以下内容来自于探索式软件测试这本书籍,详细方法大家可以去看看)。
  我们可以将软件的测试比做是去一个城市的旅游。那么我们如何快速的去到我们想去的地方呢?一个办法就是我们对这个城市很熟悉。另外一个办法就是找一个导游或者一份地图,用来指导我们去在这个城市旅游。
  对于软件测试来说,我们同样需要对被测软件很熟悉,同时也需要一份测试地图或者测试指南,来帮助我们更好的探索性测试。
  拿到地图后,我们可以根据地图将城市按照功能分为各种区域,比如:商业区,历史区,娱乐区,旅游区,旅馆区,破旧区等。而每个区域对应软件相应的功能。比如:
  商业区:对应软件包装上面的对应特性,类似我们的需求。
  历史区:上一个版本遗留下来的代码、问题或则曾经出现多次bug的功能或者特性。
  旅游区:对应产品的新特性,能够去更好的吸引新的用户。
  娱乐区:对应软件的辅助特性和功能,可以做完补充测试。
  旅馆区:对应软件内部的一些交互,不一定是由用户来触发的。
  破旧区:对应软件的历史稳定的代码,一般很少人去接触
  那么每个区对应都有那些测试方法呢?
  一、商业区测试方法:
  1、指南测试法:要求测试人员严格遵照手册的建议执行操作。如果是帮助手册,请以完全不了解系统视角严格按照其使用进行操作。
  2、卖点测试法:发现软件最吸引人的这些特性功能,锁定测试范围。卖点测试法的原理取决于销售人员对客户演示过程。
  3、地标测试法:将指南测试法及卖点测试法中的标记定义为一个路标(路标合起来将形成一个列表),当软件将这些路标全部覆盖并记录后,将这些路标合起来就形成了一个路标的列表。
  4、极限测试法:向软件提出很多难以回答的问题。比如:如何让软件发挥到最大限度,哪个特性是软件运行时达到其设计极限等等。
  5、快递测试法:主要关注关键数据流的走向,比如:输入一个数据后,最后该数据会去哪里;
  6、深夜测试法:在晚上的时候,我们的程序还会做那些事情,比如:每晚12点的定时清理;
  7、遍历测试法:选定一个目标(比如:菜单),然后用最短路径来访问这些目标对象,从而遍历完所有的路径点;
  二、历史区类型:
  1、恶灵测试法:在测试的过程中,当发现某一段代码的bug很多的时候,我们可以专门针对这段代码进行遍历测试,通过这样的方法很容易发现改动引发的bug。
  2、博物馆测试法:找到那些遗留和很长时间没有被翻动的老代码,看看在新的环境是否可以运行,比如:某一个脚本可能就直接失效了。
  3、上一版本测试法:对先前版本的更新,运行上一个版本所有的分支和测试用例。确保老的功能还能正常使用。
  三、娱乐区类型:
  1、配角测试法:鼓励测试人员关注某些特定的特性,并将这些特性与主流业务特性放在一个视角来测试;比如:一个菜单有多个选项,我们通常选择第2个选项,那么我们可以去测试第3个选项。
  2、深巷测试法:最不可能被用到的用户特性以及没有被覆盖过的代码;以及将不常用的特性和最常用的特性进行结合起来使用。
  3、通宵测试法:尽可能不关闭程序,让程序一直去运行。比如:移动设备的某一个后台程序可能就是一直运行的。
  四、旅游区类型:
  1、收藏家法:建议我们收集软件的输出,收集的越多越好。然后可以将这些搜集进行梳理,可能会收到一些意想不到的惊喜。
  2、长路径法:那些需要被点击N次才能激活的特性点,把那个埋在应用程序最深处的界面作为测试目标;
  3、超模测试法:是一种纯界面测试方法,它的原理是不关注特性,而只关注界面的设计是否给我们带来愉悦感
  4、测一送一法:它只测试同时运行同一应用程序多个拷贝的情况。比如:运行一个应用程序,然后再去运行该应用程序的一个拷贝。
  五、旅馆区类型:
  1、取消测试法:启动操作一开始立即停止它。如:查找一丹开始,就立即取消。然后再次去查找
  2、懒汉测试法:软件必须处理默认值,它必须运行处理空白输入的代码,很多输入不填写就直接进入下一步等等;
  六、破旧区测试类型
  1、破坏测试法:强迫软件做一些操作;掌握软件成功完成操作必须使用的资源;在不同程度上移除那些资源或限制使用那些资源;
  2、反叛测试法:故意输入一些最不可能的数据,然后判断程序如何去处理;
  3、强迫症测试:一遍又一遍的输入同样的数据,反复的做一些同样的操作;
  好吧,大概给大家简单介绍了下基于旅行者的探索性测试方法,大家感兴趣的可以自己去摸索下这个方法,并且用到自己的测试实践里面去。不过石头哥用的比较多的是基于场景的探索性测试方法。后面可以找一个具体的模块来给大家分享下基于场景的探索性方法,下一期见。