软件测试理论知识(入门篇)_软件测试入门,2024年软件测试春招面试经历

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注软件测试)
img

正文

输出:测试方案文档
人员:高级测试工程师编写
内容:如何测试(选择什么测试方法,选择什么测试工具)

  1. 测试实现活动

输出:测试用例
人员:测试工程师编写
测试用例 用一组数据按照一定步骤来检查软件的处理是否正确

  1. 测试执行活动

根据测试用例文档对被测对象进行操作
测试员完成
具体内容
1)搭建测试环境
2)执行测试用例
3)提交缺陷报告(开发人员要通过调试来定位和修复缺陷;测试工程师需要通过回归测试验证缺陷是否修复)
4)测试记录
5)编写测试报告和测试总结

知识点4、双V模型

  1. 测试在编码完成之后进行,细分为:
    单元测试(计划-设计-实现-执行)
    集成测试(计划-设计-实现-执行)
    系统测试(计划-设计-实现-执行)
    验收测试(计划-设计-实现-执行)
  2. 双V模型
    在这里插入图片描述
  • 代码审查:代码编译,编码规则检查,注释率统计
  • 验证与确认
    验证 Verification 检测每一阶段形成的工作产品是否与前一阶段定义的规格相一致
    确认 Validation 检测每一阶段的工作产品是否与最初定义的需求规格相一致

特点

  • 测试和开发同步开展工作
  • 测试执行的顺序和开发的活动顺序相反
  • 每个阶段的测试计划、设计、实现和执行分离
  • 系统测试计划、设计、实现最早开始,执行最晚结束

三、测试方法

知识点1、 黑白灰测试

  1. 黑盒测试
    根据外在特性开展测试。只知道被测对象外在特性,不知道内部实现细节。
    系统测试的主要依据是需求规格
    需求规格告诉我们软件的功能(外在特性)
    系统测试主要采用黑盒测试
  2. 白盒测试
    根据内部结构开展测试。只知道被测对象内部实现细节,不知道外在特性。
    单元测试的主要依据是详细设计
    详细设计主要是函数的内部逻辑(内部结构),也有函数的功能(外在特性)
    单元测试根据函数内部结构和功能开展测试,主要采用白盒测试。
  3. 灰盒测试
    同时根据外在特性和内部结构开展测试。既知道外在特性,也知道内部实现细节。
    集成测试的主要依据是概要设计
    概要设计有每个模块的功能(外在特性),和每个模块内部有哪些函数(内部结构)
    集成测试根据模块功能以及内部组成来开展测试,采用灰盒测试

知识点2、静态动态测试

  1. 静态测试
    不执行被测对象进行测试
    分类:
    人工静态测试 同行评审
    自动化静态测试 代码编译
    测试对象:需求规格,概要设计,详细设计,代码,用户手册,帮助
  2. 动态测试
    执行被测对象进行测试
    分类 功能测试,性能测试,安全性测试,可靠性测试,语句覆盖测试
    测试对象 代码,程序

知识点3、人工自动化测试

  1. 人工测试
    人工测试是自动化测试的基础
  2. 自动化测试
    重复性高、技术难度低的工作可交给电脑完成
  • 自动化测试优点
    确保软件之前正常的功能没有问题
    提高回归测试效率
    具有很好的一致性
  • 自动化测试局限性
    当界面发生变化或者位置发生变化时,脚本失效
    脚本维护工作量大大增加
    无法提高测试效果
    很难发现新的问题
  • 自动化测试何时引入
    界面不发生变化时可引入
    需要重复执行10次以上
  • 狭义自动化测试
    用自动化测试脚本替代人做执行
  • 广义自动化测试
    四个活动是否可以利用计算机替代人的工作
    测试计划(自动分工)
    测试设计实现(测试用例自动生成)
    测试执行(测试环境自动搭建部署,测试用例自动执行)

四、软件质量

