1. 软件:
计算机系统中的程序和相关文件或文档的总称;
2. 软件测试的概念:
测试的对象:程序、数据、文档
什么是软件测试:通过人工或自动的手段运行和测量软件系统的过程,以检验软件系统 是否满足规定的要求,并找出与预期结果之间的差异;
3. 软件测试的目的
找出软件中存在的错误(bug),使软件尽可能的符合用户需求;
4.为什么要进行软件测试
没经过测试的软件无法保证质量,测试中发现问题,及时提交开发改进;
5.什么是软件质量及软件质量评审的依据
软件质量:软件产品的特性可以满足用户的功能、性能需求的能力;
高质量的软件是适当的、无错误的、能在预算内按时交货的、满足需求或期望并且可维护的;
软件质量评审的依据:可靠性、安全性、性能、易用性、外观、稳定性
6.软件测试与软件质量的关系
-软件测试时提高软件质量的有效手段
-良好的软件过程保证软件质量
-软件测试属于软件过程的一个部分
7.软件的分类
-按功能划分:系统软件、应用程序
-按技术架构划分:单机版软件、C/S架构软件、B/S架构软件
-按目标用户划分:产品软件、项目软件
8. 软件测试的原则:
1️⃣测试应尽早介入(需求阶段)
2️⃣程序员应当避免测试自己编写的程序
3️⃣测试用例应尽可能的100%覆盖需求
4️⃣测试用例应由测试输入数据和预期输出结果两部分组成
5️⃣设计测试用例时,包括合理的输入条件和不合理的输入条件
6️⃣充分注意测试中的集群现象
7️⃣应当对每一个测试结果进行全面检查
8️⃣计划测试工作时不应该默许假定不会发现错误
9️⃣穷举测试不可能的
对于测试相关文档(测试计划、测试用例、测试报告等)要进行存档,便与后期维护;
9. 软件的生命周期
用户需求-->需求分析-->概要设计-->详细设计-->软件编码-->单元测试-->集成测试-->系统测试-->验收测试
10.软件开发的流程
需求分析-->概要设计-->详细设计-->编码-->单元测试-->代码审查-->集成测试-->打包提交测试-->等待测试提交bug-->修复bug-->提交测试进行回归测试-->等bug改bugN轮-->版本上线-->交付用户
11.软件测试的流程
需求分析-->测试计划-->冒烟测试-->编写测试用例-->用例评审-->搭建测试环境-->等开发测试包-->部署测试包-->冒烟测试-->执行测试用例-->提交并追踪bug-->回归测试N轮-->输出测试报告-->版本上线-->交付用户
12.软件测试的对象
1️⃣软件需求说明书
2️⃣软件概要设计
3️⃣软件详细设计
4️⃣软件源代码
5️⃣可运行程序
6️⃣软件运行环境
13. 软件测试的三种策略:
黑盒 : 测试过程中将程序视为一个黑盒子,测试目标与程序的内部特性与结构完全无关,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据及产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性;
黑盒常用测试方法:等价类划分法、边界值分析法、错误推测法、因果图法、随机测试等;
白盒 : 测试过程中将程序视为一个透明白盒,也称结构测试和逻辑驱动测试,知道程序内部结构,验证内部每条通路是否按需求正确工作不用顾其功能;主要用于软件验证;
白盒常用测试方法:逻辑覆盖法、循环覆盖、基本路径覆盖等;
灰盒:介于白盒和黑盒之间的测试;结合外部接口、功能和内部逻辑、路径,根据程序实际情况,进行测试;
14. 软件测试的4个主要阶段:
单元测试-->集成测试-->系统测试-->验收测试
15. 单元测试
单元测试又称模块测试,是针对软件的组成单元进行测试、目的是检验各个程序模块是否正确实现了其规定功能;
测试阶段:编码后
测试对象:软件的最小模块
测试人员:白盒测试工程师或开发工程师
测试依据:代码和注释+详细设计文档
测试方法:白盒为主、黑盒辅助
测试内容:模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试;
16.集成测试
集成测试也称联合测试/组装测试,在单元测试的基础上,将所有模块按照概要设计说明书和详细设计说明书的要求进行组装。对系统的接口及集成后的功能进行正确性检验的测试工作,其主要目的是检查软件单位之间的接口是否正确;
集成测试层次:子系统内集成测试、子系统间集成测试、模块间集成测试
模块组装成系统的方式:一次性组装方式和增殖式组装方式
一次性组装方式:先对模块分别进行测试、再把所有模块组装进行测试
增殖式组装测试:分为-->自顶向下、自底向上、分层集成、三明治集成、基层集成、高配集成;
测试阶段:一般在单元测试之后
测试对象:模块之间的接口
测试人员:白盒测试或开发工程师
测试依据:单元测试的模块+概要设计文档
测试方法:黑+白盒测试相结合
测试内容:模块之间数据传输、模块之间功能冲突、模块组装功能正确性、全局数据结构、单模块缺陷对系统的影响;
17.系统测试
在实际运行环境下,验证软件的功能和性能等特性是否与用户要求一致;
测试阶段:集成测试通过之后
测试对象:整个系统(软、硬件)
测试人员:黑盒测试工程师
测试依据:需求规格说明文档
测试方法:黑盒测试
测试内容:功能、界面、可靠性、易用性、性能、兼容性、安全性等;
18.验收测试
验收测试是以用户为主去检验软件产品质量的最后一道工序;验收测试分为Alpha测试、Beta测试;
Alpha测试:用户在开发环境下完成测试
Beta测试:用户在用户环境下完成测试
测试依据:用户需求、验收标准
19.冒烟测试
概念:冒烟测试是对每一个新编译的需要正式测试的软件版本进行一些基本的功能的测试、目的是确认软件基本功能正常,保证软件系统能跑起来,可以进行后续的正式测试工作;
为什么要进行冒烟测试:进行冒烟测试的目的就是为了提高质量与效率,对于开发人员来说:冒烟测试可以确保主要功能的完整,以及提高产品质量;对测试人员来说:冒烟测试可以避免不必要的测试失败而造成的时间浪费;
冒烟测试的准则:
1️⃣初步了解代码中进行了什么更改
2️⃣开发需告知该修改对其功能的影响
3️⃣更改对各组件的依存关系有何影响
冒烟测试的注意点:
1️⃣列出冒烟测试的主要功能及测试点
2️⃣冒烟测试不是只对修改过的功能进行测试
3️⃣重视平时测试时容易忽略的隐藏功能
4️⃣重视常见又很重要的步骤如:下载安装
20.回归测试
回归测试是指开发人员修改后,重新进行测试以确保修复完成且没有引入新的错误或导致其他功能产出错误,工作量比重大,软件开发的各个阶段都会进行多次回归测试;
21.冒烟与回归的区别
-测试阶段不同:冒烟测试是对新版本进行验证的过程,回归测试是指开发修改Bug后再次测试的过程;
-测试目的不同:冒烟测试是代码开发完成后进行的功能完整性测试、回归测试是为了验证Bug是否正确修改及其他功能是否受影响;
-测试周期不同:冒烟测试只集中考虑了一开始的那个问题,而忽略其他的问题,这就可能引起新的Bug,回归测试作为软件生命周期的一个组成部分,在整个测试过程中占用很大的工作量比重,软件开发的各个阶段都会进行多次回归测试;
22.随机测试
随机测试主要依据测试人员的经验对软件进行功能和性能抽查;
注:发现理解有错误的地方,望告知!!!谢谢!!!