软件测试 - 用例篇

article/2025/11/9 13:17:18

回顾上一篇博客主要内容:软件测试 - 基础篇
1: 软件测试的流程是什么?

需求分析,测试计划,测试设计/测试开发,测试执行,测试报告

需求分析
分析需求,验证需求的正确性和合理性,从需求中提取出测试项

测试计划
要考虑测试人数,测试环境,测试时间,测试设备等

测试设计/测试开发
要根据需求写测试用例

测试执行
到这里开发已经完成;我们要执行测试用例,验证功能是否完善,有BUG就提交BUG,验证BUG

测试评估
写了多少测试用例,执行了多少,剩余的测试用例数有多少,有多少BUG数量,解决的BUG数量,遗留的BUG以及解决方案,测试范围以及测试功能等

2: 如何描述一个 BUG ?

1:发现问题版本
2:测试环境
3:测试数据
4:测试步骤
5:测试实际结果与预期结果
6:附件,错误日志,错误截图等等
7:不要把多个BUG放到一起

3: 因为一个 BUG 和开发人员产生了冲突怎么做?

1: 先检查自身,看 BUG 描述是否清楚
2: 从用户的角度去说服开发人员
3: BUG 定级要依据公司的标准
4: 要不断的提高自己的技术和业务水平,提高自己在团队的影响力
5: 找产品经理一起商量解决办法

4: 在回忆什么是测试用例?

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

  • 为什么软件测试人员要写测试用例?
  • 基于需求设计测试用例
  • 具体的设计测试用例的方法
    • 1: 等价类
    • 2: 边界值
    • 3: 错误猜测法
    • 4: 场景设计法
    • 5: 因果图法
      • 5.1 恒等
      • 5.2 与
      • 5.3 或
      • 5.4 非
      • 5.5 因果图法设计测试用例的步骤
        • 5.5.1 分析出所有的输入和输出
        • 5.5.2 找出输入和输出之间的组合关系
        • 5.5.3 根据关系画出因果图
        • 5.5.4 根据因果图画出判定表
        • 5.5.5 根据判定表写出测试用例
    • 6: 正交法(了解)

为什么软件测试人员要写测试用例?

1: 测试用例是测试执行的依据

2: 测试用例可以复用,在进行回归测试的时候不用重新编写

3: 测试用例可以衡量需求的覆盖率
查看需要测试的需求是否都测了,写下来之后就不会频繁的测试最后可能就会把自己搞晕,对照着测试还是很方便的

4: 后人可以借鉴
我们写的测试用例都是在公司会有备份的,即使你后来不干了,后面来的新人就可以借鉴你写的测试用例

5: 手工测试用例是自动化测试的依据
自动化测试就是把手工测试用例给转换成代码脚本,让其自己测,从而提高效率

基于需求设计测试用例

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

1: 从界面开始进行测试(符合UI设计稿)(功能性)
这是我们拿到软件的第一眼,看看是否好坏,是否满足需求

2: 验证软件的功能,把业务相关的功能串起来进行测试(功能性)
比如一个淘宝大概的流程:搜索,加入购物车,结算,付钱…看看是否满足需求,要求我们不能针对一个点进行测试,要把他们串起来

3: 一个功能的不同的输入,和相应不同的输出(功能性)
就像我们登录QQ一样,用户名密码正确成功登入是一种情况,用户名或密码错误是一种情况,有一个没写又是一种情况

4: 功能之间的交互性(功能性)
就像注册和登录是两回事,购物车跟收藏夹也是(购物车满了,可以放在收藏夹里),联系客服(买家跟卖家的联系)等等

5: 异常功能的测试(功能性)
就像QQ登录一样,输错了有没有提示信息,都分别提示的什么?

6: 功能用到的算法的验证(功能性)
有一些功能是需要用到算法的,要结合代码,所以需要和开发人员沟通怎样测,然后设计一些数据来进行测试

7: 从易用性,兼容性性能等几个方面去考虑(非功能性)
软件用起来简单还是不好上手,软件安在各种的系统上有没有不兼容的情况,这些都要进行测试

浅浅看一下日历的一些功能在这里插入图片描述

