zoukankan      html  css  js  c++  java
  • 白盒测试day01

    单元测试基础

    目标
    1. 了解单元测试流程
    2. 了解单元测试用例设计
    3. 在UnitTest框架中使用该数据分离

    什么是单元测试?

    概念:单元测试是针对程序的最小单元来进行正确性检验的过程。
    单元:一个单元可能是单个程序、类、对象、方法(函数)等。
    优点:
    1. 减少BUG
    2. 快速定位BUG
    3. 提高代码质量
    4. 减少调试时间
    缺点:
    1. 周期时间长
    2. 耗费资源
    3. 能力要求高

    单元测试流程

    1. 单元测试-计划
            1) 确定要测试代码范围
            2) 评估标准(确定被测代码的覆盖率)
    2. 测试策略-设计
            1) 拿到开发代码进行调整(可独立执行)
    3. 测试策略-实现
            1) 根据调整好的代码-画流程图
            2) 根据流程图画流图-确定复杂度、路径
            3) 根据复杂度和路径确定测试用例(测试数据)
    4. 单元测试-执行    
            1) 使用测试框架(UnitTest)编写单元测试用例
            2) 测试用例(代码)和测试数据分离
            3) 生成测试报告

    单元测试-计划

    概念:对要测试代码的确定以及这些被测代码的评估标准、优先级等说明
    
    1. 确定单元测试范围(那些代码要做单元测试)
    2. 评估标准-(被测代码的逻辑覆盖率)

    如何确定单元测试代码范围?

    依据:二八原则(20%的代码中隐藏了80%的缺陷)
    如何确定20%代码
    1. 频率:使用频率高的代码段;
    2. 复用性:(是否已被复用)        
       1). 全新
       2). 部分复用
       3). 全部复用
    3. 开发人员:     
       1). 技术
       2). 业务
    4. 复杂度:业务逻辑复杂度(一般认为圈复杂度-->流图在7级以上代码包括在20%的代码中)
    如何确定圈复杂度等级?
    圈复杂度:在学习测试策略实现时讲解
    附录-测试范围汇总格式

     

     

    评估标准确定被测代码覆盖率

    如何确定逻辑覆盖率?
    1. 语句覆盖率
    2. 分支覆盖率
    3. 条件覆盖率
    4. 路径覆盖率
    5. 分支-条件覆盖率

    流程图

    说明:使用统一规定标准图形,描述程序运行的具体步骤
    目的:
        1) 确定覆盖率
        2) 根据流程图画流图        (流图-->测试策略实现时学习)

    什么是语句覆盖率

    语句:非分支非判断的代码
    练习
    提示用户输入一个数,如果该数大于0则加1,如果小于0则减1;        
    代码:        
    流程图: 
    测试数据
    1. 输入  3
    2. 输入  0
    3. 输入 -2

    语句覆盖率-总结

    1. 语句
    2. 计算方式:被覆盖语句/总语句

    分支覆盖率

    分支:判断语句的分支;如:if判断有两个分支
    被测代码流程图

    分支覆盖率总结

    1. 分支
    1. 计算方式:覆盖分支/总分支数

    条件覆盖率

    条件:结果为true或false
    练习
    输入用户名和密码,如果用户名为:admin,密码为:123456,输出验证成功;否则输出验证失败;
    代码流程图
    练习2
    输入两个数a,b,如果a>5 and b<5 执行语句3;否则 elif a==5 or b<10 执行语句4;否则执行语句5
    代码流程图
    练习3
    输入用户名和密码:
    如果 username= "admin" and password="123456" 执行语句3;否则执行语句4
    如果 username= "zhangsan" and password="654321" 执行语句5;否则执行语句6

    条件覆盖率总结

    说明:一个条件有两个结果 true、false
    注意:条件之间使用逻辑符 and连接  第一个条件如果失败,不会在去判断第二个条件;如果为or第一个条件失败,会继续去判断第二个条件
    计算方法 走过的条件个数 / 条件数*2(这是因为一个条件有两个结果 true、false)

    路径覆盖率

    路径:从开始到结束的过程

    路径覆盖率总结

    1. 路径概念
    2. 计算方式:覆盖路径/全部路径
    3. 路径和分支区别
    说明:从开始-到结束的过程
    注意:路径的分子永远为1
    提示 练习四路径有4条,但有一条永远不可成立,所以路径为3条。永远不可成立的那条路径就是 YY这条路 (NN NY YN三条可以的路径)

    分支条件覆盖率

    1.分子=分支覆盖率的分子+条件覆盖率的分子
    2.分母=分支覆盖率的分母+条件覆盖率的分母

     

  • 相关阅读:
    May LeetCoding Challenge22 之 比较器comparator、map按Value排成逆序、桶排序
    May LeetCoding Challenge21 之 动态规划的min使用
    May LeetCoding Challenge20 之 二叉树中序遍历
    May LeetCoding Challenge19 之 单调栈2.0
    May LeetCoding Challenge18 之 滑动窗口2.0
    May LeetCoding Challenge17 之 滑动窗口
    May LeetCoding Challenge16 之 链表重组
    APT常用命令
    DDCTF-misc-流量分析
    Wireshark学习笔记
  • 原文地址:https://www.cnblogs.com/st998/p/13830998.html
Copyright © 2011-2022 走看看