知识点1、什么是软件质量?

  1. 质量的定义
    质量是实体的各种特性满足需求的程度。
    三要素
    1)实体 (产品和服务)
    产品分软件产品(WPS),硬件产品(杯子)和软硬件结合的产品(手机)
    2)特性 多角度评价:功能,性能,易用性,安全性,可靠性 …
    3)需求
  2. 软件质量的定义
    软件质量是软件的实体特性对需求的满足程度
    2.1 软件质量的三个层次
    对需求规格的满足 内部和外部质量
    对用户需求(显式)的满足 验收质量
    对用户实际需求(显式和隐式)的满足 使用质量
    2.2 软件质量铁三角
    1)组织
    细分整个开发团队:产品部,项目部,开发部,测试部,运维部
    2)技术
    开发技术 设计(概要,详细,界面)和编码
    测试技术 分析测试点,设计测试用例,自动化测试
    3)流程
    使团队可以更好的协同工作
    大流程 研发流程,测试流程
    小流程 缺陷管理流程,需求管理流程,配置管理流程

知识点2、 软件质量模型
从多个不同角度看待软件,分 6 大特性和 27 子特性
软件外部质量:功能性,效率,易用性,可靠性,可移植性 主要由测试工程师关注
软件内部质量:可维护性 主要由开发工程师关注
在这里插入图片描述

特性一、 功能性

1)适合性
软件产品为指定的任务和用户目标提供一组合适的功能的能力
功能是不是用户需要的
如:电商软件提供商品搜索和购物车功能是适合的,搜狗拼音升级安装搜狗浏览器是不适合的。
2) 准确性
软件产品提供具有所需精确度的正确或相符的结果或效果的能力
功能是否准确,计算精度是否达到要求,是否和需求规格严格一致
如:商品搜索结果和搜索关键字是否匹配,美团骑手位置的准确性
3)互操作性
软件产品与一个或更多的规定系统进行交互的能力
不同软件之间互操作
如:链接分享到其他软件,微信读取通讯录,软件打印和打印机软件的互操作,手机软件和基站
的互操作
第三方登录(使用QQ和微信登录),第三方支付(支付宝,微信支付)
4)保密安全性
软件产品保护信息和数据的能力, 以使未授权的人员或系统不能阅读或修改这些信息和数据, 而
不拒绝授权人员或系统对它们的访问
如:密码输入需要掩码显示,密码传输需要加密,密码存储需要加密。论坛普通用户不能删除其
他用户的发帖。WPS文档可以加密。
5)功能性依从性
软件产品遵循与功能性相关的标准、约定或法规以及类似规定的能力
要考虑国际标准、国家标准、行业标准、企业内部规范等

特性二、效率

1)时间特性
在规定条件下,软件产品执行其功能时,提供适当的响应和处理时间以及吞吐率的能力。即完成
用户的某个功能需要的响应时间。
如:手机App启动的时间,页面链接点击响应时间,服务器的吞吐率。
2)资源利用性
在规定条件下,软件产品执行其功能时,使用合适的资源数量和类别的能力
包含本机的资源,也包含服务器的资源。
如:手机App占用的CPU和运行内存,服务器多用户访问占用的CPU和内存,网络带宽。
3) 效率的依从性
软件产品遵循与效率相关的标准或约定的能力

特性三、 易用性

1)易理解性
软件产品使用户能理解软件是否合适以及如何能将软件用于特定的任务和使用环境的能力
界面显示让用户易理解
如:图标形象容易理解功能,用户容易找到需要使用的功能在哪里操作
2)易学性
软件产品使用户能学习其应用的能力
根据帮助或者提示可以很快学会
如:鼠标悬停在图片的提示,软件的在线帮助
3)易操作性
软件产品使用户能操作和控制它的能力
如:操作的步骤少,按钮的位置,菜单的层级少
4)吸引性
软件产品吸引用户的能力
如:按钮的样式,输入框宽度一致,间距相同,不同层级的文字样式,对齐方式
5)易用性的依从性
软件产品遵循与易用性相关的标准、约定、风格指南或法规的能力

特性四、 可靠性

1)成熟性
软件产品为避免由软件中错误而导致失效的能力
软件对于内部的问题能够很好的处理
如:软件正常操作长时间不出现问题,MTBF
2)容错性
在软件出现故障或者违反指定接口的情况下,软件产品维持规定的性能级别的能力
软件对外部错误能够很好的处理
如:某些必填项不写注册,输入整数的输入小数
3)易恢复性
在失效发生的情况下,软件产品重建规定的性能级别并恢复受直接影响的数据的能力
成熟性和容错性都是为了保证不出异常和故障,易恢复性是为了保证出现故障以后能恢复
4)可靠性的依从性
软件产品遵循与可靠性相关的标准、约定或法规的能力

