测试-用例篇

news2024/11/19 7:22:00

软件测试的生命周期

需求分析 - 测试计划 - 测试设计、测试开发 - 测试执行 - 测试评估

测试用例要素

测试环境、操作步骤、测试数据、预期结果

测试用例的要素没有执行结果。
测试用例要素不需要执行结果,因为执行结果需要执行完测试用例才会知道,没有测试用例,自然没有执行结果。

测试用例好处

  1. 提高测试效率,节省测试时间
  2. 测试用例是自动化测试用例的前提

测试用例的设计方法

基于需求的设计方法

基于需求的设计方法的参考标准:需求文档,针对需求进行大概的测试
需求文档 - 梳理需求 - 针对文档(基于需求)设计测试用例

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

等价类

依据需求,将输入划分为若干个等价类,从等价类中选出一个测试用例,如果这一个测试用例测试通过,认为所代表的等价类测试通过,这样就可用较少的测试用例达到尽量多的功能覆盖,解决不能穷举测试的问题。

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

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

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

用户需求:用户名 6到15位

在这里插入图片描述

边界值法

用户需求:用户名 6到15位

userName(String username) {
	usernameLength = username.length;
	if (usernameLength >= 6 && usernameLength  <= 15) {
		//注册成功
	} else {
		//注册失败
	}
}

上点:边界上的点
内点:边界内的点
离店:边界值附近的一个点(闭区间:区间外距离上点最近的点;开区间:区间内距离上点最近的点。)

区间 [6,15]:
上点:6,15
内点:7 - 14的任意一点
离点:5,16

区间(6,15]:
上点:6,15
内点:6 ~ 15的任意一点
离点:7,16

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

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

在这里插入图片描述

判定表

判定表是一种表达逻辑判断的工具

关系:
与:所有的条件必须满足,如果其中一个条件不满足,结果为假
或:满足其中一个条件就为真,如果条件全部为假,结果为假
恒等:条件为真,结果一定为真
非:条件为假,结果为真

设计测试用例:

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

例子:

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

输入:订单已提交,订单金额大于300,有红包
输出:优惠、不优惠

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

判定表:
在这里插入图片描述

在这里插入图片描述

正交表法

什么是正交表

在这里插入图片描述

名词

因素:试验中,考察的变量
水平:变量的取值

性质

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

正交表设计测试用例

  1. 充分理解需求
  2. 确定因素水平
  3. 画正交表
  4. 补充正交表
  5. 将正交表转换成测试用例

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

因素:姓名、邮箱、密码、确认密码、验证码
水平:填写、不填写

画正交表:allpairs 工具

  1. 将水平和因素填写到 Excel 中
    在这里插入图片描述
  2. 将excel表格复制到 txt 文件中
    在这里插入图片描述
  3. 将txt文件保存到allpairs
    在这里插入图片描述
  4. 在命令行下进入allpairs文件夹
    在这里插入图片描述
  5. 执行allpairs.exe filename.txt > filename_result.txt
    在这里插入图片描述
  6. wenjianming_result.txt下的TEST CASES就是测试用例 ( ~表示此时取值可以是是,也可以是否 )
    在这里插入图片描述

场景设计法

主事件流:用户经常使用的场景构成的事件
次事件流:使用场景中出现的意外构成的

通常情况下,需要把用户经常使用的功能串联起来一起进行测试

例子:ATM取款

错误猜测法

如何模拟弱网【面试题】

借助工具 Charles、fiddler

fiddler模拟弱网

  1. 打开限速模式
    在这里插入图片描述
    在这里插入图片描述
    这里表示的就是上传下载的速率
    在这里插入图片描述
    在配置中
if (m_SimulateModem) {
    // Delay sends by 300ms per KB uploaded. 上传1KB数据,花费时间300ms
    oSession["request-trickle-delay"] = "300"; 
    // Delay receives by 150ms per KB downloaded.  下载1KB数据,花费时间150ms
    oSession["response-trickle-delay"] = "150"; 
}

接口如何测试

  • 针对HTTP方法进行测试
  • 针对接口的参数进行测试(传参数、不传参数、传入非法参数)
  • 参数通过parameter、json传递

代码测试

如何对一个冒泡排序的代码进行测试

  • 方法参数(参数类型、不给参数、参数传递为空)
  • 异常处理
  • 代码规范
  • 语句覆盖
  • 条件覆盖
  • 语句条件覆盖
  • 判定覆盖

zip命令测试

Linux命令:zip命令

  • 功能
    • 打包的文件是一个不存在的文件
    • 命令使用正确,文件也存在,文件是否被压缩
    • 能否一次性打包多个文件
    • 打包后的内容是否有缺失
  • 界面
    • 打包后的zip包是否高亮
    • 打包后的文件名后缀是不是 .zip
  • 易用
    • 输入错误,此时有没有提示
  • 性能
    • 打包一个1KB的文件时间是多少
    • 打包一个20GB的文件时间是多少
    • 一次打包多个