我们在对不同应用的软件对于非功能性的要求是不一样的:
1: 面向客户端的软件,像画图板,office,Word等对性能,安全性要求不高的,但是对于兼容性(必须在不同的系统上都能够使用),可移植性,稳定性要求(频繁使用)较高
2: 面向企业内部的软件,像飞Q,飞书,钉钉等对兼容性要求不高,但是对于功能性要求高,可靠性要求高
3: 大型商用软件,像微信,QQ等对性能,兼容性,可靠性,可移植性,安全性等要求较高(毕竟用户多,而且腾讯也是用他们来赚钱的,懂得都懂,虽然他是免费的,但是我们发现他上面是有很多广告的,只要我们点击了,腾讯就会向广告商收钱,想一想这其中有多少用户…)

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

1: 等价类

根据需求输入(特殊情况会考虑输出)划分为若干个等价类,从等价类中选出一个测试用例,如果这个测试用例测试通过,则认为所代表的等价类测试通过,这样就可以用较少的测试用例达到尽量多的功能覆盖,解决了不能穷举的问题
就像我们春夏秋冬的衣服都是分类好的放在一块区域(勤快的人哈…),就可以把它们理解为等价类
在这里插入图片描述

2: 边界值

边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。
在这里插入图片描述

3: 错误猜测法

根据测试人员的经验,知识积累,猜测某一块功能有问题,有针对性的进行测试用例的编写(就像探索性测试,针对性比较强,比较依赖测试人员的个人水平)

例如:

1: 搜索框查询(空格)
在某个搜索框里搜一个名字(王二狗),但是用户在输入的时候前面多输了空格或者后面多输了空格导致并没有查到王二狗,但是数据库确确实实有王二狗,就是因为这个空格导致了数据不匹配所以查不到,我们学Java的都知道,在 String 中有一个方法叫 trim(),他就可以去除字符串前后的空格(当然中间的是不能去掉的,中间的用户是能够发现的,是有意义的)

2:搜索查询出的信息 有5000条(去重了)
查找500条关键信息,每一页展示 100 条,共展示5页,但是发现不同的页面上有相同的数据,数据 id 也一样,为什么?
因为我们查询一般是要进行排序的:
在这里插入图片描述

4: 场景设计法

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

例如:ATM取款机场景流程:
插卡 => 输入密码 => 输入取款钱数 => 取款 => 退卡
针对每一个点都存在一些事件:

1: 插卡:

  1. 插错了卡(公交卡,饭卡,会员卡…非银行卡)
  2. 银行卡的磁条无法识别
  3. 卡损坏
  4. 卡号冻结,账户锁死
  5. 网络不好,无法识别卡
  6. 停电吞卡

2: 输入密码:

  1. 输入正确的密码
  2. 输入错误的密码
  3. 不输入密码,直接点击确认
  4. 密码输入错误超过三次,账户锁定
  5. 密码第一次输入错误,第二次或第三次输入正确
  6. 测试密码是否加密
  7. 是否支持不同字符的输入

3: 输入取款钱数:

  1. 输入小于卡余额的钱数
  2. 输入等于卡余额的钱数
  3. 输入大于卡余额的钱数
  4. 输入非整百的钱数
  5. 不输入直接点击取钱按钮(这时取钱按钮是灰色的)

4: 取款:

  1. 输入小于等于卡余额的钱数时,取款成功
  2. 输入大于银行卡余额的钱数,取款失败,并提示"余额不足"
  3. 超过每日取款余额的上限
  4. 超过每日取款次数的上限

5: 退卡:

  1. 取钱后正常退卡
  2. 操作超时,吞卡

6: 还有 ATM 机存在的问题:

  1. ATM 一切正常
  2. ATM 余额不足
  3. ATM 断网,断电,硬件故障 软件系统崩溃
  4. 发生异常情况 ATM 是否支持事务回滚

虽然我们能够写出这么多的事件,但是他不算一个测试用例的,这里我们只是把每个场景可能设计到的情况写了下来.测试用例他是应该带有测试效果的:

1: 插错银行卡,系统提示"无法识别"
2: 卡消磁后,并将其插入 ATM 中,ATM 提示"无效卡,请检测你的银行卡是否有效!"

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

5: 因果图法

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

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

5.1 恒等

输入为真,输出也为真
在这里插入图片描述

5.2 与

多个不同的输入同时为真,输出才为真.
在这里插入图片描述

5.3 或

多个输入中其中一个为真,输出为真.
在这里插入图片描述

5.4 非

输入为真,输出为假.
在这里插入图片描述

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

1: 分析出所有的输入和输出

2:找出输入和输出之间的组合关系

3: 根据关系画出因果图