特性五、 可移植性

1)适应性
软件产品无需采用有别于为考虑该软件的目的而准备的活动或手段就可能适应不同的指定环境的能力
软件适应不同的环境(操作系统,浏览器,分辨率)
如:QQ Windows版本支持Windows 10/7/11/8.1,某网站支持Chrome/Firefox/Edge/IE浏览器,某移动App支持1920x1080,2340x1080,1280x720分辨率的手机
2)易安装性
软件产品在指定环境中被安装的能力
不同用户环境下都容易安装
如:安装选项简单步骤少,包含软件需要的依赖环境(VC运行库)
3) 共存性
软件产品在公共环境中同与其分享公共资源的其它独立软件共存的能力
和其它软件共存
如:和电脑管家,杀毒软件共存,快捷键冲突支持自定义快捷键
4)易替换性
软件产品在同样环境下,替代另一个相同用途的指定软件产品的能力
如:WPS替换Office,Chrome替换IE,WPS高版本替换低版本
5)可移植性的依从性
软件产品遵循与可移植性相关的标准或约定的能力

特性六、 可维护性

1)易分析性
软件产品诊断软件中的缺陷或失效原因或识别待修改部分的能力
如:软件代码中增加运行日志
2)易改变性
软件产品使指定的修改可以被实现的能力
代码是否容易修改,模块化,分层明确
3)稳定性
软件产品避免由于软件修改而造成意外结果的能力
模块的接口定义是否稳定
4)易测试性
软件产品使已修改软件能被确认的能力
方便测试执行,可观察,可控制
5)可维护性的依从性
软件产品遵循与维护性相关的标准或约定的能力

知识点3、 质量管理体系

  1. CMM
    软件能力成熟度模型。软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。
    专门针对软件行业,CMM 关注企业内部的能力。
  2. CMMI
    CMM 的升级版本,软件能力成熟度模型集成。
  • 阶段式表示
等级CMM LevelCMM 等级CMMI LevelCMMI 等级
1Initial初始级Initial初始级
2Repeatable可重复级Managed已管理级
3Defined已定义级Defined已定义级
4Managed已管理级Quantiatively Managed量化管理级
5Optimizing优化级Optimizing优化级
  • 连续式表示
    过程管理,项目管理,工程,支持

五、软件需求

知识点1、需求工程

  1. 需求的定义
    解决用户问题或达到用户目标所需的条件或能力
    为遵循合同、标准、规格或其他要求的正式文档,系统必须满足或拥有的条件或能力
    强调做什么(What)而不是如何做(How)
  2. 需求工程
    需求开发:需求获取,需求分析,需求定义,需求验证
    需求管理: 需求分配,需求评审,需求基线,需求跟踪,变更控制
  3. 需求管理工具
    Quality Center(QC)
    IBM Rational DOORS
    禅道

