测试理论与方法----测试流程的第二个环节:测试计划
二、软件测试分类与测试计划
1、软件测试的分类(理解掌握)
-
根绝需求规格说明书,在设计阶段会产出的两个文档:
- 概要设计(HLD):设计软件的结构,包含软件的组成,模块之间的层次关系,模块与模块之间的调用关系,每个模块的功能等。(大范围描述)
- 详细设计(LLD):在概要设计的基础上,为每个功能模块做详细的描述,把功能转换为详细,精准化的过程。
-
按照【开发阶段】划分:
- 单元测试:又被称为“模块测试”,是针对程序的每个模块进行正确性检验的测试工作,目的在于检查程序的每个模块是否能够正确实现详细设计文档中给出的需求。
- 集成测试:又称为“组装测试”,在单元测试基础上,逐步将程序所有的模块有序,递增的集成在一起,最终满足概要设计文档给出的需求。
- 确认测试:又被称为“有效性测试”,验证软件的功能,性能,其他的特性是否和用户的预期结果一致。只有通过确认测试,才会进入系统测试阶段。
- 系统测试:在真实的环境下,运行被测软件,检测软件能否和不同的系统平台相匹配或配置,从而满足用户的需求。
- 验收测试:是检测产品的最后一个环节,根据双方签订的协议,合同书,任务书,交付依据等等,做最后的测试与评审,从而决定接收或拒收产品。(第三方/外包)
-
按照【测试技术】划分:
- 黑盒测试:把被测对象看成是黑色的盒子,通过程序的外部表现发现错误和缺陷,完全不考虑程序的内部结构,只在程序的界面处进行测试,来检查程序的功能是否符合需求(功能测试)
- 白盒测试:把被测对象看成是透明的盒子,通过对程序内部的结构分析,来发现问题,关注程序内部结构的实现是否正确,所以又被称为“结构测试”
- 灰盒测试:白+黑,既要关注程序的功能(外部表现),又要关注程序的内部结构
-
按照【代码运行】划分:——>看程序是否运行
- 静态测试:指的是不实际运行被测对象,只是静态观察代码,界面,文档的正确性。
- 代码测试:主要检测代码是否符合标准和规范
- 界面测试:主要检测软件的实际界面与需求说明是否相符合
- 文档测试:主要测试用户手册和需求文档是否满足用户的实际需求
- 动态测试:指的是实际运行被测对象,通过输入相关的测试数据,来观察实际结果和预期结果是否一致。
- 静态测试:指的是不实际运行被测对象,只是静态观察代码,界面,文档的正确性。
-
按照【软件特性】划分:
- 功能测试:属于黑盒测试一部分,检测软件的功能是否符合用户的需求,以及功能结果的正确性。比如:易用性测试,界面测试,安装、卸载测试,兼容性测试等
- 性能测试:除了功能测试外,另一个测试指标。一个程序除了能够正确实现对应的功能外,还要考虑到功能实现的响应时间,处理速度,承受的负载压力等
- 安全测试:检测系统中嵌入的保护机制,是否真正能够提供保护功能,防止非法入侵,数据丢失等问题
-
其他测试类型:
- 回归测试:①验证提交的缺陷已经被修复;②确保修复了旧的缺陷没有引发新的缺陷
- 方式之一:按照之前设计好的测试用例(测试场景)再执行一遍
- 冒烟测试:是在正式进入测试流程前,对软件的可测性进行评判的依据,先来验证软件是否具备可测性的操作,所以也叫做“可测性测试”,只有通过了冒烟测试,才会进入到正式的测试流程中。
- 随机测试:是测试人员根据经验和直觉,再来发现一些边缘性的缺陷
- Monkey测试:把测试人员看成“小白”,对被测软件进行任意随机的操作,看软件多长时间会出现异常(比如,程序未响应ANR),主要测试程序的稳定性,属于移动端自动化测试手段
- 回归测试:①验证提交的缺陷已经被修复;②确保修复了旧的缺陷没有引发新的缺陷
2、软件测试的原则
- 所有测试标准是建立在用户需求之上
- 时间服从于质量
- 事先定义好测试的标准
- 不能穷举测试(把软件功能可能会出现的情况全部测一遍,比如:测试计算器的加法功能:把所有的数字全部加一遍——>不现实)
- 第三方测试更为客观和有效(毕竟第三方是专门做测试,接触的产品类型和测试经验会更多一些;可以让本公司的测试人员能够安排其他的任务,节约了公司的人力成本)
- 测试计划是做好测试工作的前提
- 对于错误发现较多的地方,重点关注(缺陷集群效应)
- 尽早的和不断地测试
- 妥善保存测试文档
- 测试应该从“小规模”,逐步转向到“大规模”
- 对测试错误的结果要有一个确认的过程
3、测试计划的概述
- 定义:test plan:规定了测试的活动范围,方法,资源,进度安排;明确正在测试的项目,要测试的特性,要执行的测试任务,每个任务的负责人,以及和计划相关的风险。
- 编写测试计划的原则:5W1H
- what:测什么,明确测试范围和内容
- why:为什么要测试,测试的目的
- who:谁来测,测试人员的分配
- where:在哪测,测试环境
- when:测试开始的时间和结束的时间
- how:如何测,测试方法和工具
4、测试计划的编写
备注:形式:一个小组出一份,但是每个人都会参与到计划书的编写过程
-
测试项目的简介
- 描述测试计划文档的目的
- 描述项目背景
- 产品介绍(核心功能)
- 预期用户(面向的阅读者)
- 项目功能的说明(每一个模块的说明)
-
测试参考文档
- 项目相关的文档(需求文档,说明书,计划书,合同书…)
- 专业书籍
- 技术论坛文章
-
测试提交文档
-
概述:测试过程中要产出的文档
-
测试用例:“怎么测”,证明测试的深度,广度
-
缺陷报告:证明测试的成果
-
测试报告:整理本轮测试所做的事情
关键在于:做好模板统一
-
-
专业术语
- 测试技术相关的专业术语
- 业务层面的专业话术(金融,医疗,军工,银行…)
- 和开发相关的专业术语(基本上可以忽略)
-
测试策略(最核心的模块)
-
根据【模块】来明确测试范围和测试类型:
可以按照系统的模块来进行划分,制定测试策略:
系统模块1:功能测试,性能测试,安全测试…
系统模块2:功能测试,UI界面测试…
系统模块3:功能测试,性能测试,易用性测试,兼容性测试…
……
-
可以按照【测试类型】来进行划分,制定测试策略
功能测试:系统模块1,系统模块2,系统模块3…
性能测试:系统模块1,系统模块3…
界面测试:系统模块1,系统模块2…
……
-
测试范围
测试范围和测试策略是相辅相成,根据明确的系统模块,整理出对应的(功能)测试点
例:信贷系统:用户管理模块:筛选功能,修改功能,删除功能,添加功能…
-
测试方法和工具
测试过程中会采用的一些测试方法,使用的一些测试工具
例:进行功能测试时,用到的方法:等价类边界值,场景法…;进行性能测试时,用到的工具:LR…
-
测试进入和退出的标准
①测试进入标准:当达到某一个目标时,就进行测试
例:当程序的一个模块被开发出来时,就可以进行单元测试
②测试退出标准:当实现某一个目标时,就可以退出测试
例:当每个模块的检测无误时,就可以退出单元测试
-
-
资源
-
硬件资源:被测项目所需要的最低环境资源支持
-
软件资源:比如服务器版本,数据库版本…
-
网络资源:5G 4G WIFI…
上述三点,都属于测试环境资源
-
人力资源:设定好参与测试的人员,明确分工,哪些人做哪些事情(角色+职责)
-
设定里程碑事件:在既定的时间节点要完成既定的任务
-
-
测试计划中的风险(风险分析)
- 市场:比如目前市场上同类型竞争产品较多
- 人员:比如请假,离职….
- 项目开发和需求:比如需求变更…
- 技术层面:比如参与人员技术有限…
- 软件测试分类:
开发阶段:单元测试,集成测试,确认测试,系统测试,验收测试
测试技术:黑盒测试,白盒测试,灰盒测试
代码运行:静态测试,动态测试
软件特性:功能测试,性能测试,安全测试
其它类型:回归测试,冒烟测试,随机测试,Monkey测试
- 测试计划 test plan 5W1H原则
what测什么,why为什么要测,who谁来测,where在哪测(测试环境),when什么时候测(开始、结束时间),how如何测
相关文章:
测试理论与方法----测试流程的第二个环节:测试计划
二、软件测试分类与测试计划 1、软件测试的分类(理解掌握) 根绝需求规格说明书,在设计阶段会产出的两个文档: 概要设计(HLD):设计软件的结构,包含软件的组成,模块之间的层次关系,模块与模块之间的调用关系…...

