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.执行

  • 相关阅读:
    SGU 495 Kids and Prizes 概率DP 或 数学推理
    poj 2799 IP Networks 模拟 位运算
    uva 202 Repeating Decimals 模拟
    poj 3158 Kickdown 字符串匹配?
    uva 1595 Symmetry 暴力
    uva 201 Squares 暴力
    uva 1594 Ducci Sequence 哈希
    uva 1368 DNA Consensus String 字符串
    数字、字符串、列表的常用操作
    if条件判断 流程控制
  • 原文地址:https://www.cnblogs.com/huyaxue/p/10028619.html
Copyright © 2011-2022 走看看