• 【测试开发】软件测试——测试用例设计&测试分类详解


    测试用例的基本要素

    在学习测试用例的基本要素之前,我们先回顾一下前面的一些知识:

    什么是测试用例❓

    向被测试系统发起的一组集合,包含测试环境,测试步骤,测试数据,预期结果

    为什么测试人员要写测试用例?(带给我们的好处)

    1. 测试用例是测试执行的依据
    2. 测试用例可以复用,在进行回归测试的时候不用重新编写
    3. 测试用例可以衡量需求的覆盖率!
    4. 后人可以借鉴
    5. 手工测试用例是自动化测试的依据!

    测试用例的设计方法

    基于需求进行测试用例的设计

    需求是测试人员进行测试的依据,测试人员需要分析需求,验证需求的合理性和正确性,无二义性 。从需求当中提取出测试项,根据测试项进行进一步的细分,提取出测试点,编写测试用例。

    在分析测试需求时,一般分为功能测试需求非功能测试需求

    功能需求测试分析

    对于功能测试中,可以借助功能框图来帮助我们进行测试的需求分析。概括起来,功能测试需求包括以下,通常包括以下几个方面。

    1. 从界面开始进行测试(看是否符合UI设计稿)
    2. 验证软件的功能,把业务相关的功能串起来进行测试,不能光关注某一个孤立的功能。比如:淘宝APP中的购物场景,我们需要搜索商品——加入购物车——结算——付钱,这一系列就是把相关的功能串起来进行测试,而不是说只关注某个单一的功能。
    3. 一个功能的不同的输入,和相应的不同的输出。比如:QQ登录功能,输入正确的账号密码,输入错误的账号密码和输入为空,得到的输出结果都是不同的。
    4. 功能之间的一致性和交互性:可以理解为同一个系统不同角色之间的交互。就比如我们在淘宝(同一系统) 上购物时,(不同角色)买家和卖家
    5. 异常功能的测试
    6. 功能用到的相关算法的验证
    7. 从易用性,兼容性,性能等几个方面去考虑

    下面让我们一起来看个具体的例子:思考一下我们要如何去分析这个日历页面,才能做到毫无保留把相关功能分析完呢❓🤔
    答案就是:页面分析可以从上到下,从左到右,依次去分析每个测试点
    在这里插入图片描述

    非功能性需求测试分析

    非功能测试就是:测试在软件本身有的功能上做的一些限制
    具体包括:易用性测试,兼容性测试,性能,安全测试,可移植性测试,可靠性测试,容错性测试,可维护性

    不同的应用软件对于以上非功能的要求还不太一样
    在这里插入图片描述

    具体的设计测试用例的方法

    等价类

    根据输入(特殊情况下才考虑输出),把输入划分成若干个等价类,从每一个等价类当中选择测试用例进行测试,如果这个测试用例测试通过,我们就说这个测试用例代表的等价类测试通过。

    等价类帮助我们解决了测试用例无法穷举的情况

    应用场景如下:
    在这里插入图片描述
    等价类可以划分为:

    1. 有效等价类 : 符合需求数据规格说明的数据集合
    2. 无效等价类: 不符合需求规格说明的数据集合

    举例如下:
    在这里插入图片描述

    边界值

    针对输入和输出的边界进行测试用例的设计,边界值要取边界上的值,和边界左右两边的值。
    就拿上边的那个例子来说,它的有效范围为6-15位,而边界值为:5、6、15、16

    小tip:等价类和边界值结合在一起进行测试用例的设计

    错误猜测法

    根据测试人员的经验,知识积累,猜测某一块功能有问题,有针对性的进行测试用例的编写。类似于探索性测试,针对性比较强,比较依赖测试人员个人的水平。适用于在用例设计后,作为补充,加强去设计测试用例。
    示例如下:
    在这里插入图片描述

    场景法

    很多软件不同的场景,是基于不同的事件的触发。不同事件的触发,导致场景走向不同的事件流。不同的功能点串起来形成一个场景,不同的功能点又有不同的输出,不同的输出导致不同的测试场景。

    案例如下:
    在这里插入图片描述
    虽然我们能够写出这么多的事件,但是它并不算是一个测试用例,这里我们只是把每个场景可能涉及到的情况写了下来,而测试用例它是应该带有测试效果的。

    测试用例(举例):

    1. 插错银行卡,系统提示“无法识别”
    2. 卡消磁后,插入该卡,ATM机提示“无效卡”,请检查你的银行卡是否有效!

    场景法就是根据场景中会可能发生的事件进行测试用例的设计😊

    因果图法

    因果图是一种逻辑图恒等、与、或,非用因果图来设计测试用例,叫做因果图法。

    使用场景: 当我们有很多输入,不同的输入或者不同的输入组合针对有不同的输出,这个时候我们可以用因果图法来进行测试用例的设计。

    恒等:输入为真,输出也为真

    在这里插入图片描述

    与:多个不同的输入同时为真,输出才为真

    就拿现在结婚来说:(是在必须有车有房才结婚的前提下来说)
    在这里插入图片描述

    或:多个输入中其中一个为真,输出为真

    还拿结婚的例子来说:
    在这里插入图片描述

    非:输入为真,输出为假

    在这里插入图片描述

    因果图法设计测试用例的步骤

    1. 分析出所有的输入和输出
    2. 找出输入和输出之间的组合关系
    3. 根据关系画出因果图
    4. 根据因果图画出判定表
    5. 根据判定表写出测试用例

    举例:根据 618 的活动,订单已提交且金额大于 300 或者有红包,有优惠

    分析出所有的输入和输出

    输入: 订单已提交,金额大于 300,有红包 ;
                订单未提交,金额小于等于 300,没有红包

    输出: 有优惠,无优惠

    输入和输出的组合关系
    1. 订单已提交,金额大于 300,有红包 —> 有优惠
    2. 订单已提交,金额小于等于 300,有红包 —> 有优惠
    3. 订单已提交,金额大于 300,没有红包—> 有优惠
    4. 订单已提交,金额小于等于 300,没有红包 —> 没有优惠
    5. 订单未提交,金额大于 300,有红包 —> 没有优惠
    6. 订单未提交,金额小于等于 300,有红包—>没有优惠
    7. 订单未提交,金额大于 300,没有红包—>没有优惠
    8. 订单未提交,金额小于等于 300,没有红包 —>没有优惠
    根据关系画出因果图

    在这里插入图片描述

    根据因果图画出判定表

    在这里插入图片描述

    根据判定表写出测试用例

    判定表的每一列都是一个测试用例:

    1. 订单已提交,金额大于 300,有红包 , 有优惠
    2. 订单已提交,金额大于 300,没有红包,有优惠
    3. 订单已提交,金额小于等于 300,有红包 , 有优惠
    4. 订单已提交,金额小于等于 300,没有红包,没有优惠
    5. 订单未提交,金额大于 300,有红包 ,没有优惠
    6. 订单未提交,金额大于 300,没有红包,没有优惠
    7. 订单未提交,金额小于等于 300,有红包,没有优惠
    8. 订单未提交,金额小于等于 300,没有红包 ,没有优惠

    正交法(了解)

    根据正交性来设计测试用例,从大量的试验(测试)数据中根据正交原则取出最优的数据的组合,根据最有数据组合试验的结果,来分析整个测试的结果。

    正交法的目的是为了减少用例数目,用尽量少的用例覆盖输入的两两组合。

  • 相关阅读:
    【4.1 统计学基本概念】(描述性统计分析)——CDA
    Pandas数据的导入与导出
    一文带你深入闭包与作用域链原理(无惧面试)
    ARM32开发--RTC内置实时时钟
    【Vue】npm install 命令
    软件测试相关知识
    R统计绘图-随机森林分类分析及物种丰度差异检验组合图
    ABAP Web dynpro layout动态可见
    【JVM基础】Java双亲委派机制
    Python爬虫实现(requests、BeautifulSoup和selenium)
  • 原文地址:https://blog.csdn.net/m0_46468731/article/details/125612170