测试概念及模型
今日目标
掌握测试用例包含的基本内容
使用等价类方法设计出测试用例
1. 软件测试分类(复习)
1.1 按阶段划分
单元测试
测试:针对单个功能进行测试,如:登录、购物车等
开发(更多的理解):针对代码进行测试(一般由开发负责、或自动化测试协助)
集成测试
组装测试
系统测试
针对系统进行整体性测试
软件功能
硬件功能
验收测试(用户检验产品是否满足自己预期)
α测试:bug比较多、内测版本
β测试:bug相对比较少、公测版本
γ测试:候选发布版本
负责人(甲乙方):
甲方负责
乙方协助(在甲方的授权及信任基础上)
第三方评测机构
1.2 按是否覆盖源代码划分
黑盒测试:输入和输出
白盒测试:代码内部实现逻辑
灰盒测试
测试关注点
输入
输出
代码逻辑
1.3 按是否运行划分
静态测试
不运行被测试程序
测试对象
文档
代码
动态测试
运行测试程序
测试对象
运行中的程序
1.4 按是否自动化划分
手工测试(功能测试)
自动化测试
通过工具或代码代替人进行测试的过程
1.5 更多
冒烟测试
开发提交测试版本的接收性测试
测试点
最基本功能,如用户正常登陆
最核心的业务流程,如电商购买商品全过程
回归测试
测试点
bug回归
旧功能回归
随机测试
探索测试
2. 软件开发流程(软件生命周期)
2.1 瀑布模型(了解)
组成
需求分析==》概要设计==》详细设计==》编码==》软件测试==》软件维护
特点
线性模型
文档驱动
优点
只需要关注当前进行的阶段
缺点
不响应需求变化
典型应用场景
需求清晰的大型项目,如银行、保险、建筑等
3 软件测试流程
3.1 V模型(了解)
组成
需求分析==》概要设计==》详细设计==》编码==》单元测试==》集成测试==》系统测试==》验收测试
优点
只需要关注当前阶段、文档驱动、线性模型
缺点
不响应需求的变化、不灵活
3.2 W模型(了解)——双V模型
绘制
开发V:需求分析==》概要设计==》详细设计==》编码**==》集成==》实施==》交付**
测试V:**验收测试设计==》系统测试设计==》集成测试设计==》单元测试设计==》**单元测试==》集成测试==》系统测试==》验收测试
优点
测试贯穿软件开发的全生命周期
早参与、早发现、早解决
缺点
技术和管理要求比较高
4. 软件质量模型(了解)
功能性:检查业务功能是否满足需求
可靠性:容错能力(恢复正常的时间、能力)
易用性:看的懂、会使用等
效率性:性能(响应时间、消耗的资源(CPU、内存)等)
维护性:为后续功能的开发与维护提供便利
移植性:软件需要在不同的软件环境和硬件环境下都能正常的工作
5 软件测试用例(重点)
5.1 软件测试用例概念
概念:一个为了特定的目的(检验开发的代码实现是否满足用户的需求)而设计的文档(包含测试输入、执行条件、预期结果),文档的形式可以是xmind、excel等。
案例
标题 | 测试输入 | 执行条件 | 预期结果 |
验证电脑开机功能 | 有电 | 按下开机键 | 屏幕点亮 |
5.2 测试用例组成要素与用例模板
ID
唯一性
项目-模块-001
模块
优先级
作用:体现用例执行的先后顺序
分类:
高
中
低
用例标题
唯一性
见名知意
预置条件
测试步骤
尽可能详细
测试数据
预期结果
5.3 软件测试用例的作用(了解)
便于理清测试思路,确保需覆盖测试的功能点无遗漏
便于测试工作量的评估
便于提前准备测试数据
便于把控测试工作进度
便于回归测试
便于测试工作的组织,提高测试效率,降低测试交接成本
6 等价类(重点)
6.1 等价类划分法
概念:通过科学的方法找到具有共同特性的测试输入的子集,能够从穷举测试中解放(大大减少了测试用例的数量,从而提升测试效率。)
分类
有效等价类:满足需求
无效等价类:不满足需求
设计测试用例的步骤
需求分析
划分等价类
有效
无效
规则(需求本身)
长度
类型
是否为空(必填项)
是否重复
设计用例
典型应用场景
输入框
案例1:QQ账号
QQ账号:6——10位自然数
案例3:sina邮箱
新浪邮箱登录,要求输入(邮箱名)@sina.cn和(密码)
邮箱名为:4-16位字符,支持英文、数字、下划线(不能全是数字或者下划线)
密码:6-18位字符
作业
1、梳理今日知识点,结合课上知识讲解补充完善今日总结内容,以xmind形式输出
2、等价类划分法设计测试用例的步骤?
1. 明确需求 (找到所有的输入项)
2. 针对每个输入项分别确定有效和无效等价类
3. 编写测试用例:一条用例尽可能多的覆盖有效等价类;无效等价类中每个取值都要使用一条用例来覆盖;
3、写出下面问题的有效等价类、无效等价类。
(1)程序要求输入一个数X,并且X的取值范围为集合{1,3,7,15}。
有效等价类:1,3,7,15
无效等价类:2,4
(2)用户名(昵称)长度为 3-19,以字母开头,字母或数字结尾
有效等价类:- 用户名长度为3-19,以字母开头数字结尾- 用户名长度为3-19,以字母开头字母结尾
无效等价类:- 用户名长度小于3,- 用户名长度大于19,- 以数字开头- 以字母开头,以空格结尾- 特殊字符、汉字、为空
4、案例2:城市电话号码
城市电话号码:某城市的电话号码是由3部分组成,分别是:
地区码:空白或是3位数字
前缀:非‘0’且非‘1’开头的三位数字
后缀:4位数字
5、TPShop商城注册功能测试用例设计
tpshop注册功能需求说明:
手机号:第一位为1,第二位非2,的11位自然数
注意:对于邮箱注册,仅验证邮箱格式是否正确
xxxx-长度为4-16,类型为数字,字母,下划线组合(可以是纯字母或者数字,不能以下划线开头)验证码:字母或者数字,与图片一致,点击刷新按钮可以更新验证码
设置密码:要求同输入框提示,6-16位大小写英文字母,数字或符号的组合 (可以是纯字母,数字,符号)
确认密码:同设置密码
推荐人手机:(非必填,之前注册成功的用户)
我已阅读并同意:勾选之后才可以点击同意协议并注册
今日总结
掌握测试用例包含的基本内容
能够说出测试用例的定义
能够写出测试用例的8要素
能够按照测试用例8要素模板完成1条测试用例描述
使用等价类方法设计出测试用例
能够根据需求划分有效等价类和无效等价类
能够使用等价类方法设计(新浪邮箱登录案例)测试用例
能够说出等价类方法的适用场景
相关文章:
测试概念及模型
今日目标掌握测试用例包含的基本内容使用等价类方法设计出测试用例1. 软件测试分类(复习)1.1 按阶段划分单元测试测试:针对单个功能进行测试,如:登录、购物车等开发(更多的理解):针对…...

