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

    单元测试策略--设计

    1. 单元测试-计划  在day01里面学过
            1) 确定要测试代码范围
            2) 评估标准(确定被测代码的覆盖率)  
    2. 测试策略-设计
            1) 拿到开发代码进行调整(可独立执行)

    方式

    1. 自上向下
    2. 自下向上
    3. 孤立策略 
    自上向下
    方式:从最上层函数往下开始逐层测试
    案例1
    两个函数(求和、求减),求和函数内调用求减函数;
    案例1分析
    1. 编写求和函数
    2. 编写求减函数
    3. 在求和函数内调用求减函数
    4. 调用求和函数
    案例1问题
    1. 我们只想测试求和函数不测求减函数该如何做?
    打桩
    概念:打桩就是模拟编写一个我们需要引用的函数
    
    提示:一般我们只模拟写个函数名,直接返回相应的结果即可
    示例:
         def fun_1(self):
             return true
    自上向下总结
    1. 方式
    2. 打桩(模拟调用的函数)
    3. 缺点(成本高)
    策略 自下向上
    方式:从最底层函数往上开始逐层测试
    自下向上-总结:
    1. 方式
    2. 缺点(周期长) 要等开发把最下层函数定义好

    测试策略--孤立策略(重点)

    方式:选择需要进行测试的函数进行测试

    孤立策略-总结:

    1. 方式
    2. 【推荐使用】
    3. 优点:选择重要的代码进行测试

    单元测试策略--实现

    测试策略-实现
            1) 根据调整好的代码-画流程图
            2) 根据流程图画流图-确定复杂度、路径
            3) 根据复杂度和路径确定测试用例(测试数据)

    什么是流图

    概念:表达程序业务逻辑的复杂度一种示意图
    构成:   
         1) 圈:判断条件、语句块(一条或多条语句)两者都圈    
         2) 线:箭头指向的线,用来连接圈和圈的指向 

    流图的目的

    1) 确定单元的复杂度级别
    2) 确定测试用例
    备注: 路径的个数为复杂度的级别(一条路径为1个复杂度级别)

    案例

    函数(test001)判断参数a,如果a>0,执行语句1;
    流图其实就是程序所有可能执行的逻辑。

    测试用例模板

    根据流图可以写出测试用例,这样写出的测试用例完全覆盖了所有的可能。
    注意:在根据流图写测试用例时,一定要把流图附在用例文件里,不然谁知道你路径怎么标的。

    案例总结

    1. 路径:2 (1-2-4,1-4)  路径个数就是复杂度个数
    2. 复杂度:2 
    3. 用例个数:2
    总结出结论:复杂度最少为条件个数,最多为条件个数加1

    案例2

    函数(test002)判断参数a,b;如果a>0 and b<10  输入语句1;否则输入语句2;
    
    代码:
    流程图:
    流图:
    思考
    如果把案例3的条件 a>0 and b<10 换成 条件1 or 条件2  那么复杂度是多少?

    案例3

    输入两个数,如果两个数同时为大于0小于10,那么就进行求和运算;否则判断两个数是否同时大于等于10小于20那么
    就进行求减运算,否则输入错误;
    
    代码:
    流程图:
    流图:

    (可能判断条件里面的代码调下顺序结果就不一样)


    测试用例

    案例4

    使用while循环求1-10相加之和;
    
    代码:
    流程图:
    流图:

    案例5

    提示输入三角形三条边,进行判断三角形类型(等边、等腰、普通)并进行提示,否则提示不是三角形;
    
    提示:
    三角形:两边之和大于第三边;
    等腰三角形:两条边相等
    等边三角形:三条边相等
    步骤分析
    1. 代码:
    
        1) 自定义函数
        2) 判断是否为三角形
        3) 判断是否为等边三角形  如果是等边肯定就是等腰了,没必要往下走,所以等边判断在等腰上面
        4) 非等边三角形继续判断是否为等腰三角形
        5) 如果不是等腰三角形,输出普通三角形
    
    2. 流程图    
    3. 流图   
    4. 用例

    测试用例

    总结

    1. 单元测试计划
    2. 测试策略设计
    3. 测试策略实现




  • 相关阅读:
    java.lang.IllegalArgumentException: When allowCredentials is true, allowedOrigins cannot contain the special value "*" since that cannot be set on the "Access-Control-Allow-Origin" response header.
    spring-session-data-redis依赖冲突问题
    centos7启动iptables时报Job for iptables.service failed because the control process exited with error cod
    图片上传后台服务报内存溢出 Out Of Memory Java heap space
    mysql 数据库密码忘记重置 进行远程连接
    打Jar包
    Type interface com.innovationV2.mapper.UserMapper is not known to the MapperRegistry
    关于java基础类型Integer String的clone()
    clion使用clang编译
    token & refresh token 机制总结
  • 原文地址:https://www.cnblogs.com/st998/p/13831601.html
Copyright © 2011-2022 走看看