学习《测试架构师修炼之道》笔记——第六章

第六章:如何制定测试策略

6.1 理解测试策略

1、什么是测试策略?

  测什么?怎么测?

  • 测试的对象和范围是什么?
  • 测试的目标是什么?
  • 测试的重点和难点是什么?
  • 测试的深度和广度是什么?
  • 如何安排测试活动(先测什么,再测什么?)
  • 如何评价测试的效果?

2、测试策略和测试方针?

  测试方针是产品测试的通用要求、原则或底线。

  遵循测试方针 + 项目实际情况 = 测试策略

3、测试策略和测试计划?

  它们之间的关系是:通过测试策略确定的测试活动被分解为一个个测试任务,这些任务有确定工期,执行的先后次序和责任人。

  测试计划属于测试经理的范畴。

4、测试策略和测试方案?

  测试方案解决的是特性在测试设计和测试执行方面的问题。  而测试策略解决的是产品测试的六大问题。

6.2 测试策略制定法(4步)

  1. 明确“产品质量目标”
  2. 进行“风险分析”
  3. 适配“产品开发流程”
  4. 进行“测试分层”

一、明确产品质量目标

  1、通过“产品质量评估模型”来得到产品的质量目标。

  2、围绕产品的质量目标来进行刚刚好的测试,即质量要求高的重点测,质量高的测试投入大,质量要求高的测得深。

  3、围绕着产品质量评估模型将目标——行为——评估形成闭环

    我们通过“产品质量模型”得到具体的产品质量目标,根据质量目标来制定测试策略确定测试活动,接着执行测试活动,最后对测试效果进行评估

二、进行风险分析

  如果漏掉了风险风险,那么在测试执行过程中会出现很多阻碍而且会感觉测试策略很笨重。

  1、提前识别项目中的阻碍测试的风险,基于风险调整测试策略。

  2、基于风险来加强和降低测试的投入。

三、适配“产品开发流程”

  

 

 四、进行测试分层

  测试分层是将有公共测试目的的测试活动放在一起形成一个组,然后一组一组地逐一进行测试。

  通过测试分层,可以将大的测试目标分解到不同层中去执行。

五、四步制定法中的测试技术

  明确产品质量目标:产品质量评估模型、缺陷分析技术

  风险分析: 风险分析技术、老功能分析技术

  测试分层: 分层测试技术

6.3 产品质量评估模型

  很多时候,即使使用了多个质量指标去评估质量,但是心里还是没底— —这是因为这些指标往往覆盖不全,导致心里没底。

  产品质量评估模型的优秀特质:

  • 多维度:能够覆盖质量评估的各个维度,能够帮助评估者全面分析和考虑。
  • 定量 + 定性:指标和分析相结合,能够有效避免在只有指标的情况下,被绕过去,变得形同虚设。
  • 过程 + 结果:不近评估测试的结果,还对过程进行分析和评估。

  从3个方面建立质量评估模型:

  • 测试覆盖度评估
  • 测试过程评估
  • 缺陷分析

  

 

 6.4 测试覆盖度评估

  需求覆盖度:已经测试验证的产品需求和产品需求规格总数的比值。(定量指标)

  路径覆盖度:已经测试到的语句的数量和程序中可执行语句的总数量的比值(定性指标)

  一、需求覆盖度评估

  需求覆盖度的目标必须是100%。

  需求覆盖度评估有一下两个方法:

    方法1:直接在需求表中确认测试情况。

    方法2:建立测试用例和需求的对应关系。

    注:方法1最好不要在测试结束后再进行确认,这样往往时间不够。而应该边测试边确认。方法2注意的是需求变化的那部分,特别是项目后期的增加、修改、删除的需求。方法2中可能会出现一对多或者多对多的情况,所以最好有工具来维护。

  二、路径覆盖度评估

  语句覆盖:覆盖系统中所有判定和过程的最小路径集合

  分支覆盖:覆盖系统中每个判定的所有分支所需的最小路径数

  全覆盖:100%地覆盖系统所有可能的路径的集合

  最小线性无关覆盖:保证流程图中每个路径片段能够至少执行一次的最少的路径组合

  1、确定路径覆盖策略

    可以将最小线性无关覆盖作为一个基本的路径覆盖方式

    对优先级高的功能特性,可以在最小线性的基础上增加一些路径

    对优先级低的功能特性,可以在最小线性无关覆盖的基础上减少一些路径

  2、使用路径分析法设计测试用例

  3、跟踪测试用例的执行情况