王道计算机组成原理课代表 - 考研计算机 第六章 总线 究极精华总结笔记
本篇博客是考研期间学习王道课程 传送门 的笔记,以及一整年里对 计算机组成 知识点的理解的总结。希望对新一届的计算机考研人提供帮助!!! 关于对 “总线” 章节知识点总结的十分全面,涵括了《计算机组成原理》课程里的…...

【C++升级之路】第八篇:string类
🌟hello,各位读者大大们你们好呀🌟 🍭🍭系列专栏:【C学习与应用】 ✒️✒️本篇内容:简单介绍string类的概念、string类的常用接口、string类的模拟实现(各个常见接口的实现代码&…...
mysql性能优化_原理_课程大纲
1、MySQL在金融互联网行业的企业级安装部署 目录章节版本说明版本说明安装MySQL规范1 安装方式2 安装用户3 目录规范MySQL 5.7 安装部署1 操作系统配置2 创建用户3 创建目录4 安装5 配置文件6 安装依赖包7 配置环境变量8 初始化数据库9 重置密码MySQL8 安装MySQL8 安装源码安装…...

项目管理报告工具的功能
项目报告软件哪个好?Zoho Projects的项目管理报告工具为您提供整个组织的360可见性,获取所有项目的实时更新,使用强大的项目报告软件推动成功。Zoho Projects的项目报告软件允许团队整理和监控他们的资源和项目,以评估进度并避免对…...

centos8上安装hbase
【README】1.本文部分内容转自:https://computingforgeeks.com/how-to-install-apache-hadoop-hbase-on-centos-7/2.本文是在单机上安装hbase (仅用于学习交流); 【1】更新系统因为 hadoop和hbase是动态的,为便于hbase…...

linux 进程及调度基础知识
引用Linux进程管理专题Linux进程管理与调度-之-目录导航Linux下0号进程的前世(init_task进程)今生(idle进程)----Linux进程的管理与调度(五)蜗窝科技-进程管理郭健: Linux进程调度技术的前世今生之“前世”郭健: Linux进程调度技术…...

Python计算分类问题的评价指标(准确率、精确度、召回率和F1值,Kappa指标)
机器学习的分类问题常用评论指标有:准确率、精确度、召回率和F1值,还有kappa指标 。 每次调包去找他们的计算代码很麻烦,所以这里一次性定义一个函数,直接计算所有的评价指标。 每次输入预测值和真实值就可以得到上面的指标值&a…...

51单片机LCD1602的使用
文章目录前言一、LCD1602简单介绍二、LCD1602中各个引脚的作用四、LCD1602命令解析1.写命令2.写数据3.清屏指令4.光标归位指令5.进入模式设置指令6.显示开关控制指令7.设定显示屏或光标移动方向指令三、LCD1602代码编写四、代码测试总结前言 本篇文章将为大家讲解LCD1602的使用…...

[深入理解SSD系列综述 1.5] SSD固态硬盘参数图文解析_选购固态硬盘就像买衣服?
版权声明:付费作品,未经许可,不可转载前言SSD (Solid State Drive),即固态硬盘,通常是一种以半导体闪存(NAND Flash)作为介质的存储设备。SSD 以半导体作为介质存储数据&…...
zio1升级到zio2踩坑和总结
并不全,记录了一些流程和注意点。新项目建议直接用zio2! 首先,从1.0迁移到2.0,可以使用官方的scalefix规则完成一部分方法自动替换(迁移主要解决方法重命名,去掉Has)。 然后,添加依…...
【算法题】1834. 单线程 CPU
插: 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 坚持不懈,越努力越幸运,大家一起学习鸭~~~ 题目: 给你一个二维数组 tasks ÿ…...
Vue学习[2023]
笔记 一、Vue基础: 1.模板语法有2大类: 插值语法: 功能:用于解析标签体内容。 写法:{{xxx}},xxx是js表达式,且可以直接读取到data中的所有属性。 指令语法: 功能:用于…...

【Redis】Redis分片集群
【Redis】Redis分片集群 文章目录【Redis】Redis分片集群1. 搭建分片集群1.1 分片集群结构1.2 搭建分片集群1.2.1 集群结构1.2.2 准备实例和配置1.2.3 启动1.2.4 创建集群1.2.5 测试2. 散列插槽2.1 总结3. 集群伸缩4. 故障转移4.1 数据迁移5. RedisTemplate访问分片集群1. 搭建…...
【Android笔记81】Android之RxJava的介绍及其使用
这篇文章,主要介绍Android之RxJava及其使用。 目录 一、RxJava响应式编程 1.1、RxJava介绍 1.2、RxJava常用方法 (1)引入RxJava依赖...

Pr 定格拍照动画
哈喽,各位小伙伴!今天我们来学习一下如何制作定格拍照动画? 新建序列 新建一个1920*1080的序列,将视频拖入序列中 选择定格画面右键—插入帧定格分段中间部分就会变成一张图片(图片时长可伸缩) 复制素…...

放弃node-sass,启用sass
在下载一个新项目时运行:npm run install 发现报错 npm uninstall 异常 Error: Could not find any Visual Studio installation to use 或是 ------------------------- You need to install the latest version of Visual Studio npm ERR! gyp ERR! find VS incl…...

力扣旋转字符串
🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨ 🐻推荐专栏: 🍔🍟🌯 c语言初阶 🔑个人信条: 🌵知行合一 🍉本篇简介:>:介绍字符串旋转,左旋,右旋即旋转结果. 金句分享: ✨好好干&…...
Java 代码组织机制
包 使用任何语言进行编程都有一个相同的问题,就是命名冲突。 包类似于计算机中的文件夹,正如文件放在文件夹中,类和接口放在包中,为便于组织,文件夹一般是一个层次结构,包也类似。 包有包名,…...

【剧前爆米花--爪哇岛寻宝】MySQL中索引和事务
作者:困了电视剧 专栏:《MySQL数据库》 文章分布:这是一篇关于Java中异常类的文章,在本篇文章中详细讲解了异常的使用逻辑和底层的执行过程,如有疏漏,欢迎大佬指正! 目录 索引 用法 底层逻辑…...

VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...

Mac软件卸载指南,简单易懂!
刚和Adobe分手,它却总在Library里给你写"回忆录"?卸载的Final Cut Pro像电子幽灵般阴魂不散?总是会有残留文件,别慌!这份Mac软件卸载指南,将用最硬核的方式教你"数字分手术"࿰…...

令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍
文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结: 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析: 实际业务去理解体会统一注…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)
目录 一、👋🏻前言 二、😈sinx波动的基本原理 三、😈波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、🌊波动优化…...

