zoukankan      html  css  js  c++  java
  • 单元测试-第一节

    课程目标:

      1.单元测试流程

        (1)单元测试计划

        (2)测试策略计划

        (3)测试策略实现

    一,测试分类回顾

      1.黑盒测试

      2.灰盒测试

      3.白盒测试

      提示:以上分类是站在代码的可见度的角度上划分

      1.1 什么是白盒测试

        说明:白盒测试就是对于程序的源代码进行的条件,路径等一系列覆盖及正确性验证

    二,单元测试

      2.1 什么是单元测试?

        根据程序最小单元进行正确性验证过程

        单元:函数,类,功能菜单

      2.2 单元测试优点:

        1. 减少Bug

        2.快速定位Bug

        3.提高代码质量

        4. 减少调试时间

      2.3 单元测试缺点:

        1. 周期长

        2.耗费资源

        3.能力要求高

    三,单元测试流程

      3.1 为什么需要了解测试流程?

        1.计划

          (1)确定被测代码范围

              a. 依据:二八原则(20%代码中隐藏80%bug)

              b. 如何确定20%代码?

                1.使用频率

                2.复用性

                 (1)全新(考虑)

                 (2)部分复用

                 (3)全部复用

                3.开发

                 (1)技术

                 (2)业务

                 4.复杂度

                  需要使用圈复杂度7级以上(圈复杂度:在策略实现时学习)

          (2)评估标准(被测代码覆盖率)

             如何确定逻辑覆盖率?

             <1>语句覆盖率

                说明:非分支非判断的语句

                覆盖率:被覆盖的语句 / 总语句

             <2>分支覆盖率

                说明:if有一个或两个分支(流程图中的Y / N)

                覆盖率:被覆盖分支 / 总分支

             <3>条件覆盖率

                说明:一个条件分母为2(true / false)

                覆盖率:覆盖的条件 / 总条件数

             <4>路径覆盖率

                说明:从开始到结束的过程(路径的分子永远是1)

                覆盖率:覆盖率的路径 / 总路径

             <5>分支--条件覆盖率

                说明:分支的数量 + 条件的数量

                覆盖率:分支--条件覆盖率 =(分支的分子 + 条件的分子 / 分支的分母 + 条件的分母)

          (3)流程图:

                说明:使用统一标准图形,来描述程序具体运行步骤

                目的:

                  1.确定覆盖率

                  2.画流图  

        2. 设计

          (1)调试到最小单元可独立运行

          (2)策略方式:

            a. 自下向上

              说明:从最上层函数向下开始逐层往下测试

            b. 自下向下

              说明:从最下层函数向上开始逐层往上测试

            c. 孤立策略【推荐使用】

              说明:选择重要的函数,进行测试

          (3)打桩

              说明:模拟编写一个被调用的函数名,直接return结果或pass占位符;以上方法在开发内经常使用:mock测试(在接口中用到)

              mock测试含义:对于某些不容易构造或者不容易获取的对象用一个虚拟的对象来创建一个以便测试的方法。

        3.实现

          (1)将调整好的代码转化为流程图

          (2)根据流程图转化流图

             a. 流图:表达程序业务逻辑复杂度一种示意图

               构成:  

                 1. 圈:条件或语句块都画图

                   2. 线:带箭头的线,连接圈与圈之间的关系

              画流图目的?

                1. 确定圈复杂度

                2. 产生测试用例

          (3)根据流图确定测试用例

        4.执行

  • 相关阅读:
    “北斗人”梦想成真!星间链路新技术探索,ThingJS 3D 可视化 效果图
    如何从道路BIM模型中提取数据?分三步超简单!ThingJS 3D 可视化
    ThingJS: 做一个数据可视化项目的难点在什么地方?3D 可视化 three.js
    震撼来袭 | ThingJS 3D城市应用双11钜惠,低至688元>>官方优惠
    ThingJS 和three.js开发有何不同,让开发早点下班回家!3D 可视化
    NASA样本实验室之3D渲染图,和宇航员一样的上帝视角!3D 可视化 ThingJS
    三维建模国内外技术对比:和SketchUp、Revit建模软件相媲美 3D 地图 可视化 ThingJS
    CSS两列及三列自适应布局方法整理
    前端进阶-每日一练(3)
    前端进阶-每日一练(2)
  • 原文地址:https://www.cnblogs.com/huyaxue/p/10028619.html
Copyright © 2011-2022 走看看