软件测试基础理论复习
什么是软件?
软件是计算机系统中与硬件相互依存的另一部分,
软件包括程序+文档
什么是软件测试?
(1)软件测试是在现有软件(程序+文档)中寻找缺陷的过程;
(2)软件测试是指使用人工或者自动化手段来运行或测试某个系统的过程,目的是检验系统是否满足需求规格说明书中的要求
软件测试的目的?
测试的目的是找出软件产品中的错误,使软件尽可能的符合用户的要求。
黑盒测试:
又叫功能测试,把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程,根据规格说明书,通过操作软件验证程序的功能是否与规格说明书规定的一致。
白盒测试:
也称结构性测试,是基于代码的测试,按照程序内部的逻辑结构,检测程序是否能按预定要求进行正确的工作。
回归测试:
回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。
冒烟测试:
是指在对一个新版本进行系统大规模的测试之前,先验证一下软件的基本功能是否实现,是否具备可测性,冒烟测试又称版本验证测试。冒烟测试的对象是每一个新编译的需要正式测试的软件版本,目的是确认软件的基本功能正常,可以进行后续的正式测试工作。 简单地说,冒烟测试就是用较少的人,在较短的时间内测试程序的主要功能,如果通过再进行正式的测试。
aplha测试和bate测试的区别?
Alpha测试(α测试):
通常也叫“验证测试”,主要是指在软件开发完成以后,在软件开发环境下,开发方对要提交的软件进行全面的自我检查与验证,可以和软件的“系统测试”一并进行。开发方通过检测和提供客观证据,证实软件的实现是否满足规定的需求。
Beta测试(β测试):
在用户的应用环境下,用户通过运行和使用软件,检测与核实软件实现是否符合自己预期的要求。通常情况用户测试指用户的使用性测试,由用户找出软件的应用过程中发现的软件的缺陷与问题,并对使用质量进行评价。β测试通常被看成是一种用户测试。β测试主要是把软件产品有计划地免费分发到目标市场,让用户大量使用,并评价、检查软件。通过用户各种方式的大量使用,来发现软件存在的问题与错误,把信息反馈给开发者修改。β测试中厂商获取的信息,可以有助于软件产品的成功发布。
什么是测试用例?
测试用例是由测试人员在测试执行之前编写的文档,用于指导测试过程
什么是软件缺陷?(如何识别bug)
(1)需求规格说明书中要求的功能未实现
(2)需求规格说明说中未要求的功能实现了
(3)程序中出现了需求规格说明书中指明不该出现的问题
(4)需求规格说明书中虽未明确提及,但必须实现的功能未实现
(5)程序难以理解,不易使用,界面不美观,用户体验不好等
(6)参照需求文档,实际与文档不符就是bug
(7)与需求人员,开发人员,用户进行讨论
(8)参照测试用例中的预期结果,实际结果与预期结果不符的就是bug
第一台计算机诞生在什么时候?叫做什么名字?
1946-2-15,叫做“艾尼阿克”
计算机的层次?
计算机分为3个层次:应用软件、操作系统、计算机硬件/裸机
裸机包含软件吗?如何进入?
裸机也包含软件,主要是bios程序;
开机或重启以后,迅速按下“delete”键(如果是笔记本,一般为功能键,如F2)
软件的分类?
软件包括系统软件和应用软件
按照系统软件划分?
操作系统、操作系统的补丁程序、驱动程序
按照软件结构划分?
可分为单机版软件和分布式软件;
根据客户端的特点将分布式软件分为c/s结构和b/s结构
什么是c/s结构和b/s结构?
①C/S结构:client/server客户端/服务器结构,客户端需要使用该公司提供的专门软件才能享受服务,QQ、微信、滴滴打车
②B/S结构:browser/server浏览器/服务器结构,客户端只要有浏览器就可以访问服务,网站、搜索引擎、论坛
什么是缺陷报告?
缺陷报告记录了测试人员在测试时发现的缺陷,是测试人员和开发人员交流和沟通的重要工具
缺陷报告包括那些(重要组成)?
1.缺陷编号:Defect
2.缺陷标题:Summary
3.缺陷的所属模块:Subject
4.缺陷的发现者:Detected By
5.缺陷的发现日期:Detected on date
6.缺陷的发现版本:Detected in release
7.缺陷指派给:Assigned to
8.缺陷的状态:Status
9.缺陷的严重程度:Serverity
10.缺陷的优先级:Priority
11.缺陷描述:Description
提交缺陷报告时,缺陷的等级划分
严重级别(S1):系统崩溃、数据丢失、数据毁坏
较严重(S2):流程走不通、操作性错误、结果错误
模块性错误(S3):功能遗漏、功能不实现
一般错误(S4):小问题,错别字,界面排版不合理等
建议性错误(S5):不影响产品质量的瑕疵
缺陷报告的处理流程?
1.测试人员发现新的bug,将状态改为new,转交给开发经理
2.开发经理验证该bug是否有效:
如果是缺陷,将状态改为open,分配给相应的开发人员
如果不是缺陷,将状态改为rejected
3.开发人员看到指派给自己的bug,进行修改,修改完后,把缺陷状态改为fixed
4.测试人员对修复的bug进行返测:
如果反测成功,将缺陷状态改为closed
如果返测失败,将缺陷状态改为reopen
缺陷报告的用途?
1.记录bug
2.对bug就行分类表达
3.跟踪管理bug
4.对bug进行分析,统计
缺陷的严重程度是什么?分为哪些等级?各代表的含义是什么?
缺陷的严重程度是表明bug对软件或用户造成的影响有多大
1.Urgent:造成死机,系统崩溃等致命问题
2.Veryhigh:非常严重的问题
3.High:严重的问题
4.Medium:中等程度的问题
5.Low:小的问题(尽量在发布之前解决)
缺陷的优先级是什么?分为哪些等级?各代表的含义是什么?
缺陷的优先级是希望程序员在什么时间,或在程序的哪个版本中修复bug
1.Urgent:立即修改,否则影响开发或者测试的进度
2.Veryhigh:本版本修改
3.High:下个版本修改
4.Medium:发布之前修改
5.Low:允许在发布中存在的bug
优先级需要考虑哪些重点因素?
1.严重程度:一般严重程度越高,优先级越高(但不是严格成正比关系)
2.影响范围:一般影响范围越大,优先级越高
3.开发组的任务压力:任务压力越小,优先级越高
4.解决bug的成本:成本越低,优先级越高
什么是缺陷描述?
把发现bug的步骤、过程、使用的数据记录下来,让程序员通过此描述重视bug
所有的bug在软件发布之前都必须解决的吗?
不是所有的bug在软件发布之前都能够解决;
对于没有解决的bug,一般要通过项目组的讨论,明确不解决bug的风险、给用户造成的损失以及解决缺陷的成本
编写测试用例有哪些方法?各方法的应用场合?
1.等价类划分法
只要有数据输入的地方就可以使用,从无穷多的数据中挑选出少数代表性数据进行测试
2.边界值法
只要有数据输入的地方就可以使用,往往和等价类划分法一同使用,形成一套完善的测试方法;找到有效数据和无效数据的分界点,对分界点及其两边的点,进行单独测试
3.因果图法
在一个界面中有多个控件,控件之间存在一定的组合关系和限制关系,不同的输入组合会产生不同的输出结果,为了弄清输入组合和输出之间的对应关系,选择因果图法
4.判定表法
判定表和因果图本质上是一种方法,都是解决控件组合问题,判定表法是因果图法的简化
5.正交排列法
6.场景法
7.测试大纲法
写用例时的参考?
1.需求文档(开发文档如果可以参考最好)
2.对照已经开发出来的程序
3.与需求人员,开发人员,用户进行沟通
测试思想?
穷举测试是最完善的测试方法,但由于时间成本过高,实际工作中不宜采用。
所以在保证质量的同时,使用最少的数据完成测试过程。
什么是有效等价类?
对程序的规格说明有意义,合理的数据的集合,程序接收到有效等价类数据应该正确计算执行
什么是无效等价类?
对程序规格说明无意义,不合理的数据集合,程序接收到无效等价类数据,应该给出错误提示,或根本不允许输入
无效等价类主要考虑的因素?
1.需求要求不能为空或必填,无效等价类就是为空
2.数据有范围要求,无效等价类就是超出范围
3.字符有个数要求,无效等价类就是超出规定的范围
4.数据有格式样式类型的要求,无效等价类就是测试格式样式。类型非法
5.需求有小数点位数要求,无效等价类就是保留位数超过范围
6.需求要求不能重复,无效等价类就是重复
一个好的软件的基本特点?
1.要求的功能要实现
2.具有很强的异常处理能力(健壮性)
V模型及优缺点
优点:
1.测试阶段划分明确
2.和开发的对应关系明确
3.既包含底层测试(单元测试)又包括用户级测试(验收)
缺点:
1.容易理解成软件测试是开发完成之后才参与的
2.没有体现出测试前期的工作(写计划、用例、测试文档),不符合越早测试和不断测试的原则
深入理解:
1.对需求、开发文档进行测试
2.根据开发文档编写测试计划、测试用例等,为执行用例最准备
感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取
相关文章:

软件测试基础理论复习
什么是软件? 软件是计算机系统中与硬件相互依存的另一部分, 软件包括程序文档 什么是软件测试? (1)软件测试是在现有软件(程序文档)中寻找缺陷的过程; (2࿰…...

【UnityRPG游戏制作】Unity_RPG项目_玩家逻辑相关
👨💻个人主页:元宇宙-秩沅 👨💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨💻 本文由 秩沅 原创 👨💻 收录于专栏:就业…...
QT_BEGIN_NAMESPACE
最近碰到了QT_BEGIN_NAMESPACE这个宏,这个宏就是一个命名空间,意思是如果不用这个宏,可能我qwidget定义的一个变量a会和标准C定义的变量a冲突对不,Qt通过这个命名空间,将所有类和函数封装在一个作用域里,防…...

Swift 集合类型
集合类型 一、集合的可变性二、数组(Arrays)1、数组的简单语法2、创建一个空数组3、创建一个带有默认值的数组4、通过两个数组相加创建一个数组5、用数组字面量构造数组6、访问和修改数组7、数组的遍历 三、集合(Sets)1、集合类型…...
string容器
目录 string函数的构造 string赋值操作 string字符串拼接 string字符串查找和替换 string字符串比较 string字符存取 string插入与删除 string字串 string函数的构造 #include<iostream> #include<cstring> using namespace std; void test01() {string s…...

Ansible-inventory和playbook
文章目录 一、inventory 主机清单1、列表表示2、inventory 中的变量3、变量3.1 主机变量3.2 组变量3.3 组嵌套 二、playbook剧本1、playbook的组成2、编写剧本2.1 剧本制作2.2 准备nginx.conf2.3 运行剧本2.4 查看webservers服务器2.5 补充参数 3、剧本定义、引用变量3.1 剧本制…...
HI3516CV610
一、总体介绍 HI3516CV610是一颗应用在安防市场的IPC SoC,在开放操作系统、新一代视频编解码标准网络安全和隐私保护、人工智能方面引领行业发展,主要面向室内外场景下的枪机、球机、半球机、海螺机、枪球一体机、双目长短焦机等产品形态,打…...
ansible内置主机变量及魔法变量
目录 概述实践代码执行效果 概述 简单实用版本 实践 代码 --- - name: Get IP Addresshosts: allgather_facts: notasks:- name: Get IP Addressansible.builtin.setup:register: host_ip- name: Print IP Addressansible.builtin.debug:msg: "The IP Address of {{ a…...
设计模式一
单例模式(Singleton Pattern)是一种常用的软件设计模式,旨在确保一个类只有一个实例,并提供一个全局访问点。单例模式常用于控制资源密集型对象的创建,如数据库连接池、线程池等,以避免资源浪费。 单例模式…...

MySQL中JOIN连接的实现算法
目录 嵌套循环算法(NLJ) 简单嵌套循环(SNLJ) 索引嵌套循环(INLJ) 块嵌套循环(BNLJ) 三种算法比较 哈希连接算法(Hash Join) 注意事项: 工…...
[力扣题解] 216. 组合总和 III
题目:216. 组合总和 III 思路 回溯法 代码 class Solution { private:vector<vector<int>> result;vector<int> path;public:void function(int k, int n, int startindex, int sum){int i;// 剪枝// 超过了, 不用找了;if(sum > n){return…...

Spring Security Oauth2 JWT 添加额外信息
目录 一、问题描述 二、实现步骤 1、自定义TokenEnhancer 2、配置授权服务器 3、自定义UserDetails的User类 三、参考文档 一、问题描述 Oauth2里默认生成的JWT信息并没有用户信息,在认证授权后一般会返回这一部分信息,我对此进行了改造。 Oauth…...

蜜蜂收卡系统 加油卡充值卡礼品卡自定义回收系统源码 前后端开源uniapp可打包app
本文来自:蜜蜂收卡系统 加油卡充值卡礼品卡自定义回收系统源码 前后端开源uniapp可打包app - 源码1688 卡券绿色循环计划—— 一项旨在构建卡券价值再利用生态的社会责任感项目。在当前数字化消费日益普及的背景下,大量礼品卡、优惠券因各种原因未能有效…...

三星硬盘好还是西数硬盘好?硬盘数据丢失怎么找回
在数字化时代,硬盘作为数据存储的核心组件,其品质与性能直接关系到用户的数据安全与使用体验。在众多硬盘品牌中,三星与西数无疑是两个备受关注的名字。那么,究竟是三星硬盘更胜一筹,还是西数硬盘更受用户青睐…...

企业微信hook接口协议,ipad协议http,设置是否自动同意
设置是否自动同意 参数名必选类型说明uuid是String每个实例的唯一标识,根据uuid操作具体企业微信 请求示例 {"uuid":"bc4800492083fdec4c1a7e5c94","state":1 //1 是需要验证同意(需要手动点击同意) 0关闭验证…...

自动化测试的成本高效果差,那么自动化测试的意义在哪呢?
有人问:自动化测试的成本高效果差,那么自动化测试的意义在哪呢? 我觉得这个问题带有很强的误导性,是典型的逻辑陷阱之一。“自动化测试的成本高效果差”是真的吗?当然不是。而且我始终相信,回答问题的最…...
h5页面用js判断机型是安卓还是ios,判断有app安装没app跳转应用商店app stroe或者安卓应用商店
用vue3写的wep页面。亲测好使。 疑惑: 微信跳转和浏览器跳转不一样,需要控制定时器的时间,android在没下载的情况下点击没反应,ios在没下载的情况下会跳404,就是定时器2000,不知道有没有别的办法࿰…...
算法人生(17):从“课程学习”到“逐步暴露心理疗法”
课程学习(Curriculum Learning)是一种机器学习里常用的策略,它的灵感来源于人类学习方式:学习从简单的概念开始,逐步过渡到更复杂的问题。它通过模仿教育领域中课程安排的思想,设计了一系列有序的任务或数据…...

C++仿函数周边及包装器
我最近开了几个专栏,诚信互三! > |||《算法专栏》::刷题教程来自网站《代码随想录》。||| > |||《C专栏》::记录我学习C的经历,看完你一定会有收获。||| > |||《Linux专栏》࿱…...

改进灰狼算法优化随机森林回归预测
灰狼算法(Grey Wolf Optimization,GWO)是一种基于自然界灰狼行为的启发式优化算法,在2014年被提出。该算法模仿了灰狼群体中不同等级的灰狼间的优势竞争和合作行为,通过不断搜索最优解来解决复杂的优化问题。 灰狼算法…...

使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...

全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...
在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module
1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用
1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...
scikit-learn机器学习
# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...

Golang——6、指针和结构体
指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...
LangFlow技术架构分析
🔧 LangFlow 的可视化技术栈 前端节点编辑器 底层框架:基于 (一个现代化的 React 节点绘图库) 功能: 拖拽式构建 LangGraph 状态机 实时连线定义节点依赖关系 可视化调试循环和分支逻辑 与 LangGraph 的深…...
es6+和css3新增的特性有哪些
一:ECMAScript 新特性(ES6) ES6 (2015) - 革命性更新 1,记住的方法,从一个方法里面用到了哪些技术 1,let /const块级作用域声明2,**默认参数**:函数参数可以设置默认值。3&#x…...