6.5 测试过程评估

  一、测试用例评估

  • 测试用例执行率
  • 测试用例执行通过率
  • 测试用例和非测试用例发现缺陷比

    用例执行率 = (执行用例的失败数+成功数)/ 总用例数  【注:同一条用例重复执行,只算一次】

    影响执行率的因素可能有测试阻塞和未执行。  

   测试用例执行通过率可以分为:首次执行通过率和累积执行通过率。

    首次执行通过率 = 第一次执行该测试用例的结果为“通过”的测试用例数 / 已经执行的测试用例数

    累积执行通过率 = 测试用例结果为“通过”的测试用例数 / 已经执行的测试用例数

    首次执行通过率可以评估开发版本的质量

    乐基执行通过率可以评估产品发布是的质量

  测试用例和非测试用例发现缺陷比。

  二、测试投入分析

  

 

 

6.6 缺陷分析

  1、缺陷密度

    即每千行代码发现的缺陷数。

    确定和分析缺陷密度的重要意义在于: 

      1、通过缺陷密度,我们可以预测产品中可能会有多少缺陷

      2、通过缺陷密度,可以帮助我们评估当前已经发现的缺陷总数是否足够多。如果缺陷密度和预期偏差较大,原则上不应该退出测试,发布产品。

    由于实际的缺陷密度和预期的缺陷密度不会恰好相等,所以应该有一个偏差范围:比如偏差范围3%、5%等。

  2、缺陷修复率

    即:已经修复解决的缺陷总数和已经发现缺陷总数的比值。

    1.缺陷的严重程度

    

 

     3、缺陷趋势分析

      即:随着测试时间的进行,测试发现的缺陷趋势和开发解决缺陷的趋势。

      1、绘制缺陷分析图

        主要的指标有:累积发现的缺陷数,当天发现的缺陷数,累积解决的缺陷数,当天解决的缺陷数

      2、缺陷趋势曲线的“凹凸点”和“拐点”

        理想情况下,应该是随着时间的增加,先出现凹曲线,一段时间后出现凸曲线。注意拐点的位置不能过快或者没有拐点

      3、缺陷是否收敛

        累积发现的缺陷最后为凸函数,最后与累积解决的缺陷越来越靠近,最终趋于一点。

        PS:如果累积解决的缺陷趋势没有趋向一点,说明开发还有很多缺陷没有修复,应该继续测试

           如果累积发现的缺陷趋势还是为凹函数,那么说明还有可能有很多的缺陷被发现,也应该继续测试。

      4、缺陷年龄分析

        是指软件产生或引入缺陷的时间。

缺陷年龄 描述
继承或历史遗留 属于历史版本。继承版本或是移植代码中的问题,非新开发的问题
需求阶段引入

缺陷是在产品需求设计阶段引入的,主要包括如下情况:

1、需求不清的问题

2、需求错误的问题

3、系统整体设计的问题

设计阶段引入

缺陷是在产品设计阶段引入的问题,主要包括如下情况:

1、功能和功能之间的接口的问题

2、功能交互的问题

3、边界值设计方面的问题

4、流程、逻辑设计相关的问题

5、算法设计方面的问题

编码阶段引入

缺陷是在产品编码阶段引入的问题,主要包括如下情况:

1、流程、逻辑实现相关的问题

2、算法实现相关的问题

3、编程规范相关的问题

4、模块和模块之间接口的问题

新需求或变更引入 缺陷是因为新需求、需求变更或设计变更引入的问题
缺陷修改引入 缺陷是因为修改缺陷时引入的问题。如开发虽然成功修复了一个缺陷,但修改又引入了新的缺陷

      

 

posted @ 2019-09-29 17:32  bcaixl  阅读(504)  评论(0编辑  收藏  举报