4: 根据因果图画出判定表

5: 根据判定表写出测试用例

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

5.5.1 分析出所有的输入和输出

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

输出: 有优惠,无优惠

5.5.2 找出输入和输出之间的组合关系

1: 订单已提交,金额大于 300,有红包 ===> 有优惠

2: 订单未提交,金额小于等于 300,有红包 ===> 有优惠

3: 订单已提交,金额大于 300,没有红包 ===> 有优惠

4: 订单已提交,金额小于等于 300,没有红包 ===> 没有优惠

5: 订单未提交,金额大于 300,有红包 ===> 没有优惠

6: 订单未提交,金额小于等于 300,有红包 ===> 没有优惠

7: 订单未提交,金额大于 300,没有红包 ===> 没有优惠

8: 订单未提交,金额小于等于 300,没有红包 ===> 没有优惠

5.5.3 根据关系画出因果图

在这里插入图片描述

5.5.4 根据因果图画出判定表

在这里插入图片描述

5.5.5 根据判定表写出测试用例

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

1: 订单已提交,金额大于300,有红包 > 有优惠

2: 订单已提交,金额大于300,没有红包 > 有优惠

3: 订单已提交,金额小于等于300,有红包 > 有优惠

4: 订单已提交,金额小于等于300,没有红包 > 没有优惠

5: 订单未提交,金额大于300,有红包 > 没有优惠

6: 订单未提交,金额大于300,没有红包 > 没有优惠

7: 订单未提交,金额小于等于300,有红包 > 没有优惠

8: 订单未提交,金额小于等于300,没有红包 > 没有优惠

6: 正交法(了解)

知道有这个方法就行.

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

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


http://chatgpt.dhexx.cn/article/nEkRXjkI.shtml

相关文章

软件测试用例优先级,软件测试用例的优先级划分方法

随着互联网的不断发展,程序员对于软件品质以及运行状况等参数关注程度也在提高,而今天我们就一起来了解一下,在划分测试用例优先级的时候都有哪些划分方法可以使用。 没有软件系统是完美的,任何系统都有BUGS。但是每一次得迭代都有…

软件测试:测试用例

一、通用测试用例八要素  1、用例编号;  2、测试项目;  3、测试标题;  4、重要级别;  5、预置条件;  6、测试输入;  7、操作步骤;  8、预期输出 二、具体分析通用测试用例八要…

【软件测试】测试用例的设计方法

文章目录 1. 测试用例的概念2. 设计测试用例的好处3. 基于需求设计测试用例3.1 功能性需求3.2 非功能性需求 4. 设计测试用例的具体方法4.1 等价类4.2 边界值4.3 错误猜测法4.4 场景设计法4.5 因果图法4.6 正交法 5. 测试用例的粒度 1. 测试用例的概念 测试用例就是测试人员向…

如何写好测试用例

目录 前言 为什么要写用例? 那怎么写好测试用例呢? 那么我们日常测试中,如果用xmind梳理用例结构注意哪些点呢? 结语 前言 经历过校招或社招的测试同学,都会被问到测试用例的设计、使用方法,以及用例的…

软件测试——测试用例设计测试分类详解

文章目录 1. 测试用例的基本要素2. 测试用例的设计方法2.1 基于需求设计测试用例2.11 功能性需求测试分析2.12 非功能性需求测试分析 2.2 具体的设计测试用例的方法等价类(非常重要)边界值错误猜测法场景法因果图法正交法 3. 测试分类3.1 按照测试对象划…

软件测试-如何写好测试用例

软件测试-如何写好测试用例 一、课程介绍前置知识点 二、测试用例与编写流程介绍测试用例介绍需求分析与测试点编写测试用例编写注意 三、 测试用例编写,评审与管理测试用例编写方法3-2 慕课网注册功能测试用例编写 (13:25)3-3 慕课网搜索,APP下载功能测…

测试用例应该怎么写

一、背景 有些测试同学,写测试用例的时候,直接就是将需求文档上的内容抄一遍,转换成测试用例的格式。没有加入任何自己的思考和理解,没有融入任何测试方法论。测试完全依赖于需求文档的质量,依赖于产品经理保姆级的服…

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

目录 🌷1. 测试用例的基本要素 🌷2. 测试用例的设计方法 🌳2.1 基于需求进行测试用例的设计 ⭐️(1)功能需求测试分析 ⭐️(2)非功能需求测试分析 🌳2.2 具体的设计方法 &#…