知识点2、需求规格说明书

  1. 定义
    需求规格说明书(Software Requirement Specification)
    是对在特定环境下要完成一定功能的软件产品、程序或一组程序的说明
    应该从以下方面去描述需求:
    功能 软件要做什么
    性能 速度、响应时间等
    外部接口 如何与人、系统硬件、外部的硬件和软件交互
    属性 可移植性、可靠性、可维护性、易用性等
    实现的设计约束 标准、实现语言、资源限制、操作环境
  2. 目的
  • 在客户和开发者之间达成一致
  • 为编制计划和成本计价提供基础
  • 为设计提供了基础
  • 为确认和验证提供一个基础
  • 提高开发效率
  1. 特点
  • 软件需求的正确性
  • 软件需求无歧义性
  • 软件需求可验证性
  • 软件需求一致性
  • 软件需求完整性
  • 软件需求可追踪性
  1. 内容
  • 产品环境介绍:软件在什么环境下使用?和测试环境的搭建相关
  • 用户特征:软件给谁用? 要从用户使用的角度考虑测试点
  • 假设和依赖关系:开发语言、开发环境 不同开发语言测试的关注点有差异
  • 用户接口:人机接口/界面 原型图
  • 功能需求:描述了软件必须执行的基本动作
    用需求编号加上简短词汇做为功能需求名 如 OA.REGISTER.USERNAME.01
    内容包含:简要介绍,输入,处理,输出
  • 性能需求:描述对软件的静态的和动态的量化需求
    静态:支持的终端数目、支持的同时使用的用户数、表和文件的大小……
    动态:请求响应时间、吞吐量、资源利用率……
  • 技术限制:使用特定技术的限制,包括接口,数据库,通讯协议,编程规范等
  • 本地化:描述支持多种语言的需求
  • 软件接口:与外部软件的接口,考虑软件质量模型中互操作性
  • 标准符合性:软件质量模型中依从性
  • 需求分级:螺旋模型可以根据需求分级来确定哪些功能先做,测试用例的重要级别和需求分相关
    优先级
    基本的(Essential/Mandatory)绝对基本特性,如果不包含,产品就会被取消。
    条件的(Conditional)不是基本的特性,但这些特性会影响产品的生存能力。
    可选的(Optional)期望的特性,省略一个或多个特性不会影响产品的生存能力。

知识点3、 同行评审

  1. 基本概念
    同行评审(Peer Review)是一种通过作者的同行来确认缺陷和需要变更区域的检查方法。
    需要前期准备、计划和时间进度表
    越早进行越好
  2. 评审方法
    2.1 正规检视
    需要有严格的评审流程,目的是发现缺陷
    评审对象 仅针对基础性的技术类工作成果物,如需求规格说明书,概要设计,详细设计
    2.2 技术评审
    主要由技术类工作人员参与,主要提出可替换的技术方案
    评审对象 管理类工作成果物和测试的工作成果物,如项目计划,测试计划,测试方案,测试用例和测试报告
    4.2.3 走查
    主要目的是发现缺陷、遗漏和矛盾的地方,改进产品。不需要评审会议。
    评审对象 代码,用户手册,帮助

知识点4、需求评审

  • 评审流程
  1. 需求分析人员提交需求规格给开发经理(评审组织者)
  2. 项目经理确定参与评审的评审专家
  3. 项目经理把需求规格、评审表单、评审检查单给评审专家
  4. 评审专家如果觉得需求规格不好理解可建议召开介绍会议
  5. 项目发经理根据评审专家反馈组织介绍会议(可选)
  6. 作者解答疑问,保证评审专家能开展评审
  7. 评审专家评审并反馈评审表单给开发经理
  8. 项目经理汇总评审表单并反馈需求分析人员查看
  9. 开发项目经理组织评审会议(需求分析人员逐一确认每条评审意见)
  10. 针对需要讨论的问题召开第三小时会议(可选)
  11. 需求分析人员根据确认后的评审意见修改需求规格
  12. 评审专家确认修改是否正确
  13. 确认后的需求规格可正式对外发布

六、系统测试

知识点1、 什么是系统测试
检查已经集成的软件是否和需求规格说明书一致
系统种类:桌面软件,Web 网站,客户端软件,移动 App,小程序,智能设备,通信系统 …

