发布新日志

  • 基于风险的测试策略

    2017-09-11 12:43:26

      在日常的测试过程中需要在测试时间、成本和质量的三角形中找到一个平衡点,形成质量平衡,这往往需要借助基于风险的测试策略。就以我们用例设计的技术中的等价类划分法,其也是基于风险的策略。
      谈到风险,如何划分风险的呢?
      通常需要根据风险发生的概率和风险的重要性进行画出一个交叉表,然后确定分值,划分风险的优先级。
      之后就可以开展基于风险的测试策略
      1、根据测试风险的分析和评估得到的各功能点的风险分布,确定测试的优先级
       功能越重要,风险越大概率越高,测试优先级就越高
     2、确定测试功能点是否完备
       功能点完备是避免漏测和进行风险划分的必要条件,根据时间确定各个功能点的覆盖完备程度,风险越高,完备程度越高;
     3、根据风险等级和功能优先级分配测试资源
       高风险和高功能优先级的分配高级别测试资源
     4、根据风险级别分配有限的测试时间
       将有限的时间分配到高风险的测试上面,进而降低测试风险;
     5、将剩余的风险体现在测试报告中;
  • 基于模型的测试方法

    2017-09-11 12:34:38

    一、过程

    操作步骤:

    1、        根据需求规格说明书创建模型(行为模型);

    2、        根据模型自动生成测试用例和期望结果;

    3、        执行用例并收集执行结果;

    4、        对结果进行分析反馈给需求说明书和模型;

    二、具体操作步骤

         1、确定业务流程;

            1)、创建系统级别的业务流图

            2)、创建单个模块的业务流图

         例如:Mpos交易路由业务流图

     2、对各项业务流程进行建模(Mpos业务流程为例)

          通过有限状态机创建状态模型

         1)、根据Mpos业务流程,收集状态

               共有9个状态,包括:

    1、        开始状态;

    2、        已刷卡状态;

    3、        已筛选身份状态;

    4、        已成本规则状态;

    5、        拿到合适的身份

    6、        结束状态

          2)、收集状态改变相关的操作

                 共有7个,包括:

    1、        刷卡消费;

    2、        机构规则、路由规则筛选;

    3、        成本规则筛选;

    4、        适用范围筛选;


          3)、画出业务的状态模型图(框体中为状态、链接线为操作)

                 4)、封装所有的业务操作,方法体中为输入的属性

              1、刷卡消费

                Int flushCard(){

                  Int cardNum;

                  Int cardTime;

                   …….

    }

    对于前期准备例如录入数据没有明显的状态,因此无法使用有限状态机模型,此时需要采用活动图建模(UML建模)(例如数据准备,前期数据录入系统)

    活动图是有一系列的操作构成没有状态。处理过程如下:

    (1)、画出活动图(由一系列的操作集构成)

    (2)、封装操作方法,例如

    创建用户

    Int CreateUser(){

    Int userID;

    String username;

    ……..

    }

             

         3、使用工具解析模型;

    4、生成用例和预期结果,运行

             实现测试工具可以识别模型,并使用不同的算法遍历的方法找到所有可能的操作路径,进而自动生成测试代码。(34合并)

             工具的基本功能描述如下:

    1、        建模功能:根据需求规格说明书在工具中手工创建模型;

    2、        识别模型中操作:识别模型中的所有操作形成业务抽象库;

    3、        遍历模型的操作:使用不同的算法遍历模型的操作,产生不同的测试场景;列举所有的输入参数,根据输入参数自动生成测试用例存储在用例管理器中;

    算法:随机行走遍历算法、操作遍历算法、状态遍历算法共同生成用例;

    4、        通过接口适配到自动化测试执行工具:将生成的用例适配到自动化测试执行工具中根期望结果比对生成结果并分析;

  • 基于bug的测试策略

    2017-08-17 18:05:45

    测试策略的分析是为了制定完美的测试策略或者测试计划。那么,那么我们测试策略的终极目标是什么呢?总结为一句话:用最少的人天来发现所有的风险(即保证质量)。当然,这个就像产品出去后没有bug一样是不可能的,却也是我们需要不断追求的目标。
      作为一个测试分析工程师,在测试策略分析上面应该也有一套属于自己的并且行之有效的分析方法。下面引入一个基于bug的分析,适用于对产品质量要求不是非常高的产品,但是能够让整个测试变得更加有乐趣,也更加高效。
      这里拿一个功能模块举例子:
      1、分析该功能模块的代码行数,如:1W行。
      2、根据该模块开发人的历史编码经验分析出该开发人员的千行代码bug率处于一个什么范围(如:0.2%-0.3%)。
      3、分析出该模块的bug大概为20-30个。因为我们需要发现所有的bug。所以,我们可以根据历史定一个最高的值,这个时候我们可以将bug数定位30个(当然,过程中会调整)。
      4、将该模块的测试目标更加的具体化,即我们要以更快的方式发现该模块的30个bug。
      5、根据80/20法则,我们分析出最可能出问题的20%的逻辑,进一步缩写测试范围。将该模块的bug目标定为 24个。
      6、在非常熟悉该模块的基础上面(前面已经有方法介绍,这里就不讲了)分析该模块可能存在的24个问题(超过也没有关系,但是至少应该找到20个以上)。
      7、能够看代码的话就根据自己的分析提前检查对应的代码是否有问题,有的话可以直接提bug了。
      8、挑选对应的用例数来测试到这些可能存在问题的地方(比如:分析出来了30个问题,直接挑选对应的30个用例出来)。
      9、测试完成后根据自己测试的结果进行下一步的分析(比如:发现了10个bug。当然,越接近24个就说明自己的分析更加精确,超过30个可能说明该模块质量很烂了,需要重新制定目标和提出风险了)。
      10、根据发现的bug再次进行分析问题都出在哪些地方?并且再次进行针对性的测试。
      11、其他80%的逻辑也可以采取类似的分析
  • App UI自动化测试投入高收益低如何破?

    2017-07-25 16:13:19

    由于UI变化频繁,自动化脚本维护成本高,UI自动化测试投入高,收益低,如何破?
    1、选择学习成本低的自动化框架,提高脚本编写效率;
    2、提高脚本复用次数,脚本复用次数越多,收益越高;
    3、把高可复用的模块提炼出来,尽量复用,同时尽量把UI变化小的部分进行自动化测试;
    4、组合拳,可以进行功能测试、性能测试、稳定性测试、兼容性测试、接口测试,多角度自动化进行更多的自动化收益。
Open Toolbar