- 研发阶段:单元测试,集成测试,系统测试,验收测试(重要)
- 实施组织:α 与 β(概念,三个区别,不一定要掌握)
- 按是否执行:静态测试 和 动态测试(静态测试里面包含文档测试和代码测试)
- 按是否手工:手工测试 和自动化测试
- 是否查看代码: 黑盒,白盒,灰盒
- 按地域:本地化测试,国际化测试
- 按测试对象划分
一. 金字塔(越到下层越难)
- UI界面层
- 功能验证测试
- 兼容性与用户测试(验收测试)
- 业务逻辑层
* 客户端模拟测试
* 内外接口测试(根据对象决定)
* SDK接口测试 - 数据处理层
* 单元测试
* CodeReview
(一)按研发阶段:
1. 单元测试(模块测试)
- 测试阶段:编码后或者编码前
- 测试对象:最小模块
- 测试人员:百合测试师或者开发工程时
- 测试依据:代码和注释+详细设计文档
- 测试方法:白盒测试
- 测试内容:模块接口测试,局部数据结构测试,路径测试,错误处理测试,边界测试
(写项目时,写单元测试时要写明单元测试的具体内容)使用Junit进行单元 测试
-
集成测试:对系统的接口及集成后的功能进行测试。(白盒测试和黑盒测试)
-
集成测试强调的是接口之间。
- 测试阶段:单元测试之后
- 测试人员:白盒测试工程师或者开发工程师
- 测试依据:单元测试的模块+概要设计文档
- 测试方法:黑盒测试+白盒测试
- 测试内容:模块之间的数据传输,模块之间功能冲突,模块组装功能正确性,全局数据结构,单模块缺陷对系统的影响(如登录模块有问题,则后续的模块都无法进行)
-
-
系统测试:
- 包括功能,性能,以及软件运行所要需要的硬件和软件环境。
- 时间大部分在系统测试执行阶段
- 包括回归测试和冒烟测试。
- 测试阶段:集成测试通过之后
- 测试对象:整个对象(软硬件)
- 测试人员:黑盒测试工程师
- 测试依据:需求规格说明文档
- 测试方法:黑盒测试
- 测试内容:功能,界面,可靠性,易用性,性能,兼容性,安全性。
- 回归测试:是指修改了旧代码以后,重新进行测试以确认修改有没有引入新的错误或导致其他代码产生错误。
自动回归测试(自动化测试) - 冒烟测试:对核心的主要流程进行测试
结果:判断是否接收测试 - 测试流程:冒烟测试->系统测试->回归测试
-
验收测试(用户测试,交付测试):
- 测试是否满足了用户的原始需求
- 测试阶段:系统测试通过之后
- 测试对象:整个系统(包括软硬件)
- 测试人员:最终用户或者需求方
- 测试依据:用户需求,验收标准
- 测试方法:黑盒测试
- 测试内容:同系统测试
(二)实施组织:α 与 β
- α测试:由一个用户在开发环境下进行的测试(该用户是公司内部的人员)
- β测试:是由多个客户在不同场合进行测试
- β测试比α测试的测试时间长。
(三)按是否运行划分:- 静态测试:不用执行被测程序本身
- 动态测试:运行程序。
(四)按是否手工:
- 手工测试
- 由人去一个一个手工输入用例,观察结果
- 优点:自动化无法代替探索性测试,发散思维结果的测试。
- 缺点:执行效率慢,量大易错。
- 自动化测试:手工输入的信息用代码实现
- 功能自动化测试,性能自动化测试,安全自动化测试。
- 通常所说的自动化测试是指功能自动化测试
- 自动化实施的步骤:
(1)完成功能测试,版本基本稳定。
(2)根据项目特性,选项合适项目的自动化工具,并搭建环境。
(3)提取手工测试的测试用例转化为自动化测试的用例。
(4)通过工具,代码实现自动化的构造输入,自动检测结果是否符合预期。
(5)生成自动测试报告。
(6)持续改进,脚本优化。
(五)按是否查看代码划分:
- 黑盒测试(功能测试):针对软件进行测试,观察测试结果是否符合预期。
- 白盒测试:基于代码的测试,测试内部的逻辑结构,边界值,错误推测等。
- 灰盒测试:白盒测试+黑盒测试