• 【软件测试】理论知识基础第二章


    前言🏆 没有哪一种风格可以定义我,年轻的灵魂需要千姿百态 🏆

    一、解决穷举测试点覆盖问题

    (1)等价类划分法

    1️⃣ 等价类划分法说明

    • 在所有测试数据中,具有某种共同特征的数据集合进行划分;(等价类划分是一种重要的、常用的黑盒测试方法,不需要考虑程序的内部结构,只需要考虑程序的输入规格即可)

    2️⃣ 等价类划分法分类:

    • 有效等价类:满足需求的数据集合;
    • 无效等价类:不满足需求的数据集合;

    3️⃣ 等价类划分法步骤:

    1. 明确需求;
    2. 确定有效等价类和⽆效等价类;
    3. 提取数据编写⽤例;

    (2)案例1:验证QQ账户的合法性

    🔥要求🔥:验证6~10位⾃然数的QQ合法性;

    (3)案例2:验证某城市电话号码正确性

    🔥要求🔥:

    1. 区号:空或者是三位数字;
    2. 前缀码:非 “0” 且非 “1” 开头的三位数字;
    3. 后缀码:四位数字;

    (4)等价类划分法总结

    1️⃣ 针对:需要有⼤量数据测试输⼊,但是没法穷举测试的地⽅;

    2️⃣ 使用场景:输⼊框、下拉列表、单选复选框;

    3️⃣ 典型代表:页面的输⼊框类测试;


    二、解决边界限制测试点覆盖问题

    (1)边界值分析法

    1️⃣ 边界范围节点:选取正好等于、刚好大于、刚好小于边界的值作为测试数据;

    • 上点:边界上的点(正好等于);
    • 离点:距离上点最近的点(刚好大于、刚好小于);
    • 内点:范围内的点(区间范围内的数据);

    2️⃣ 边界值分析法步骤:

    1. 明确需求;
    2. 确定有效等价类和⽆效等价类;
    3. 确定边界范围;
    4. 提取数据编写⽤例;

    3️⃣ 😆温馨提醒(1)😆:边界值能解决位数限制问题,但是不能解决类型问题(要结合等价类);

    4️⃣ 😆温馨提醒(2)😆:有效数据和无效数据的分界点,往往作为程序员编写程序的判断点,是程序员容易犯错误的地方,也是测试人员重点测试的内容;

    (2)案例1:通过边界值法验证标题长度的合法性

    🔥要求🔥:标题长度大于0,小于等于30个字符;

    (3)案例2:通过边界值法验证QQ号码的合法性

    🔥要求🔥:6~10位⾃然数

    (4)案例优化

    1️⃣ 优化(7点优化5点):

    • 重点:开内闭外(开区间选包含的点,闭区选不包含的点);
    • 开区间:不包含边界上的点(没有等号)如:a<10;
    • 闭区间:包含边界上的点(有等号)如:a<=10;

    2️⃣ 优化策略:

    • 结论:7个优化为5个点;
    • 上点:必选(不考虑区间开闭);
    • 内点:必选(建议选择中间范围);
    • 离点:开内闭外(考虑开闭区间,开区间选择内部离点,闭区间选择外部离点);

    (5)边界值分析法总结

    1️⃣ 使用场景:在等价类的基础上针对有边界范围的测试数据输⼊的地⽅(重点关注边界);

    2️⃣ 常⻅词语描述:⼤⼩、尺⼨、重量、最⼤、最⼩、⾄多、⾄少等修饰词语;

    3️⃣ 典型代表:有边界范围的输⼊框类测试;

    4️⃣ 常见边界值:

    • 文本框接收字符个数,比如用户名长度,密码长度等;
    • 报表的第1行和最后1行;
    • 数值元素的第1个和最后1个;
    • 循环的第1次、2次和倒数第1次、2次;

    三、解决多条件组合依赖测试点覆盖问题

    (1)判定表法

    1️⃣ 判定表法的定义

    • 是一种以表格形式表达多条件逻辑判断的工具;

    2️⃣ 判定表法的组成:

    • 条件桩:列出问题中的所有条件,列出条件的次序无关紧要;
    • 动作桩:列出问题中可能采取的操作,操作的排列顺序没有约束;
    • 条件项:列出条件对应的取值,在所有可能情况下的真假值;
    • 动作项:列出条件项的、各种取值情况下应该采取的动作结果;

    3️⃣ 判定表法的规则:

    • 判定表中贯穿条件项和动作项的一列就是一条规则;
    • 假设有n个条件,每个条件的取值有两个(0,1),全组合有2的n次方种规则;

    4️⃣ 判定表法设计用例步骤:

    1. 明确需求;
    2. 列出条件桩和动作桩,填写条件项,对条件进⾏全组合,根据条件项的组合确定动作项;
    3. 分析生成的组合规则,对相似规则进行合并简化(合并简化有风险需谨慎,当时间紧张,内部逻辑结构一致的时候,可以考虑合并);
    4. 根据规则编写测试⽤例;

    (2)案例1:订购单检查

    🔥要求🔥

    1. 如果金额大于500元,又未过期,则发出批准单和提货单;
    2. 如果金额大于500元,但过期了,则不发批准单和提货单;
    3. 如果金额小于等于500元,则不论是否过期都发出批准单和提货单;
    4. 在过期的情况下不论金额大小还需要发出通知单;

    (3)案例2:文件修改规则

    🔥要求🔥

    1. 输入的第一列字符必须是A或者B;
    2. 第二列字符必须是一个数字;
    3. 如果第一列字符不正确,则给出信息L;
    4. 如果第二列字符不正确,则给出信息M;
    5. 如果两列字符输入正确,则修改文件成功;

    (4)判定表法总结

    1️⃣ 使用场景:有多个输入条件,多个输出结果,输入条件之间有组合关系、输入条件和输出结果之间有依赖(制约)关系;

    2️⃣ 判定表⼀般适⽤于条件组合数量较少的情况(比如4个条件以下);

    3️⃣ 如果碰到项⽬中多条件组合⼤于4个相互依赖,可以使⽤(正交表和因果图来实现);


    四、解决项目业务场景测试点覆盖问题(重点)

    (1)场景法

    1️⃣ 场景法概述

    • 场景法就是模拟用户操作软件时的场景,主要用于测试系统的业务流程;

    2️⃣ 当拿到一个测试任务时,我们并不是先关注某个控件的边界值、等价类是否满足要求,而是先要关注它的主要功能和业务流程是否正确实现,这就需要使用场景法来完成测试。当业务流程测试没有问题,也就是该软件的主要功能没有问题时,我们再重点从边界值、等价类等方面对控件进行测试;

    3️⃣ 场景法中两个重要的概念:

    • 基本流:按照正确的业务流程来实现的一条操作路径(模拟正确的操作流程);
    • 备选流 :导致程序出现错误的操作流程(模拟错误的操作流程);

    4️⃣ 😆温馨提醒😆:在冒烟测试时也主要采用场景法进行测试;

    (2)流程分析法

    1️⃣ 流程分析法的概念

    • 流程分析法主要是针对测试场景类型,属于流程测试场景的测试项子项进行设计,是从白盒测试设计方法中的路径覆盖分析法借鉴过来的一种方法。

    2️⃣ 流程分析法的优点

    • 降低了测试用例设计难度,只要搞清楚各种流程,就可以设计出高质量的测试用例来,而不需要太多测试方面的经验;
    • 在测试时间较紧迫的情况下,可以有的放矢的选择测试用例,而不用完全根据经验来取舍;

    3️⃣ 流程分析法的步骤

    • 详细了解需求;
    • 根据需求说明或界面原型,找出业务流程的各个页面以及各页面之间的流转关系;
    • 画出业务流程(产品经理使用Axure软件制作);
    • 写用例覆盖所有的路径分支;

    4️⃣ 😆练习流程图⼯具😆:

    (3)ATM机取款流程

    🔥要求🔥:使用ATM机取款正常流程;

    😃流程图😃:
    在这里插入图片描述
    在这里插入图片描述


    五、错误推荐法

    1️⃣ 错误推荐法的定义

    • 错误推测法是指利用直觉和经验猜测出出错的可能类型,有针对性列举出程序中所有可能的错误和容易发生错误的情况,它是测试经验丰富的测试人员喜欢使用的一种测试用例设计方法;

    2️⃣ 错误推荐法的基本思想

    • 基本思想是列举出可能犯的错误或错误易发生的清单,然后根据清单编写测试用例;这种方法很大程度上是凭经验进行的,即凭人们对过去所作测试结果的分析,对所揭示缺陷的规律性作直觉的推测来发现缺陷;

    3️⃣ 错误推荐法的使用场景:

    • 时间紧任务量大时,根据之前项目类似经验找出易出错的模块重点测试;
    • 时间宽裕时通过该方法列出之前出现问题较多的模块再次测试;

    六、总结

    😝 我会坚持一直更新呢!喜欢的朋友们记得点点赞哦!有问题的小伙伴可以在下面评论区留言哦! 😝

  • 相关阅读:
    简单总结Centos7安装Tomcat10.0版本
    洛谷刷题入门篇:顺序结构
    python面向对象的三大特性:封装,继承,多态
    实现fastdfs防盗链功能
    Java数据结构-优先级队列
    软件机器人助力企业产地证自动化申报,提高竞争力,降低成本
    Django创建应用、ORM的进阶使用及模型类数据库迁移
    Dubbo面试题汇总【40题】
    极速进化,光速转录,C++版本人工智能实时语音转文字(字幕/语音识别)Whisper.cpp实践
    返回多维数组转换为一维后的数组
  • 原文地址:https://blog.csdn.net/battledao/article/details/127392502