先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024b (备注软件测试)
正文
- 易测试性 testability—软件产品使已修改软件能被确认的能力。
- 维护性的依从性 maintainability compliance—软件产品遵循与维护性相关的标准或约定的能力。
可移植性:
软件产品从一种环境迁移到另一种环境可正常使用或满足用户需求的能力
-
适应性adaptability—软件产品无需采用有别于为考虑该软件的目的而准备的活动和手段就可以适应不同的环境的能力。
-
易安装性 installability—软件产品在指定环境中 被安装的能力。
-
共存性 co-existence—软件产品在公共环境中同与其分享公共资源的其它独立软件共存的能力。
-
易替换性 replaceability—软件产品在同样的环境下,替代另一个相同用途的指定软件产品的能力。
-
可移植性的依从性 portability compliance—软件产品遵循与可移植性相关的标准或约定能力。
-
测试的方法有哪些?
答:
白盒测试、黑盒测试、灰盒测试、β测试,α测试、可移植性测试、冒烟测试等
- 什么是白盒测试?
答:
白盒测试是根据被测试程序的内部结构设计测试用例的一类测试,有人也称它为透明盒或者玻璃盒测试,涉及到软件设计的细节。比如单元测试一般采用白盒测试方法,并参考LLD(详细设计)
- 什么是黑盒测试?
答:
黑盒测试又称功能测试、数据驱动测试或者基于规格说明的测试,被测试程序当作黑盒处理,无法了解其内部的构造。比如系统测试一般采用黑盒测试方法,并参考SRS
- 什么是静态测试?
答:
不运行被测试的软件系统,而是采用其他手段和技术对被测试软件进行检测的一种测试技术。例如:代码走读、文档评审、程序分析等都是静态测试的范畴。常用技术有静态分析技术
- 什么是动态测试?
答:
按照预先设计的数据和步骤去运行被测软件系统,从而对被测软件系统进行检测的一种测试技术。常用技术有动态分析技术
- 什么是人工测试?
答:
测试活动(如评审、测试设计、测试执行等)由人来完成,狭义上是指测试执行由人工完成,这是最基本的测试形式
- 什么是自动化测试?
答:
一般是指通过计算机模拟人的测试行为,替代人的测试活动,狭义上是指测试执行由计算机来完成
- 逻辑覆盖关注的内容是哪些?
答:
-
语句覆盖
-
判定覆盖
-
条件覆盖
-
判定—条件覆盖
-
路径覆盖
-
常见的黑盒测试方法有哪些?
答:
-
等价类划分法
-
边界值分析法
-
因果图分析法
-
判定表法
-
正交试验法
-
状态迁移法
-
什么是同行评审?
答:
同行评审:(Peer Review)是一种通过作者的同行来确认缺陷和需要变更区域的检查方法。需要进行同行评审的特定产品在定义项目软件过程的时候被确定并且作为软件开发计划的一部分被安排了进度。根据形式正规的程度分为:
-
- 正规检视
- 技术评审
- 走查
同行评审的对象可以是计划、需求文档、设计图、代码等
- 自动化测试有什么意义?
答:
-
对程序新版本运行前一版本执行的测试,提高回归测试效率
-
可以运行更多更频繁的测试,比如冒烟测试
-
可以执行手工测试困难或不可能做的测试,比如大量的重复操作或者集成测试
-
更好地利用资源,比如测试仪器或者被测对象
-
测试具有一致性和可重复性,即自动化测试的步骤和结果是完全一样的
-
测试的复用性,即自动化测试脚本可以拆分开给其它测试脚本使用
-
可以更快地将软件推向市场,软件发布前进行高效的回归测试,减少软件发布的时间
-
增加软件信任度,通过自动化测试提高了测试效率,可把节约的时间拿出来做更多的测试
-
测试用例的八大要素是什么?
答:
-
测试用例编号
-
测试项目
-
测试标题
-
重要级别
-
预置条件
-
输入
-
操作步骤
-
预期输出
-
什么是缺陷管理?引入的原因有哪些?
答:
是在软件生命周期中获取、管理、沟通任何变更请求的过程。可以确保你的问题如需求或者缺陷被跟踪管理而不丢失
引入原因:
-
开发过程中缺乏有效沟通,或者没有沟通
-
软件负责度越来越高
-
编程中产生的错误
-
需求不断变更
-
项目进度的压力
-
不重视开发文档
-
软件开发工具本身隐藏的问题
-
缺陷的属性有哪些?
答:
-
缺陷发现人;
-
缺陷发现时间;
-
缺陷状态;
-
缺陷严重程度;
-
缺陷所属版本;
-
缺陷修改日期
-
画缺陷管理流程图?
答:
- 如何写缺陷跟踪单?
答:
缺陷跟踪单遵循5W原则;
-
Correct(准确):每个组成部分的描述准确,不会引起误解
-
Clear(清晰):每个组成部分的描述清晰,易于理解
-
Concise(简洁):只包含必不可少的信息,不包括任何多余的内容
-
Complete(完整):包含复现该缺陷的完整步骤和其他本质信息
-
Consistent(一致):按照一致的格式书写全部缺陷报告
-
什么是测试覆盖率?
答:
覆盖率是用来度量测试完整性的一个手段。覆盖率是测试技术有效性的一个度量。
覆盖率=(至少被执行一次的item数)/ item的总数
- 写计算语句覆盖率、判定覆盖率、条件覆盖率、判定-条件覆盖率、路径覆盖率、指令覆盖率等的表达式?
答:
语句覆盖率=(至少被执行一次的语句数量)/(可执行的语句总数)
判定覆盖率=(判定结果被评价的次数)/(判定结果的总数)
条件覆盖率=(条件操作数值至少被评价一次的数量)/(条件操作数值的总数)
分支条件覆盖率=(条件操作数值或判定结果至少被评价一次的数量)/(条件操作数值总数+判定结果总数)
路径覆盖率=(至少被执行到一次的路径数)/(总的路径数)
指令块覆盖=(至少被执行一次的指令块数量)/(系统中指令块总数)
- 什么是系统测试?
答:
系统测试(System Testing)是将已经集成好的软件系统,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起,在实际运行(使用)环境下,对计算机系统进行一系列的测试活动
- 系统测试的目的是什么?
答:
-
通过与系统的需求定义做比较,发现软件与系统定义不符合或与之矛盾的地方;
-
系统测试的测试用例应根据需求分析说明书来设计,并在世界使用环境下运行
-
系统测试的类型有哪些?
答:
功能测试;性能测试;压力测试;容量测试;安全性测试;GUI测试;可用性测试;安装测试;配置测试;异常测试(恢复性测试);备份测试;健壮性测试;文档测试;在线帮助测试;网络测试;稳定性测试
- 系统测试执行的活动有哪些?
答:
-
-
- 系统测试预测试项执行
-
- 系统测试与测试报告写作
- 系统测试用例执行
- 系统测试缺陷记录、修复
- 系统测试日报写作
- 系统测试报告写作
- 系统测试缺陷的回归测试
- 什么是单元测试?目的是什么?
答:
单元测试是对软件基本组成单元进行的测试,如函数(function)或(procedure)或一个类的方法(method)
单元测试的目的在于发现个模块内部可能存在的各种错误,主要是基于白盒测试
-
验证代码是与设计相符合的
-
发现设计和需求中存在的错误
-
发现在编码过程中引入的错误
-
单元测试的关注点?
答:
-
单元接口
-
局部数据结构
-
边界条件
-
独立路径
-
出错处理
-
什么是驱动?什么是桩?
答:
驱动单元(Driver):所测函数的主程序,它接受测试数据,并把数据传送给所测试单元,最后在输出实测结果,当被测试单元能完成相关的功能时,也可以不要驱动单元
桩单元(Stub):用来代替所测试单元调用的子单元
- 单元测试的测试策略是哪些?各有什么优缺点?
答:
- 孤立的测试策略:
优点:该方法是最简单,最容易操作的,可以达到高的结构覆盖率,该方法是纯粹的单元测试
缺点:桩函数和驱动函数工作量很大,效率低.
- 自顶向下的单元测试策略:
优点:可以节省驱动函数的开发工作量,测试效率较高。
缺点:随着被测单元一个一个被加入,测试过程将变得越来越复杂,并且开发和维护的成本将增加。
- 自底向上的单元测试策略:
优点:可以节省桩函数的开发工作量,测试效率较高。
缺点;不是纯粹的单元测试,底层函数的测试质量对上层函数的测试将产生很大影响。
- 什么是集成测试?目的是什么?
答:
集成测试是在单元测试的基础上,将所有函数按照概要设计要求组装成为子系统或系统所进行的测试
集成测试的目的是确保各组件组合在一起后能够按既定意图写作运行,并确保增量的行为正确。验证软件的组建对HLD的符合程度。集成测试属于灰盒测试。
-
验证接口是否与设计相符合的
-
发现设计和需求中存在的错误
-
集成测试的关注点是什么?
答:
单元间的接口:
- 在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失;
- 全局数据结构是否有问题,会不会被一场修改;
集成后的功能
- 各个子功能组合起来,能否达到预期要求得父功能;
- 一个模块的功能是否会对另一个模块的功能产生不利的影响;
- 单个模块的误差积累起来,是否会放大,从而达到不可接受的程度
- 集成测试的测试策略是哪些?各有什么优缺点?
答:
- 大爆炸集成
优点:
- 大爆炸集成可以迅速完成集成测试,并且只要极少数的驱动和桩模块设计,它需要的测试用例也是最少的;
- 该方法比较简单、易行;
- 多个测试人员可以并行工作,对人力、物力资源利用率较高
缺点:
- 这种一次性组装方式试图在辅助模块的协助下,在模块单元测试的基础上,将所测模块连接起来进行测试,但是由于程序中不可避免地存在模块间接口,全局数据结构等方面的问题,所以一次试运行成功的可能性并不很大;
- 在发现错误时,其问题定位和修改都较困难;
- 即使被测系统能够一次性集成,但还是会有许多接口错误很容易躲过测试而进入到系统测试范围内
- 自顶向下集成
优点:
- 自顶向下的集成方式在测试过程中较早地验证了主要的控制和判断点;
- 如果选择按深度方向组装的方式,可以首先实现和验证一个完整的软件功能;
- 功能可行性较早得到证实,还能够给开发者和用户带来成功的信心;
- 最多只需一个驱动,减少了驱动器开发的费用;
- 支持故障隔离
缺陷:
- 桩的开发和维护是本策略的最大成本;
- 底层组件行为的验证被推迟了;
- 随着底层组件的不断增加,整个系统越来越复杂,导致底层组件的测试不充分,尤其是那些被重用的组件
- 自底向上集成
优点:
- 允许对底层组件行为的早期验证,可以在任意一个叶子节点已经就绪的情况下进行集成测试;
- 在工作的最初可能会并行进行集成,在这一点上比使用自顶向下的策略效率高;
- 减少了桩的工作量,毕竟在集成测试中,桩的工作量远比驱动的工作量要大得多,但是为了模拟一些中断或异常,可能还是需要设计一定的桩
缺点:
- 驱动的开发工作量也是很庞大的;
- 对高层的验证被推迟到了最后,设计上的错误不能被及时发现,尤其对那些控制结构在整个体系中非常关键
- 三明治集成
优点:
集合了自顶向下和自底向上两种策略的优点
缺点:
中间层在被集成测试中不充分
- 基干集成
优点:
具有三明治集成的优点,更适合于大型复杂项目的集成
缺点:
- 必须对系统的结果和相互依存性进行仔细的分析;
- 必须开发驱动和桩,并且由于被测系统的复杂性导致驱动和桩开发工作量的加大;
- 由于局部采用了大爆炸的策略,因此有些可能测试不充分
- 分层集成
优点
有大爆炸,自顶向下,自底向上,三明治的优点
缺点
有大爆炸,自顶向下,自底向上,三明治的缺点
- 基于功能集成
优点:
- 采用该方法,可以尽快的看到关键功能的实现,并验证关键功能的正确性;
- 由于该方法在验证某个消息处理时,可能同时加入多个组件,因此在进度上比自顶向下集成、自底向上集成或三明治集成要短
- 可以减少驱动的开发,原因与自顶向下的集成策略类似
缺点:
- 对有些接口的测试不充分,丢失许多接口的错误;
- 可能会有较大的冗条测试
- 基于消息集成
优点:
- 采用该方法,可以尽快的看到关键消息处理的实现,并验证关键信息处理的正确性;
- 由于该方法在验证某个消息处理掉时候,可能会同时加入多个组件,因此在进度上不自底向上,自顶向下或三明治集成要短;
- 可以减少驱动的开发,原因与自顶向下的集成策略类似
缺点:
-
- 对有些接口的测试不充分,丢失许多接口的错误;
- 可能会有较大的冗条测试
- 基于进度集成
优点:
- 具有比较高的并行度;
- 能够有效缩短项目开发的进度
缺点:
- 可能最早拿到底层组件之间缺乏的整体性,只能进行独立的集成,导致许多接口必须等到后期才能验证,但此时系统可能已经很复杂,往往无法发现有效的接口问题;
- 桩和驱动的工作量可能会变得很庞大;
- 由于进度的原因,组件可能很不稳定且不断变动,导致测试的重复和浪费
- 基于风险集成
优点:
最具有风险的组件最早进行验证,有助于系统的快速稳定
缺点:
需要对各组件的风险有一个清晰的分析
- 配置管理的术语,配置管理的活动有哪些?
答:
术语:
配置;配置项;基线;版本;版本标示
活动:
- 配置计划
配置标识
-
配置控制
-
配置状态发布
-
配置审计
-
ISO?
答:
-
ISO9000:制定管理理念和原则
-
ISO9001:标准对组织质量管理体系必须履行的要求做了明确的规定,是对产品要求的进一步补充。(核心)
-
ISO9004:是组织进行持续改进的指南标准。
-
SEPG?
答:
软件工程过程组(Software Engineering Process Group)
重点:学习资料学习当然离不开资料,这里当然也给你们准备了600G的学习资料
需要的私我关键字【000】免费获取哦 注意关键字是:000
项目实战:
大型电商平台:
全套软件测试自动化测试教学视频
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
2. ISO9001:标准对组织质量管理体系必须履行的要求做了明确的规定,是对产品要求的进一步补充。(核心)
3. ISO9004:是组织进行持续改进的指南标准。
- SEPG?
答:
软件工程过程组(Software Engineering Process Group)
重点:学习资料学习当然离不开资料,这里当然也给你们准备了600G的学习资料
需要的私我关键字【000】免费获取哦 注意关键字是:000
项目实战:
大型电商平台:
全套软件测试自动化测试教学视频
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
[外链图片转存中…(img-5aYZGgbq-1713249495750)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!