zoukankan      html  css  js  c++  java
  • 学习《测试架构师修炼之道》笔记——第六章

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

    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、模块和模块之间接口的问题

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

          

  • 相关阅读:
    RabbitMQ安全相关的网络资源介绍
    种植玉米,发酵与生物燃料的制作
    一致哈希算法Java实现
    添加xml文件编辑语法提示
    【转】10分钟搭建NDK的Android开发环境
    【转】Windows环境下Android NDK环境搭建
    【转】蓝牙4.0——Android BLE开发官方文档翻译
    【转】java提高篇(十)-----详解匿名内部类
    【转】Android自定义View的实现方法,带你一步步深入了解View(四)
    【转】java枚举类型enum的使用
  • 原文地址:https://www.cnblogs.com/bcaixl/p/11609068.html
Copyright © 2011-2022 走看看