测试用例设计万能公式

功能、界面、易用、兼容、性能、安全、网络、中断…

  • 功能
    • 物体:这个物体主要是用来干嘛的(最基本的功能)
    • 软件:软件需要实现的功能(需求文档)
  • 界面
    • 物体:外表、材质、大小、容量
    • 软件:界面布局、图片大小、字体大小、字体颜色、页面布局
  • 易用
    • 经验(操作简单、使用流畅),人性化
  • 兼容
    • 物体:物体除了本质的功能,还有没有其他的功能
    • 软件:操作系统、设备(手机、电脑,不同品牌)、浏览器版本、
  • 性能
    • 物体:使用寿命
    • 软件:响应时间、吞吐量、并发数、CPU占用率
  • 安全
    • 物体:物体材质是否有毒,会不会对人体健康造成威胁
    • 软件:sql注入、xss漏洞、输入有毒脚本、密码加密存储,加密传输,权限控制
  • 网络
    • 软件:2G - 5G、弱网、WiFi
  • 中断
    • 闹钟,短信,电话,切换中断…

水杯测试用例

在这里插入图片描述

微信发朋友圈测试用例

发送内容类型
大小
权限
排版

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/543218.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

代码随想录算法训练营day45 | 70. 爬楼梯 (进阶),322. 零钱兑换,279.完全平方数

代码随想录算法训练营day45 | 70. 爬楼梯 &#xff08;进阶&#xff09;&#xff0c;322. 零钱兑换&#xff0c;279.完全平方数 70. 爬楼梯 &#xff08;进阶&#xff09;解法一&#xff1a;动态规划 322. 零钱兑换解法一&#xff1a;动态规划 279.完全平方数解法一&#xff1…

秒懂算法 | 共识算法之Raft算法模拟数

01、Leader选举 存在A、B、C三个成员组成的Raft集群&#xff0c;刚启动时&#xff0c;每个成员都处于Follower状态&#xff0c;其中&#xff0c;成员A心跳超时为110ms&#xff0c;成员B心跳超时为150ms&#xff0c;成员C心跳超时为130ms&#xff0c;其他相关信息如图1所示。 ■…

2024王道数据结构考研丨第三章:栈和队列

2024王道数据结构考研笔记专栏将持续更新&#xff0c;欢迎 点此 收藏&#xff0c;共同交流学习… 文章目录 第三章&#xff1a;栈和队列3.1栈&#xff08;stack&#xff09;3.1.1栈的基本概念3.1.2 栈的顺序存储3.1.3栈的链式存储 3.2队列&#xff08;Queue&#xff09;3.2.1队…

【点云抽稀】一种基于均匀分布随机数的点云抽稀算法

文章目录 1. 背景2. 原理3. 实现3.1 定义Utils类3.2 加入预定义宏&#xff0c;确定层级3.3 函数实现 1. 背景 在大数据点云的存储中&#xff0c;常常要进行空间分区&#xff0c;一般的策略是构建四叉树或者八叉树。在构建树的过程中&#xff0c;一个不可避免的点就是点云的快速…

Text, Shapes, Colors 的使用

1. Text 的使用 // 多行文本 // Hello, World! This is the Swiftful Thinking Bootcamp. I am really enjoying this course and learning alot.// .lowercased() 文字小写 .uppercased() 文字大写 capitalized: 以单词形式显示 Text("Hello, World!".capitalized)…

test123

import matplotlib.pyplot as plt import pandas as pd # 从Power BI中获取输入数据 data pd.DataFrame({ Country: [USA, Canada, UK, Germany, France], Population: [328, 38, 66, 83, 67] }) # 使用Matplotlib绘制图表 plt.bar(data[Country], data[Population]…

Sentinel的另外三种流控模式(附代码详细介绍)

前言&#xff1a;大家好&#xff0c;我是小威&#xff0c;24届毕业生&#xff0c;在一家满意的公司实习。本篇文章将详细介绍Sentinel的其他三种流控模式&#xff0c;后续文章将详细介绍Sentinel的其他知识。 如果文章有什么需要改进的地方还请大佬不吝赐教&#x1f44f;&#…

轻量应用服务器如何选择之阿里云和腾讯云PK哪个好?

阿里云和腾讯云都有轻量应用服务器&#xff0c;轻量服务器是一种轻量级开箱即用的云服务器&#xff0c;适合小型网站、博客或测试等单机应用&#xff0c;那么问题来了&#xff0c;轻量应用服务器到底是阿里云好还是腾讯云好&#xff1f;阿腾云来详细对比下阿里云轻量应用服务器…

find命令的结果顺序

文章目录 1. 目的2. 准备&#xff1a; 克隆 doxygen 源码3. ubuntu22.04 结果4. ubuntu16.04 结果5. git bash 结果6. 三路比较7. 保持一样的结果&#xff1a; 用自然排序8. References 1. 目的 在研读 doxygen 源码时&#xff0c; 在不同电脑、不同操作系统上使用了 find 命令…