postgresql-子查询
postgresql-子查询 简介派生表IN 操作符ALL 操作符ANY 操作符关联子查询横向子查询EXISTS 操作符 简介 子查询(Subquery)是指嵌套在其他 SELECT、INSERT、UPDATE 以及 DELETE 语句中的 查询语句。 子查询的作用与多表连接查询有点类似,也是为…...

Linux 系统运维工具之 OpenLMI
一、前要 OpenLMI(全称 Open Linux Management Infrastructure)即开放式的 Linux 管理基础架构。OpenLMI 是一个开源项目,用于管理 Linux 系统管理的通用基础架构。它建立在现有工具基础上,充当抽象层,以便向系统管理…...

8天长假快来了,Python分析【去哪儿旅游攻略】数据,制作可视化图表
目录 前言环境使用模块使用数据来源分析 代码实现导入模块请求数据解析保存 数据可视化导入模块、数据年份分布情况月份分布情况出行时间情况费用分布情况人员分布情况 前言 2023年的中秋节和国庆节即将来临,好消息是,它们将连休8天!这个长假…...

【HSPCIE仿真】输入网表文件(5)基本仿真输出
仿真输出 1. 概述1.1 输出变量1.2 输出分析类型 2. 显示仿真结果2.1 .print语句基本语法示例 2.2 .probe 语句基本语法示例 2.3 子电路的输出2.4 打印控制选项.option probe.option post.option list.option ingold 2.5 .model_info打印模型参数 3. 仿真输出参数的选择3.1 直流…...

