文章目录
1.测试分类图
2.按开发阶段分(重点)
测试金字塔
- SDK,全称:SoftWare DeveLopment Kit,一般是指软件工程师特定的软件包建立的开发工具集合。
- ROI:投入产出比
- 内外接口:相对而言,不是绝对的。
- 分析:
1> Unit对测试人员技术要求最高。
2> UI层(客户端)人数最多。
3> 对于测试人员来说,从底层到顶层,投入相同的精力,产出越来越少;表现为从底层到顶层测试的效率越来越低,成本越来越大,定位问题越来越难。
2.1单元测试(Unit Testing)
- 概念:对软件组成单元进行测试,即对模块进行测试,又称为模块测试。
- 目的:检验软件基本组成单位的正确性。
- 测试的对象:软件设计的最小单位——模块。
- 测试人员:白盒测试工程师或开发工程师。
- 测试阶段:编码后或者编码前。
编码后:代码完成后进行模块测试。
编码前:测试驱动开发(测试先行——研发人员依照测试用例写代码)
(TDD Test Driven Development 测试驱动开发)。 - 测试方法:白盒测试。
- 测试依据:代码和注释+详细设计文档。
- 测试内容:模块接口测试(接口参数)、局部数据结构测试、路径覆盖测试(if else/swtich)、错误处理测试(代码健壮性 try-catch-finally)、边界测试(边界溢出处理等)……等等。
- 注意:针对一个模块。
2.2集成测试(Integration Testing)
- 概念:将程序模块采用适当的集成策略组装起来,对系统的接口及集成后的功能进行正确性检测的测试工作,也称为联合测试(联调)、组装测试。
- 目的:检查软件单位之间的接口是否正确。
- 测试对象:模块间的接口。
(接口测试工具:postman、soupUI、抓包工具Fidler等 ) - 测试人员:白盒测试工程师或开发工程师。
- 测试阶段:一般单元测试之后进行
- 测试方法:黑盒测试与白盒测试相结合。
- 测试依据:单元测试的模块+概要设计文档。
(依据来源于软件测试V模型) - 测试内容:模块之间数据传输、模块之间功能冲突、模块组装功能正确性、全局数据结构、单模块缺陷对系统的影响……等等。
- 注意:针对 >= 两个模块。
2.3系统测试(System Testing)
- 概念:对功能、性能以及软件所运行的软硬件环境进行测试。
- 时间大部分在系统测试执行阶段,包括回归测试和冒烟测试 (一般顺序先冒烟后系统再回归)。
1>冒烟测试(Smoke Testing):对软件的核心主干流程进行测试。
作用:判断测试人员是否接收测试的标准。
2>回归测试(Regression Testing):修改了旧的代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。
使用场景:只要代码有变动(修改),就要进行回归测试。
注意:回归范围与测试的阶段有关(第一阶段回归bug、回归于bug相关的内容;最后阶段大多数使用自动回归测试)。 - 测试阶段:集成测试通过之后。
- 测试对象:整个系统(软、硬件)。
- 测试人员:黑盒测试工程师。
- 测试依据:需求规格说明文档。
- 测试方法:黑盒测试。
- 测试内容:功能、界面、可靠性、易用性、性能、兼容性、安全性……等等。
2.4验收测试(Acceptance Testing)
- 概念:部署软件之前的最后一个测试操作,也称为交付测试。
- 目的:确保软件准备就绪,按照项目合同、任务书、双方约定的验收依据文档,向软件购买都展示该软件系统满足原始需求。
- 测试阶段:系统测试通过之后。
- 测试对象:整个系统(包括软硬件)。
- 测试人员:主要是最终用户或者需求方。
- 测试依据:用户需求、验收标准。
- 测试方法:黑盒测试。
- 测试内容:同系统测试(功能…各类文档等)。
3.按测试实施组织
- 按测试实施组织划分:α测试(Alpha Testing)、β测试(Beta Testing)、第三方测试。
第三方测试:介于开发方和用户方间的组织的测试(外包公司、软件评测机构)。
Alpha测试(α测试):用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试。
Alpha测试(α测试):软件的多个用户在一个或多个用户的实际使用环境下进行的测试。
α测试、β测试区别
- 测试人员不一样。
α测试:公司内部(除本项目的研发人员和测试人员)的人员。
β测试:用户。 - 环境不一样。
α测试:研发环境或预发布环境(预发布环境与生产环境基本一致,理解为生产环境的镜像)。
β测试:用户环境 - 先后顺序不同:α测试在β测试之前。
- 时间长短不同:α测试时间相对集中(比较短);β测试时间比较分散(比较长)。