• 0
  • 0
分享

  传统认知中的软件测试是一个使用测试用例设计技术设计用例并执行测试用例的过程。

  测试用例技术的目的是确保能够更多地覆盖、检测软/硬件错误,减少冗余测试。自动化测试或多或少地被认为是机械地执行测试脚本,将预定义的测试用例输入被测系统,对比系统输出和预期结果。

  然而,在实际的工程实践中我们会发现,现实世界的测试很少是基于严格、系统、以及完成记录去运行预定义的测试用例。

  相较于传统的测试方法,探索性测试(ET)方法更具创造性。

  测试设计、执行和学习并行,不断地学习、反馈、优化测试方法并在实践中应用。但是ET通常被认为是一种经验类方法或错误猜测法,更多地依赖隐性的经验知识,我们不否认ET的这个特点。

  容易理解的是:累积的经验知识可以帮助我们更好地进行测试设计,可以帮助我们更好地辨认测试过程中的异常或故障(例如,从日志中观察到某个WARNNING输出,如何确定它是否是软件故障导致的异常输出)。

  ——这也是本篇文章讨论ET围绕的核心问题:如何辨认故障。问题关键是:如何利用经验知识拓展ET测试技能辨认故障。

  那么,我们需要哪些经验知识呢?在这里,总结出了三大类经验,是我们提高ET测试技能时需要的,分别是:领域知识、系统知识、通用软件技术知识。

  领域知识

  领域知识又可以分为用户视角和应用领域视角。

  什么是用户视角?在测试设计过程中我们经常提倡的一个理念是:从用户角度使用我们的产品。

  用户视角

  用户视角要求了我们需要学习和了解真实用户的使用习惯、方式,和在真实场景中我们产品的交互方式和内部运行情况。

  因此,用户视角又可以分为:产品使用过程关联的上下文情景,上下文中的信息内容和表示形式,以及用户真实使用案例。

  1、产品使用过程关联的上下文情景

  测试人员通常是系统本身的常用用户,具有丰富的使用经验。

  当测试人员意识到他们使用程序方式与实际用户使用方式相冲突的时候他们会很快地改变测试策略或测试方法,而所有的测试失败都与测试情景和测试上下文关联。

  因此,基于此我们在进行ET测试的时候可以使用“产品使用过程关联的上下文情景“经验知识提高我们的测试技能。

  详细来说,主要就是两点:模拟用户真实使用场景,准备尽量真实的测试数据进行测试。

  2、上下文中的信息内容和表现形式

  当测试人员模拟真实场景进行测试的时候,需要理解和观察情景中展现的上下文信息内容和表现形式。

  当软件系统以一种“不尽人意”的方式呈现数据、展现结果,或者展现错误的、有缺陷的数据时,那么可能会提醒测试人员,选择更多测试数据样本进行测试,观察软件系统的表现方式。

  例如:某个web系统页面按钮点击无反应,或者某个输入框输入特殊字符导致页面布局错乱。这些案例都可以成为激发测试人员发散性思考的闪光点。

  3、客户真实案例中披露的问题

  当测试人员进行探索性测试时,了解具体的真实案例、客户所在,按照客户的使用习惯测试软件系统,能够提高识别软件系统风险的能力。

  例如:当测试人员测试一个新特性的向前兼容性时,导入了一个历史的复杂数据导致软件系统异常。这样的案例在客户真实情境中不乏多见,利用客户真实案例评估或测试改变的特性有助于披露隐藏在软件设计或开发中的风险问题。

  应用领域视角

  应用程序域视角代表的是应用领域的相关知识,包括测试人员掌握的自然知识和应用程序的理论、规则和技术细节域,而不是使用上下文。

  我们把这透视分为两种:概念性知识学科内容,以及学科的实用知识物质和工具。

  1、概念性知识和学科内容

  概念性知识和学科内容在此可以通俗理解为测试人员掌握的一些逻辑推理知识、测试经验等。

  例如:测试人员根据某个web系统的页面提示,推理、筛选得知是应用前端问题还是应用后台程序问题。

  2、对工具的实用性知识

  工具可以帮助测试人员提高测试效率,对工具的熟悉和操作的熟稔度直接影响测试效率和测试结果分析。使用工具进行测试,测试结果可以作为测试人员的参考。

  总的来说,训练测试人员的探索性测试思维需要测试人员了解相关的领域知识。图表总结,该部分知识如下:

1-1.png

  系统知识

  应用系统知识的两个主要视角:交互特性和系统视角,以及单个特性和功能视角。

  测试人员的对系统及其相关知识和理解特征可以进一步分为知识的系统的工作机制、逻辑和交互相关知识。

  交互功能和系统内视角

  测试人员对系统及其相关知识和理解特征可以进一步分为知识系统的工作机制、逻辑和交互,以及历史版本故障。测试人员知道特性是如何一起工作的以及系统的基本工作逻辑。

  测试人员了解系统应该如何对某些事物做出反应,输入数据或配置的各种变化和可以基于这种理解来认识失败。

  重点是不一定是细节的准确性,而是系统应该如何反应、系统是否有反应、反应是否正确。

  例如:一个测试人员正在测试一个模拟现实生活的系统基于工程模型的情况。在这种情况下,通过观察系统的响应测试人员意识到系统未能正确反应以变化的仿真参数和性能该模型。系统要么完全没有反应,要么只反应了一部分。

  值得注意的是:了解工作机制、逻辑和互动是通过观察整体反应来应用的,使系统的配置、状态或数据发生变化或者通过模拟现实的使用场景。这方面的知识也被应用于识别发生在不是直接在测试焦点中的区域,例如无意的变化。

  最后,当系统知识作为测试人员一个新特性时,将一致性启发式以相似的特征和故障识别为基础,同一系统的新特性与类似特性不一致。

  单个特性和功能视角

  单个特性和功能视角几乎是每个测试人员经常测试的类别,针对单个特性设计测试用例进行测试。

  在此,我们说明探索性测试技能的时候给大家建议的是:锻炼测试人员分析日志的能力,要有敏感的“嗅觉”,能够及时发现日志中的异常打印和错误信息,并逆向追踪导致系统异常的场景、代码等。

  总结一下,本部分系统知识的分类和知识类型及使用方式如下表所示:

1-2.png

  通用软件工程知识

  通用软件工程知识指的是能够明显发掘的错误,不需要经过深层分析。

  例如:GUI层面的功能错误、布局错误,很容易让测试人员一目了然判断它是否是故障。

  又例如:功能层面的可用性,可以让测试人员参考用户手册很容易判定它是否满足用户需求,是否简单可用。

  它又可以分为通用正确性视角、可用性视角和直接错误视角。具体如下表所示:

1-3.png

  总结

  探索性测试是一种自由、灵活的测试风格,近年来被许多测试人员推崇,相应地也诞生了一些测试技巧,如局部探索性测试方法和全局探索性测试方法。

  虽然我们不断强调探索性测试不是单纯的经验性测试,但却也不能否认丰富的经验为探索性测试带来的好处。

  本文从3个角度简单阐述了如何丰富探索性测试经验,加强探索性测试技能,希望能对大家有所帮助。



作者:刘晓佳Rachel    

来源:http://www.51testing.com/html/10/n-7792110.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   近期身边有一些朋友陆续开始入行测试行业,在面试过程中随机场景用例设计基本是一个必问的问题,那这个是否也存在通用的回答模式呢?就让我们以最简单的移动端登录场景一起探寻一下吧。  测试用例设计的通用格式  其实软件测试用例设计也有一个大概的通用格式,任何场景拿到手后,都可以先按照功能、性能、安全、兼容性、发布等几个大维度大致拆分一下,然后再在每个维度中具体细分一一填充,最终整个用例设计就完成了。  按照这种分而治之的思路,用例设计是否比较简单呢?当然,在实际陈述过程中,建议按照同样的思路,这样可以给面试官一种条理清楚的感觉。  登录之功能设计  让我们从登录场景的功能维度入手吧。  常用功能 ...
            0 0 121
            分享
          •   我也是黑盒出来的呀  现在我到一家公司,就会有小朋友问我:你以前是开发吗?你是怎么变厉害的呀?到底要怎么学习呀?  我也是黑盒出来的呀,不要小看测试的能力的嘛~  很幸庆的是,我是计算机专业出来的,这个基础给我带来了很多的优势;其实很多时候,我自己也是在后悔,出来的一刹那为什么没有选择去成为一名研发,而选择了测试。  其实,越到后面越会明白,如果一开始是研发而转为测试开发,那会容易些。  为什么一开始的时候没有选择去编码呢?同样的思路:大学的时候真的不喜欢编码,觉得测试入门简单,动代码的机会比较少;可是哇!工作后,为了涨薪,硬生生的逼自己学会了编码~~汗~~  我从功能转自动化的过程  我...
            0 0 795
            分享
          • 我在一家做微信营销的公司干技术 leader,带 40 多个人,公司名就不说了。在这个位置上做了好几年,把团队从小带大,公司虽然不算风口浪尖上的高增长业务,但技术这块儿也从来没出过什么问题,我还是蛮自豪的。带团队时间久了,就能发现整个 Team 都渐渐疲了。前两年老板还专门买了个系统搞 OKR,现在也不大提了;Scrum 我们也搞了,用起来也就那样;项目管理工具试了好几个,禅道、Worktile、现在用 Coding,反正有一个能用的就行;微服务化改造从去年开始在吭哧吭哧搞,我们自己搞得觉得很厉害,但业务部门那边就觉得没啥差别,搞不懂你们研发部门每天在弄些什么,赶紧做我们提的需求要紧。时间...
            0 1 992
            分享
          • 作为一名入职两年的银行测试人员,虽然目前还处于成长阶段,但也能根据自己的工作经历总结出一些经验,帮助新人们‘避雷’。下面我将总结成八点内容,与大家分享。1.参与需求评审业务,开发,测试三者看似是不同的个体,但实际上的工作是紧密相连的。测试人员往往在开发阶段才拿到业务需求说明书开始编写测试案例,这无疑会降低测试效率。需求评审环节有助于快速全面了解客户需求,它会节省后续测试人员了解业务需求的时间,并且测试重点难点都可以借此机会在会上阐明,经过讨论找到解决方法。2.借助业务流程图编写测试案例对于一些比较复杂的需求,由于其分支路径较多,测试时容易忽略个别情况。这时尽量根据业务需求绘制业务流程图,或者询...
            0 0 6037
            分享
          •   5月25日上午消息,百度文心一言市场部负责人张全文通过朋友圈回应道,“听闻有友商把自己股价大跌,归咎于有人利用文心一言写了篇命题小作文,也是醉了。先别说小作文这事真假(目前看来只怕是策划痕迹太重),如果AI作文有这本事,百度员工自己先炒一下自己股价不香吗?”  张全文表示,中国发展自己的大模型技术挺不容易的,把精力放到正事上吧,还请友商解决好自己的问题,别动不动就碰瓷别人。对于无端的恶意抹黑污蔑,百度也将采取法律措施。(文猛)作者:佚名原文链接:新浪科技_新浪网(sina.com.cn)
            0 0 1039
            分享
      • 51testing软件测试圈微信