ABAP设计模式之---“简单设计原则(Simple Design)”
“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...
比较数据迁移后MySQL数据库和OceanBase数据仓库中的表
设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...

QT开发技术【ffmpeg + QAudioOutput】音乐播放器
一、 介绍 使用ffmpeg 4.2.2 在数字化浪潮席卷全球的当下,音视频内容犹如璀璨繁星,点亮了人们的生活与工作。从短视频平台上令人捧腹的搞笑视频,到在线课堂中知识渊博的专家授课,再到影视平台上扣人心弦的高清大片,音…...

pgsql:还原数据库后出现重复序列导致“more than one owned sequence found“报错问题的解决
问题: pgsql数据库通过备份数据库文件进行还原时,如果表中有自增序列,还原后可能会出现重复的序列,此时若向表中插入新行时会出现“more than one owned sequence found”的报错提示。 点击菜单“其它”-》“序列”,…...

二叉树-144.二叉树的前序遍历-力扣(LeetCode)
一、题目解析 对于递归方法的前序遍历十分简单,但对于一位合格的程序猿而言,需要掌握将递归转化为非递归的能力,毕竟递归调用的时候会调用大量的栈帧,存在栈溢出风险。 二、算法原理 递归调用本质是系统建立栈帧,而非…...

【JavaEE】万字详解HTTP协议
HTTP是什么?-----互联网的“快递小哥” 想象我们正在网上购物:打开淘宝APP,搜索“蓝牙耳机”,点击商品图片,然后下单付款。这一系列操作背后,其实有一个看不见的“快递小哥”在帮我们传递信息,…...