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. 测试策略实现




  • 相关阅读:
    个人号微信机器人接口
    js tree 根据子节点找到所有父节点
    大数据分析之纳税人画像-实现和优化思路
    前后端分离项目安全漏洞修复总结
    多租户&多账户&多公众号_saas微信公众平台设计思路
    java7 try-with-resources 很香
    java7 异常处理增强
    java7 try-with-resources 很香
    mysql 按分数段,每个专业分数段统计人数
    一文看懂奈奎斯特定理和香农定理
  • 原文地址:https://www.cnblogs.com/st998/p/13831601.html
Copyright © 2011-2022 走看看