vue2中provide/inject的使用

一般来说&#xff0c;组件之间有以下几种关系&#xff1a; A-B、A-C、B-D、B-E、C-F都是父子关系&#xff0c;B-C、D-E-F是兄弟关系&#xff0c;A-D、A-E、A-F是祖先与孙子关系。 vue2中provide/inject这对选项需要一起使用&#xff0c;以允许一个祖先组件向其所有子孙后代注…

私有化部署即时通讯工具能为企业提升工作沟通效率吗?

在疫情的影响下&#xff0c;越来越多的企业开始采用私有化部署的方式部署即时通讯工具&#xff0c;以提升工作沟通效率。私有化部署的即时通讯工具&#xff0c;能够为企业提供完善的人员管理、安全保障、灵活便捷等优势&#xff0c;帮助企业更好地管理人员、团队协作以及工作沟…

CAMx-Python融合技术与大气污染来源解析方法

详情点击链接&#xff1a;CAMx-Python融合技术应用与大气污染来源解析方法 CAMx模型是一个基于大气化学&#xff0c;针对臭氧、颗粒物和雾霾天气过程的大气污染物计算模型。 1、CAMx模式的区域空气质量模拟配置技术&#xff1b; 2、SMOKE模型的CAMx模式大气排放清单输入准备&…

Kubernetes 二进制部署高可用集群 失败 看报错

概述 openssl证书有问题导致失败&#xff0c;未能解决openssl如何创建私钥&#xff0c;可参考ansible 在私有局域网内完成Kubernetes二进制高可用集群的部署 ETCD Openssl > ca 证书 Haproxy Keepalived Kubernetes 主机规划 序号名字功能VMNET 1备注 1备注 2备注 3 备注…

拉线位移传感器可以用来做的工作

拉线位移传感器可以用来做的工作 拉线位移传感器&#xff0c;是做什么的呢&#xff1f;是测位移的一种传感器&#xff0c;它的使用方式是用拉线测量&#xff0c;所以我们又叫它拉线位移传感器或者拉绳位移传感器。 拉绳位移传感器的应用非常广泛&#xff0c;一般只要精度要求不…

Docker issue failed to solve: rpc error: code = unknown desc

完整错误&#xff1a;failed to solve: rpc error: code Unknown desc failed to solve with frontend dockerfile.v0: failed to create LLB definition: unexpected status code [manifests 8.0-alpine-v3.14-swoole]: 403 Forbidden 解决方案一 重启DockerDesktop或重新启…

JavaScript全解析-继承

继承 ●要知道什么是继承 ●要知道继承的方式有哪些 ●每种的继承方式是如何实现的 什么是继承 ●继承关系出现在构造函数和构造函数之间 ●当构造函数A 的实例使用了 构造函数B 的属性和方法 ●我们就说 构造函数A 继承自 构造函数B ○管 构造函数A 叫做子类 ○管 构造函数B 叫…

MATLAB算法实战应用案例精讲-【数模应用】生存曲线(补充篇)

目录 前言 几个相关概念 生存概率与死亡概率 生存率 生存曲线 事件、生存时间 中位生存时间 生存率的比较 生存数据 风险集 如何读懂KM曲线 应用案例 新药对患者总生存时间的影响-KM曲线 软件操作及结果解读 应用GraphPad Prism制作生存曲线 SPSS绘制生存曲线图 …

gRPC-go参数功能介绍1->WithBlock参数介绍

在gRPC-go框架中&#xff0c;当客户端使用 Dial() 方法连接到gRPC服务器时&#xff0c;可以使用 WithBlock() 选项来阻塞客户端&#xff0c;直到与服务器建立连接成功。 通常情况下&#xff0c;当客户端调用 Dial() 方法时&#xff0c;该方法会立即返回&#xff0c;并在后台异…

使用MinIO文件存储系统【完成图片上传保存】业务逻辑

目录 1&#xff1a;业务流程 2&#xff1a;接口实现 controller层 service层 1&#xff1a;业务流程 步骤一&#xff1a;前端进入上传图片的界面 步骤二&#xff1a;上传图片&#xff0c;请求到后端的媒资管理服务模块 步骤三&#xff1a;媒资管理服务将图片文件存储到m…

STM32---编写呼吸灯串口发送ON开LED,发送OFF关LED或者0X550X440XFF表示开灯,0X550X660XFF表示关灯

编写呼吸灯串口发送ON开LED&#xff0c;发送OFF关LED或者&#xff08;0X550X440XFF表示开灯&#xff0c;0X550X660XFF表示关灯&#xff09;注&#xff1a;包头 0X55 包尾&#xff1a;0XFF 数据&#xff1a;0X44表示开灯 0X66表示关灯 用到了重定向 //printf的重定向 int fpu…