zoukankan      html  css  js  c++  java
  • 多测师课堂005_设计用例方法_(上)高级讲师肖sir

    测试技术和技巧

    一、术语:

    动态测试: 通过运行软件的组件或 系统来测试软件 (软件在运行中测试)

    静态测试:对组件的规格说明书进行 评审,对静态代码进行走查 (软件在静止:代码,文档)

     正式评审:对文档的评审 (测试工作中最多就是“用例评审”)

    度量:测量所使用的方法或标准 (达到要求衡量)

    评审员:参加评审的人员

    记录员:记录评审会议上的会议纪要

    技术评审:同行间对技术进行的评审,目的是技术实现达成共识

    走查:由文档作者逐步陈述文档内容,以收集信 息并对内容达成一致 

    复杂性:系统或组件的设计或内部结构比较复杂, 导致难以理解,维护或验证的程度 (可理解为:软件难不难)

    圈复杂度(Cycloramic complexity):程序中独立路径的数量。可 以衡量一个组件模块的判定结构的复杂程度。(重点:衡量一个软件复杂度)
    控制流(Control Flow):执行组件或系统的一系列顺序的路径
    数据流(Data Flow):表示数据对象的顺利或状态发生变化的过程 (举例:选择商品(待支付),订单,确认订单,支付订(已支付)),待发货,已发货,签收订单(待签收))
    控制流程图:也叫控制流程图,是一个过程或程序的抽象表现
    圈复杂度:
    程序中独立路径的数量,可以衡量 一个组件模块的判定结构的复杂程 度
    三个公式:
    1、圈复杂度=区域数
    2、圈复杂度=判定节点+1  (具有判断功能的节点)
    3、圈复杂度=边数-节点+2 
     
    ----------------------------------------------------------------------------------------------------
    用例设计方法:

    黑盒测试方法:(10种)

     白盒测试方法:(5种)

    一、等价类设计用例方法:

    等价类:指某个输入域的集合,在集合中各个输 入的条件都是等效的

    通常等价类划分为2种情况:
    有效等价类:对程序规格说明有意义的、合理 的输入数据 (qq登录成功:账号,密码,都正确)
    无效等价类:对程序规格说明无意义的、不合 理的输入数据(登录不成功:1、密码错误,2
    账号错误,3、账号和密码多错4、密码为空,5,账号为空)
    等价类划分举例:
    • 规定了输入值的范围或值的个数(如:0<a<100或输入6-10个字符)
    • 输入值为布尔值(如:真或假)
    • 规定了输入数据的一组值(如 文化程度:初中、高中、大学)
    • 规定了输入规则时,可以划分出一个有效的等价类(符合规则)和若干个无效等价类(从不同角度违反规则)
     
    等价类划分的设计用例思路:
    1. 找输入条件
    2. 为每个输入条件找有效、无效等价类
    3. 为每个等价类编号
    4. 用最少的用例覆盖最多的有效等价类
    5. 每一个无效等价类都是一个用例 (重点)
    6. 并非所有有效等价类都有无效
    7. 等价类的覆盖可以重复覆盖 (重点)
    小结:等价类设计用例覆盖的原则:
    1、每个用例尽可能多的覆盖多个有效的等价类 
    2、每个用例只能覆盖一个无效等价类

    案例:

     

     

     

    常见的能够划分等价类的地方:
    1. 数值范围  (如:1990-2049年这是范围)
    2. 重复次数 (密码错误次数3次)
    3. 字符串长度 (6位数字)
    4. 字符串组中字符的个数 (已输入最多输入8个汉字)
    5. 文件命名(图片上图.png)
    6. 文件大小 (  微信上传100m,不能上传)
    7. 屏幕的颜色种类(柔和,明亮,)
    8. 超时时间 (外卖订单,支付倒计时)

     

    边界值设计用例方法:

     例如:

    闭区间

    设置密码2-8位   (上点:2 , 8)

               内点:3,4,5,6,7

               离点:1,9

    开区间

    设置密码2-8位   (上点:2 , 8)

               内点:4,5,6

               离点:3,7

     

    边界条件分析:
    1. 输入条件明确了一个值的取值范围,或规定了值的个数
    2. 输入条件明确了一个有序集合
    边界值分析原则
    1. 如果输入(输出)条件规定了取值范围,则应该 以该范围的边界内及边界附近的值作为测试用例
    2. 如果输入(输出)条件规定了值的个数,则用最 大个数,最小个数,比最小个数少一,比最大个 数多一的数作为测试数据
    3. 如果程序规格说明中提到的输入或输出是一个有 序集合,应该注意选取有序集合的第一个和最后 一个元素作为测试数据
     
     手机号11位: 上点11位,  10位(1~10),12位
    输入金额:100~5000   上点(100,5000)内点(101-4999),离点(99,5001)
     数据的小数点:保留两位小数(上点3.12)(离点3.122)(内点 :3.1)
     
    判定表:(主要是组合情况进行设计用例)

     

     对功率大于50马力的机器、维修记录不全或已运行10年以上的机器,应给予优先的维修处理……”。这里假定,“维修记录不全”和“优先维修处理”均已在别处有更严格的定义;请建立判定表。

    理解:1、 功率大于50马力的机器 和维修记录不全(优先)
    2、已运行10年以上的机器(优先)
     2**3=8种
     

     

    因果图:

     因果图最终转换成判定表

     举例:恒等:没钱----穷 ,  非:有钱-----穷

     或:有车,有房,有存款,  随便满足一个条件 ,就是有钱

    与:有车,有房,有存款  ,满足三个条件,才能算有钱

    异E:有存款,有取款 ,两个选择任选一个选择项,只能选择1个

    或i:有车,有房,有存款 ,最少有1个选择,不能同时为0

     唯一:有存款,有取款 两个选择任选一个选择项,必须有一个选项为1

    要求:有车,有房     ,可以理解为:有车就必须有房,有房必须有车,

    强制:有车,有房       可以理解为:经济压力大的时,选择买车就不能买房,买房就不能买车

     最主要把因果关系找出来

    案例:

     

    我们理解下:

     

     

     理解:

    比如:1、第一个条件都为1,是不存在的情况

     2、条件:满足1,2,4 ,中间结果:满足11,12,13,14 ,结果:是23,24

     

    重点:

     

    案例:

    某软件规格说明书包含这样的要求:第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文件的修改,但如果第一列字符不正确,则给出信息L;如果第二列字符不是数字,则给出信息M。
    解答:
    1)    根据题意,原因和结果如下:
                 原因:
                 1——第一列字符是A;
                 2——第一列字符是B;
                 3——第二列字符是一数字。
                 结果:
                 21——修改文件;
                 22 ——给出信息L;
                 23——给出信息M。
    2)    其对应的因果图如下:
    11为中间节点;考虑到原因1和原因2不可能同时为1,因此在因果图上施加E约束。

  • 相关阅读:
    std::exception标准和各平台实现的不同
    学习Linux必备的硬件基础一网打尽
    Git安装及SSH Key管理之Windows篇
    简要介绍一下Dos/Windows格式文件和Unix/Linux格式文件(剪不断理还乱的 和 )
    C/C++中的序列点
    STL容器之vector 的下标越界是否报错
    二维数组与指针的联系与区别
    C/C++ strlen函数为什么不能传入空指针NULL?
    棋盘游戏
    Knight Moves
  • 原文地址:https://www.cnblogs.com/xiaolehua/p/13944814.html
Copyright © 2011-2022 走看看