uni-app中使用iconfont彩色图标
uni-app中使用iconfont彩色图标 大家好,今天我们来学习一下uni-app中使用iconfont彩色图标,好好看,好好学,超详细的 第一步 首先,从iconfont官网(iconfont-阿里巴巴矢量图标库)选择自己需要的图…...

Hystrix: Dashboard流监控
接上两张服务熔断 开始搭建Dashboard流监控 pom依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocat…...

iconfont 图标在vue里的使用
刚好项目需要使用一个iconfont的图标,所以记录一下这个过程 1、iconfont-阿里巴巴矢量图标库 这个注册一个账号,以便后续使用下载代码时需要 2、寻找自己需要的图标 我主要是找两个图标 ,一个加号,一个减号,分别加入到…...

QT登陆注册界面练习
一、界面展示 二、主要功能界面代码 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QMainWindow(parent), ui(new Ui::Widget) {ui->setupUi(this);this->setFixedSize(540,410); //设置固定尺寸th…...

MySQL DATE_SUB的实践
函数简介DATE_SUB()函数从DATE或DATETIME值中减去时间值(或间隔)。 下面说明了DATE_SUB()函数的语法: DATE_SUB(start_date,INTERVAL expr unit); DATE_SUB()函数接受两个参数: start_date是DATE或DATETIME的起始值。 expr是一个字符串,用于确…...
OpenCV最常用的50个函数
Python版:OpenCV提供了众多图像处理算子和函数,涵盖了各种任务和技术。以下是OpenCV中一些常用的50个算子和函数: cv2.imread:用于读取图像文件。cv2.imshow:用于显示图像。cv2.imwrite:用于保存图像。cv2…...

Android AGP8.1.0组件化初探
Android AGP8.1.0组件化初探 前言: 前面两篇完成了从AGP4.2到 AGP8.1.0的升级,本文是由于有哥们留言说在AGP8.0中使用ARouter组件化有问题,于是趁休息时间尝试了一下,写了几个demo,发现都没有问题,跳转和传…...

文件修改时间能改吗?怎么改?
文件修改时间能改吗?怎么改?修改时间是每个电脑文件具备的一个属性,它代表了这个电脑文件最后一次的修改时间,是电脑系统自动赋予文件的,相信大家都应该知道。我们右击鼠标某个文件,然后点击弹出菜单里面的…...
2023年下半年软考报名注意事项!
考试注意事项: 分数线:所有科目成绩全部在45分以上(含45分)通过考试;三科目的话,必须每科目都及格才算通过考试,只有一个不合格的,本次考试其他两个无效。 出成绩时间:预…...

【LeetCode每日一题】——274.H指数
文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时间频度】九【代码实现】十【提交结果】 一【题目类别】 排序 二【题目难度】 中等 三【题目编号】 274.H指数 四【题目描述】 给你一个整数数组 ci…...

网络编程 day 4
1、多进程并发服务器根据流程图重新编写 #include <myhead.h>#define ERR_MSG(msg) do{\fprintf(stderr, "__%d__:", __LINE__); \perror(msg);\ }while(0)#define PORT 8888 //端口号,范围1024~49151 #define IP "192.168.11…...

【Java架构-版本控制】-Git基础
本文摘要 Git作为版本控制工具,使用非常广泛,在此咱们由浅入深,分三篇文章(Git基础、Git进阶、Gitlab搭那家)来深入学习Git 文章目录 本文摘要1.Git仓库基本概念1.1 远程仓库(Remote)1.2 本地库(Repository) 2. Git仓库…...
ubuntu 挂载硬盘操作
1. 查看磁盘 sudo fdisk -l 2. 查看UUID sudo blkid记录下待挂载硬盘的UUID, 后面要使用 ps. 如果报错,检查是否已格式化硬盘 查看新硬盘的盘符,我的是/dev/sda,用下述命令格式化 sudo mkfs -t ext4 /dev/sda3. 创建挂载点 我的是在/mnt…...

关于商品活动的H5页面技术总结
背景 在单个html文件里面使用vue3、jquery等其他第三方js库,实现规定的页面效果,其中主要功能是从商品json数据中读取数据,然后可以通过搜索框、下拉框、左侧菜单来筛选商户信息。 页面布局 技术要点: 1、通过路由来进行页面布…...

前端:横向滚动条,拖动进行左右滚动(含隐藏滚动条)
效果 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width, i…...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...

el-switch文字内置
el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...
【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统
目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

云原生玩法三问:构建自定义开发环境
云原生玩法三问:构建自定义开发环境 引言 临时运维一个古董项目,无文档,无环境,无交接人,俗称三无。 运行设备的环境老,本地环境版本高,ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...

群晖NAS如何在虚拟机创建飞牛NAS
套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...
【学习笔记】erase 删除顺序迭代器后迭代器失效的解决方案
目录 使用 erase 返回值继续迭代使用索引进行遍历 我们知道类似 vector 的顺序迭代器被删除后,迭代器会失效,因为顺序迭代器在内存中是连续存储的,元素删除后,后续元素会前移。 但一些场景中,我们又需要在执行删除操作…...

AI语音助手的Python实现
引言 语音助手(如小爱同学、Siri)通过语音识别、自然语言处理(NLP)和语音合成技术,为用户提供直观、高效的交互体验。随着人工智能的普及,Python开发者可以利用开源库和AI模型,快速构建自定义语音助手。本文由浅入深,详细介绍如何使用Python开发AI语音助手,涵盖基础功…...

数学建模-滑翔伞伞翼面积的设计,运动状态计算和优化 !
我们考虑滑翔伞的伞翼面积设计问题以及运动状态描述。滑翔伞的性能主要取决于伞翼面积、气动特性以及飞行员的重量。我们的目标是建立数学模型来描述滑翔伞的运动状态,并优化伞翼面积的设计。 一、问题分析 滑翔伞在飞行过程中受到重力、升力和阻力的作用。升力和阻力与伞翼面…...