知识点2、系统测试类型

  1. 功能测试
    质量模型中 功能性
    分类:单功能测试,功能交互测试,业务场景测试
  2. 性能测试
    质量模型中 效率
    性能测试指标:响应时间,吞吐量/吞吐率,并发用户数,内存占用,CPU占用,磁盘占用,功耗,流量。
    性能测试是一个大的测试类型,是所有性能相关测试的统称。可以细分为几个子测试类型:
  • 负载测试
    测试系统在各种负载情况下,是否满足需求规格说明书各项性能指标相关要求, 并测试出系最
    大负载,主要测试系统的能力。
  • 压力测试
    测试系统在极限负载情况下是否会崩溃,各项性能指标在长时间运行的情况下是否稳定,主要测试系统的耐力。
  • 容量测试
    测试系统可处理同时在线的最大用户数,通常和数据库容量相关。
    只关注数量多少,不关注速度多快。
  • 基准测试
    用于一些大型的网站的性能测试
    找一台普通服务器,针对不同版本的软件进行小容量的测试,进行对比
  • 并发测试
    测试多个用户同时访问同一个应用、同一个模块或者数据记录时是否存在问题
  1. 界面测试
    质量模型中 易用性的易理解性和吸引性
  • 测试界面元素的显示
    界面元素大小,形状,色彩
    界面元素文字的字体,字号,对齐
    光标位置
    输入回显
  • 测试界面元素的行为
    输入限制,输入检查,输入提醒
    默认值
    出错信息位置
  • 测试界面的布局
    各界面元素所在位置
    各界面元素对齐方式
    各界面元素之间的间距
    各界面元素之间的色彩搭配
  1. 易用性测试
    质量模型中 易用性的易操作性
    软件操作方便,操作步骤少
    桌面软件菜单级数不超过 3 级
    网站分类导航不超过 3 级
  2. 兼容性测试
    质量模型中 可移植性的适应性
    也叫配置测试
    不同软硬件环境下功能测试,界面测试和性能测试。不是完全独立的测试类型。
  • 软件环境
    客户端
    操作系统(Windows 10/7/11,macOS,Android 11/10/9,iOS 16/15)
    浏览器(Chrome, Firefox, Edge, IE11)
    分辨率(1920x1080,1366x768,1280x720,2K,4K)
    服务器
    Web 服务器软件(Apache, nginx)
    数据库服务器软件(Oracle,MySQL)
  • 硬件环境
    如游戏测试考虑不同档次和不同品牌的显卡
  1. 安全性测试
    质量模型中 功能性的保密安全性
    数据的安全性
    权限的安全性
    安全漏洞
  2. 安装测试
    质量模型中 可移植性的易安装性
  • 安装前测试
    检查安装包文件格式、类型和大小等
    检查安装包中文件是否齐全
    检查安装包中是否有病毒或木马
    检查硬件环境配置是否符合要求
  • 安装中测试
    安装流程测试
    升级降级测试
    异常情况测试 磁盘空间不足,磁盘没有写权限,内存不足
  • 安装后测试
    测试安装好的软件是否可运行
    软件的卸载测试
    程序文件的目录及子目录是否正确产生
    是否存在无用的目录、子目录、程序文件和临时文件
    安装日志检查
    测试安装是否完整
  1. 可靠性测试
    质量模型中 可靠性
    稳定性测试
    连续运行较长时间不出现问题
    容错性测试
    也称为异常测试,鲁棒性测试
    恢复性测试
    从灾难或出错中能否很好地恢复
    异常:软件系统故障,断电,硬件及有关设备故障,通信故障和错误
  2. 文档测试
    对用户使用手册,系统部署文档,帮助等文档进行测试。
    检验文档的完整性,正确性,一致性,易理解性和易浏览性
  3. 网络测试
    不同网络环境下软件是否正常运行
    WiFi 网络
    2G,3G,4G,5G 移动网络
    弱网
    无网

知识点3、系统测试环境

  1. 环境组成
  • 硬件
    PC,服务器,网络设备,测试仪表,打印机
  • 软件
    操作系统
    Web服务器软件
    应用服务器软件
    数据库
    被测软件
    软件支持平台
    浏览器
    测试数据

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
长时间不出现问题
容错性测试
也称为异常测试,鲁棒性测试
恢复性测试
从灾难或出错中能否很好地恢复
异常:软件系统故障,断电,硬件及有关设备故障,通信故障和错误
9. 文档测试
对用户使用手册,系统部署文档,帮助等文档进行测试。
检验文档的完整性,正确性,一致性,易理解性和易浏览性
10. 网络测试
不同网络环境下软件是否正常运行
WiFi 网络
2G,3G,4G,5G 移动网络
弱网
无网

知识点3、系统测试环境

  1. 环境组成
  • 硬件
    PC,服务器,网络设备,测试仪表,打印机
  • 软件
    操作系统
    Web服务器软件
    应用服务器软件
    数据库
    被测软件
    软件支持平台
    浏览器
    测试数据

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
[外链图片转存中…(img-3Kh5wq8y-1713611024202)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 14
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值