软件测试用例设计规范

文章目录 1 目的2 规范内容2.1 设计原则2.1.1 可执行性2.1.2 可维护性2.1.3 可代表性2.1.4 可判定性 2.2 必要元素2.2.1 用例包和用例对象名命2.2.2 测试目的2.2.3 测试优先级2.2.4 测试环境2.2.5 前提条件2.2.6 后置关联2.2.7 用例状态 2.3 综合策略2.3.1 必要的边界值分析2.3…

软件测试——测试用例

目录 1.测试用例的基本要素 2.测试用例的设计方法 2.1基于需求的设计方法(Requirements-Based Testing,RBT) 2.2等价类划分法 2.3边界分析法 2.4因果图 2.5正交排列 2.6场景设计法 2.7错误猜测法…

软件测试(测试用例)—写用例无压力

软件测试——用例篇 文章目录 软件测试——用例篇一、概念二、测试用例总体设计方案1、等价类 ☆2、边界值 ☆2.1 边界值法设计用例步骤 3、判定表 ☆4、因果图5、场景设计法 ☆6、错误猜测法7、正交排列三、实际操作中注意的点3.1测试用例的注意点 四、缺陷介绍1、缺陷的判定标…

软件测试用例

测试用例 为什么要写测试用例测试用例的基本要素QQ登录的测试用例功能正常时异常时 界面易用性可移植性性能 具体的设计测试用例的方法等价类边界值错误猜测法场景设计法因果图法正交排列 测试用例的有效性 为什么要写测试用例 测试用例是测试执行的依据测试用例可以复用&…

软件测试用例概述

软件测试用例概述 知识点 什么是测试用例如何获取需求的测试点测试用例的模板测试用例的优先级测试用例的设计原则测试用例的维护 简介 软件测试是软件质量管理最有效的方法之一,同时也是耗时最多的一项工作,基于时间因素的考虑,软件测试…

测试用例要如何写

1、测试点与测试用例 测试点不等于测试用例,这是我们首先需要认识到的。 问题1:这些测试点在内容上有重复,存在冗余。 问题2:一些测试点的测试输入不明确,不知道测试时要测试哪些。 问题3:总是在搭相似…

【软件测试】(四)测试用例怎么写

文章目录 测试用例基本要素1. 评价好的测试用例的标准2. 根据需求写测试用例3. 测试用例的设计方法3.1 基于需求进行测试用例的设计3.2 具体的设计用例的方法3.2.1 等价类3.2.2 边界值3.2.3 错误猜测法3.2.4 场景设计法3.2.5 因果图3.2.6 正交设计法 测试用例基本要素 之前文章…

刚面完的字节跳动Python软件测试用例编写(含思路)

测试用例编写是软件测试的基本技能;也有很多人认为测试用例是软件测试的核心;软件测试中最重要的是设计和生成有效的测试用例;测试用例是测试工作的指导,是软件测试的必须遵守的准则。 在这里我们不讨论以上的各种观点,但是综上所述,大家可以看出,测试用例编写这项软技…

怎么在windows文件资源管理器中打开ftp

背景:自己在家上网课,用VPN连接学校实验室内网,原来自己直接在此电脑中输入ftp://192.168.109.100/就可以打开,但是突然有一次用同样的方式输入,却自动把页面跳到了默认的IE浏览器打开,自己不喜欢这种方式&…

ADB文件管理器

VisualLog带了一个双栏Adb文件管理器,同时显示设备的文件夹与本地的文件夹,支持文件的上传,下载等。 点击菜单"视图->插件->Adb文件管理器",打开文件管理器 文件管理器分为三个部分:设备的目录树,设备…

接管理器是Android上最,10 款优秀的 Android 文件管理器

文件管理器是管理文件的软件,帮助用户处理日常工作,管理储存在本地和网络中的文件。所有文件管理器都提供了基本的操作如创建、打开、查看、编辑、移动和删除文件。许多Android文件管理器还提供了额外功能,如网络连接、应用程序管理、存档和压…

mysql对象资源管理器在哪里_文件资源管理器在哪

文件资源管理器在哪? 查看文件资源管理器的方法步骤: 方法一: 1、点“开始”,然后如下图所示的红框里输入“资源管理器”,搜出来之后就点击打开。 2、打开之后就是这样。 方法二: 1、敲击键盘的“WINR”,然…