2017加油,不满足于仅仅执行功能测试,希望能够有进一步的提高。

发布新日志

  • 敏捷脑图测试用例实践之路

    2017-02-21 11:57:59

    传统的黑盒测试用例比较繁杂,在实施敏捷的项目中会显得水土不服,让测试人员过度关注用例步骤的编写、修改,甚至同一条用例经过多人执行得到相同结果,让人想到一个呼之欲出的广告词:一次编写,多人运行相同结果,没有思考的过程,应该对用例进行改革,以便快速响应开发的交付节奏,同时形成用例评审规范,让开发、测试知己

    知彼,也加强开发自测的环节。本文主要讲敏捷中脑图用例的实践。
      
      不写测试用例或许测得更快,但绝不是一个测试人员的最佳素养,而现在的测试用例又过于繁杂,消耗了很多

    时间,怎么办呢?
      先看看测试用例的定义:测试用例(Test Case)是为某个特殊目标而编制的一组测试输入、执行条件以及预期

    结果,以便测试某个程序路径或核实是否满足某个特定需求。
      还有测试用例编写的一般原则:
      · 测试用例要包括欲测试的功能、应输入的数据和预期的输出结果。
      · 测试数据应该选用少量、高效的测试数据进行尽可能完备的测试。

    测试用例也遇到非常多的问题:对业务不熟悉、没有测试经验的人是无法做到的(比如死机怎么处理,浏览器挂了

    怎么办)说实在的,每种情况不可能写的很明细,谁能保证所有可能路径都写出来呢?不懂业务的测试人员,有执

    行测试用例的价值吗?测试用例应当是有思考活动存在的;测试用例没有思考的过程 负责第一次编写的测试人员有

    思考,但负责执行的测试人员,没有再继续跟开发交互测试过程,没有更深入的思考,而是仅仅按照用例执行,那

    这种效果等于走过场;打开浏览器,输入账号密码登录,这些其实是不必要展示的步骤

    做测试就要熟悉业务,测试人员应当更加关注的是开发是否做了正确的功能,功能是否做了正确的事情,在一个测

    试、开发比例1:4(有些是1:10)的团队里面,测试人员的时间是有限的,不要陷入过分的步骤细节里面去深究,要

    把重点思路放在运用哪些测试方法、如何组合更加有效覆盖测试故事点

    开发人员完成任务之后,最后交付给测试人员,这种模式下,测试人员不能及早发现需求阶段的缺陷、及时编写测

    试用例,用例评审滞后,发现缺陷同样也会滞后。而整个过程中丢失最大的环节就是:沟通、反馈。这在《全程软

    件测试实践:从需求到运营》文中也曾提过。

    倘若要是使用传统的用例编写,把测试团队人员的思维固化,这样子下去不进则退,不利于团队发展。鉴于此,创

    建了敏捷脑图用例,有以下原则:
      1、参与需求分析、记录验收要点
      全程软件测试,从需求阶段开始参与,在sprint会议上对功能点进行评估,消除含混性的疑点,将明确的作为

    验收要点,作为脑图用例故事点的参考来源。
      2、编写脑图用例,要与开发人员达成一致意见
      开发过程中,测试人员可以根据原型图设计脑图用例(没有实际系统,测试也可以先行),与开发人员进行查

    漏补缺(也就是用例评审环节),主要是确认测试功能点、测试故事,以及测试数据的准备,这几个方面不可能一

    开始就明确下来,要不断沟通、挖掘、完善脑图用例。

    第一版本脑图用例
      要点:所见所想
      当时的想法很简单,以需求为思考出发点,把所有功能性、非功能性的列举出来,然后再整理故事点。
    第二版本的脑图用例
      要点:
      · 增加风险考虑
      · 增加局部决策考虑 例如:一个输入框(或者叫元素),测试人员应当针对这个元素,结合数据,考虑使用

    哪些测试方法进行操作
      · 增加全局决策考虑 例如:一个业务查询操作,在web上操作,会触发一系列元素(输入框、查询按钮),这

    些应当如何组合、使用什么策略
      · 遵循:重构->测试->重构->测试,的原则
    脑图的形式展现并不是最重要问题,关键问题是:思考的出发点,这个要整个团队参与讨论,达成共识,才能传承

      引出思考点,大家就可以不断补充脑图,刚开始所有点可能是零散的,甚至一点关系都没有,这个时候就需要

    重构了,抽取相关点

    脑图编写不是漫无目的去思考,正如探索式测试策略,并不是指无目的去做即兴测试,有原则指引很重要。团队采

    用SMART原则进行脑图用例实践:
      · Specific(具体的):测试需要一个具体的目标(甚至原型图都可以),用来描述全景图。
      · Measurable(可度量的):有明确的度量可以评估目标是否达成(也就是验收条件作为测试故事点的评判标

    准)。
      · Achievable(可实现的):当前的目标应该是可实现的。这潜在地要求将一个大的目标分解为多个小目标,

    每个小目标也是具体的、可度量的。此外,跟踪小目标的完成情况也提供了整体进度的可度量性(一个业务操作会

    经过很多路径,每个路径可以单独存在或者组合存在,需要切分测试)。
      · Relevant(相关的):测试故事点从需求出发(包括功能性和非功能性),结合业务特性,以及相关上下文

    作为切入点。
      · Time-boxed(有时间限制的):为每一轮脑图用例的构建设定一个合理的时间窗口,例如在固定的时间窗口

    (一些人的专注度是45分钟,一些是60分钟,中排除不相关干扰、专注工作)。

    脑图用例编写流程:
      · 参与持续需求分析(不仅仅是需求阶段,开发阶段的变化也需要及时捕获)制定脑图用例框架
      · 将业务|功能测试目标分解成一系列测试任务,每个测试任务有明确的时间限制和退出条件。
      · 测试计划之后,优先选择一个测试任务,在一个测程内执行探索式测试,测程以45|60分钟为一轮,执行多

    轮。
      · 反思当前的测试进展,并优化测试计划。增加或删除一些测试任务,以更加准确地反应测试对象。

    脑图用例分析第一步:
    首先把业务需求分析结果填写到目标中,然后分析功能(如果没有系统,可以只看原型图),找到页面的相关元素

    ,逐个列入脑图中,再为每个元素使用一些测试方法,例如:等价类、边界值,进行局部决策,这样子,所有元素

    的分析完毕,就进入第二部全局。

    脑图用例分析第二步:
    第二步继续完善,进行全局分析以及列举一些非功能性需求:
      全局分析:
      找到需求描述或者跟开发沟通代码有限制条件的地方,而不是针对某个元素;
      对不同元素组合有依赖关系的,也需要列出来
      非功能性:
      这个在文档中可能没有给出,需要根据经验来评估,可以参考团队积累业务的测试经验,通用的点:出错的用

    户体验是否ok、查询时间效率如何等等
      风险:
      尽可能琢磨需求,挖掘风险,例如需求说:根据选定频道,但是没有说这个频道不属于客户怎么办?这个就是

    思考的强大力量了。

    脑图用例分析第三步:
    第三步是最关键一步,产出测试故事点,根据风险、目标、要点分析得出,这里举了简单例子,可以使用关键路径

    组合的方法来做。
      当然,做完一二三步,也只是在第一个时间窗口而已(这个时候也可以直接用于测试环境探索下,验证一些关

    键思路,增强信心),后续还需要重构-测试,在下一个时间窗口,查漏补缺,不断完善才可以用于时间测试。
    允许团队成员在模板基础上进行变化,以发挥更多的思维空间,

     五、关于富脑图及轻脑图用例
      允许团队成员在模板基础上进行变化,以发挥更多的思维空间,主要有两种模式作为参考:
      · 富脑图用例 
      个人认为,大脑对于图像的记忆,比文字更长久。富脑图,注重以图片、图标、图标、关联关系等记忆为主。
    · 轻脑图用例
      注重以简洁文字记忆为主
    团队可以在不同场景,选择合适的模板来发挥、扩散测试的思维点。

    不断完善用例的展现以及思考的出发点。其实,在整个开发、测试环节中,思考、沟通是最重要的环节,把产生的

    、达成共识的内容记录下来,汇集在脑图中展现,就可以看到整个需求点测试的全景图,然后再不断细化成测试故

    事点,这完全符合思维扩散以及总结的模式,大脑也容易接受,而且可以不断重构->测试->重构->测试,不断迭代下去。
Open Toolbar