• 【软件测试】测试用例的设计


    主要基于黑盒测试设计测试用例。

    测试用例要素

    测试用例的重要要素:测试环境、操作步骤、测试数据、预期结果

    注意:测试用例要素中不需要执行结果,因为执行结果是执行了测试用例之后才会有的。

    测试用例的优点:

    • 避免了重复测试,提高测试效率,节省测试时间

    • 手工测试用例是自动化测试用例的前提

    测试用例设计方法

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

    需求文档 -> 梳理需求 -> 针对文档设计测试用例

    需求文档 :是需要产品经理进行讲解的

    梳理需求:测试人员进行的,需要充分理解需求(掌握需求)。

    针对文档设计测试用例:就是用到了基于需求进行设计测试用例

    163邮箱注册(基于需求设计测试用例)

    基于需求设计测试用例的万能公式:

    • 功能:业务流程,界面,易用性
    • 非功能:兼容,性能,安全,网络。

    上面的测试用例的设计只是针对需求进行了大概的测试,很难完整的列举出来,所以我们需要一些设计测试用例的方法

    1. 等价类

    在图书馆中的图书进行分类摆放:数学,人文,语言,经济……这个就是等价类的思想

    软件测试的等价类:依据需求将输入的数据集合(特殊情况下会考虑输出)划分为若干个类别,从每一类中选出一个测试用例,如果这个测试用例测试通过,则认为所代表的这一类测试通过。这样就可以用较少的测试用例达到尽量多的功能覆盖,解决了不能穷举测试的问题。

    • 有效等价类:满足用户需求输入集合
    • 无效等价类:不满足用户需求的输入集合

    等价类思想设计测试用例步骤

    1. 充分理解需求
    2. 划分有效等价类,划分无效等价类
    3. 从有效等价类抽取其中一个数据进行设计测试用例;从无效等价类中抽取其中一个进行设计测试用例

    以下面的需求为例

    |用户名 | 必填,录入用户名 | 6至15

    ⁡⁢‌⁣⁣‌‍‬‍‌‌‌‌⁡⁡⁢⁤‌⁡‬⁢⁢‌‬⁤⁤‌⁣⁤‬⁤⁤⁡用户名长度6~15位(等价类设计测试用例)

    2. 边界值

    通常边界值分析法是作为对等。价类划分法的补充,这种情况下,其测试用例来自等价类的边界 。

    边界点:

    • 上点:边界上的点
    • 内点:边界内的点
    • 离点:边界附近的一个点
      • 闭区间:区间外距离上点最近的点
      • 开区间:区间内距离上点最近的点

    image-20230905214124777

    边界值设计测试用例方法:

    1. 充分理解需求
    2. 找边界点
    3. 针对边界点设计测试用例

    以下面的需求为例

    |用户名 | 必填,录入用户名 | 6至15

    ‍‬⁡⁢‍⁤‬‍‬‍‍⁤‬‌⁢‍⁡‬⁤⁢‬‬‌‌⁤⁢‬‍‌⁤⁢⁤用户名长度6~15位(边界值设计测试用例)

    通常情况下会把等价类和边界值法一起来设计测试用例

    3. 判定表

    为什么不用因果图法?

    通过因果图设计测试用例,就是把因果图专化为判定表。

    判定表(Decision table):是另一种表达逻辑判断的工具

    判定表的关系:

    • 与:所有条件为真则为真,反之为假
    • 或:所有条件为假则为假,反之为真
    • 恒等:条件为真,结果一定为真
      • 动物园运进来熊猫,动物园有熊猫
    • 非:条件为假,结果才为真
      • 你不好好学习,找到好工作

    如何通过判定表设计测试用例:

    (1)分析所有可能的输入和可能的输出。
    (2)找出输入与输出之间的对应关系。
    (3)设计判定表
    (4)把判定表对应到每一个测试用例。

    案例:

    假设业务单据的处理规则为:“淘宝618活动,订单已提交,订单合计金额大于300元或有红包,则进优惠”。

    1. 分析所有可能的输入和可能的输出。

      • 输入:订单已提交,订单金额大于300,有红包。
      • 输出:优惠,不优惠
    2. 找出输入与输出之间的对应关系。

      • 订单已提交,金额大于300, 有红包,优惠
      • 订单已提交,金额大于300, 没有红包,优惠
      • 订单已提交,金额小于300, 有红包,优惠
      • 订单已提交,金额小于300, 没有红包,不优惠
      • 订单未提交,金额大于300, 有红包,不优惠
      • 订单未提交,金额大于300, 没有红包,不优惠
      • 订单未提交,金额小于300, 有红包,不优惠
      • 订单未提交,金额小于300, 没有红包,不优惠
    3. 设计判定表

    12345678
    订单提交YYYYYYYY
    金额大于300YYNNYYNN
    有红包YNYNYNYN
    优惠YYYNNNNN
    不优惠NNNYYYYY
    1. 把判定表对应到每一个测试用例。

    ⁣⁡⁣⁤‌⁣‬‍⁣‌⁡⁤⁢⁢⁤‬‌⁤‌⁤⁣‬‌⁤⁢⁤⁤⁤‍‌‬⁤⁤⁡‍‍⁢‬⁡‍淘宝618(判定表设计测试用例)

    找到输入与输出的关系和测试用例不是一样吗?为什么还要有设计判定表,对应到测试用例。

    因为第四步是测试点,后期要针对测试点补充测试用例要素的。标准的测试用例要有测试用例的要素的(测试环境、操作步骤、测试数据、预期结果)

    4. 正交表法

    最简单的正交表是L⁴(2³),含意如下:“L”代表正交表;L 下角的数字“4”表示有 4 横行,简称行,即要做四次试验;括号内的指数“3”表示有3 纵列,简称列,即最多允许安排的因素是3 个;括号内的数“2”表示表的主要部分只有2 种数字,即因素有两种水平1与2。正交表的特点是其安排的试验方法具有均衡搭配特性。

    名词的意思:

    • 因素:变量
    • 水平: 变量取值

    正交表的两条性质:

    • 每一列中各数字出现的次数都一样多。
    • 任何两列中的各有序数对出现的次数都一样多。

    通过正交表设计测试用例:

    充分理解需求 -> 确定因素水平 -> 画正交表 -> 补充正交表 -> 将正交表转换成测试用例

    以注册的需求为例:
    姓名、邮箱、密码、确认密码、验证码必须全部输入,才能进行注册 。

    因素:姓名、邮箱、密码、确认密码、验证码

    水平:填写,不填写

    allpirs画正交表。

    1. 将水平和因素填写到excel中。

      姓名邮箱密码确认密码验证码
      填写填写填写填写填写
      不填写不填写不填写不填写不填写
    2. 将excel表格复制到txt文件中

    3. 在allpirs安装路径下进入cmd

    4. 执行一个命令 allpirs.exe 文件名 >结果文件名

    allpairs.exe 20230906.txt > 20230906_result.txt

    执行结果:

    image-20231001113303441

    ~意味着此时这个取值可以是填写也可以是不填写

    1. 补充正交表:

      姓名、邮箱、密码、确认密码、验证码都不填写

    5. 场景设计法

    针对全流程设计测试用例。

    主事件流:用户经常使用的场景

    次事件流:此事件流基于主事件流,用户在使用的时候可能会出的意外的事件。

    image-20231001185229110

    通常情况下,需要把用户经常用到的功能模块串联到一起进行测试。保障了用户经常使用的功能没有问题。

    6. 错误猜测法

    依赖于测试人员的经验。

    以注册为例
    1、校验中特殊字符空格的处理? 开始位置,中间位置的空格的处理。
    2、密码校验中的大小写?
    3、姓名中的特殊字符?
    4、密码发送是否明文

    面试题

    1. 模拟弱网

    可以借助许多工具(Charles,Fiddler……).

    打开限速模式:

    image-20230906233304605

    打开用户规则:

    image-20230906233702321

    image-20230906234412413

    2. 接口如何测试

    用postman来进行接口测试。

    1. 复制接口地址

    image-20231001195006735

    1. 将接口导入到postman中进行测试

    image-20231001195210192

    1. 对接口进行测试:

    image-20231001195646110

    3. 写一个冒泡排序,针对这个代码如何测试

    方法参数(参数类型,不给参数,参数传递为空)

    异常处理

    代码规范:语句覆盖,条件覆盖,语句条件覆盖,判定覆盖。

    4. linux中的zip命令

    功能:

    • 打包的文件是一个不存在的文件

    • 命令使用正确,文件存在,文件是否被压缩

    • 能否一次性打包多个文件

    • 打包后的内容是否有缺失

    界面:

    • 打包后的zip高亮
    • 打包后的文件后缀名.zip

    易用:

    • 输入错误,此时有没有提示
    • 输入成功,会不会有提示

    性能:

    • 打包一个1KB文件时间是多少
    • 打包的文件是一个20GB
    • 一次打包多个文件时间多少
    • 打包之后空间节省多少

    5. 针对水杯设计测试用例

    ‍‬⁣‍‬⁣⁤‬⁤‬⁢‬⁡⁤‬‍⁡‌‍‬⁡⁤⁢‌⁤⁡⁣‌‍‍⁢⁢‬⁣⁤⁡⁤‍水杯的测试用例

    测试用例的万能公式

    功能:

    • 物体:这个物体主要是干什么的
    • 软件:软件实现的功能

    界面:

    • 物体:外表,材质,大小,容量……
    • 软件:界面,字体大小,字体颜色,页面布局是否合理

    易用:

    • 操作简单,使用流畅,人性化

    兼容:

    • 物体:除了本质功能,还有没有其他功能
    • 软件:操作系统,设备,浏览器版本

    性能:

    • 物体:使用寿命
    • 软件:相应时间,吞吐量,并发数

    安全:

    • 物体:物体材质是否有毒,物体会不会对人体健康造成威胁
    • 软件:sql注入,XSS漏洞,输入有毒的脚本

    网络:

    • 软件:2G~5G。wifi,弱网

    6. 微信发朋友圈

    ‍⁢⁤⁢‬‍‍‌‌⁣⁡⁤⁣⁤‌‌‌‌⁡‬‍⁤⁣‬⁤⁡⁤⁢⁣‍⁣‬⁤⁢⁣微信发送朋友圈 - 飞书云文档 (feishu.cn)

  • 相关阅读:
    Git纯操作版 项目添加和提交、SSH keys添加、远程仓库控制、冲突解决、IDEA连接使用
    2023年8月京东冰箱行业品牌销售排行榜(京东数据挖掘)
    数据分析:基于Pandas的全球自然灾害分析与可视化
    深度学习1:神经网络原理与算法详解
    Python手写自然语言处理(NLP)
    【CSS】常用知识点
    mysql redo 日志 、 undo 日志 、binlog
    误删 performance_schema 后恢复
    CSS3心跳和小球跳动animation案例
    LeetCode-791. 自定义字符串排序【哈希表,字符串,排序】
  • 原文地址:https://blog.csdn.net/weixin_66409969/article/details/133495394