测试的分类

那年仲夏 提交于 2020-01-20 13:31:16

测试分类:
1.按开发阶段划分(重点):
开发阶段分为UI界面层(要求最低,人员最多)UI:功能验证测试、兼容性与用户测试
业务逻辑层 Server:客户端模拟测试、内外接口测试、SDK接口测试
数据处理层(要求最高,人员最少)Unit:单元测试(白盒测试,对代码进行测试)、CodeReview(代码复审)
1)单元测试(模块测试):对软件组成单元进行测试,其目的是检验软件基本组成单位的正确性
测试阶段:编码后或编码前(TDD,测试驱动开发(研发人员拿着测试人员写的测试用例去写代码))
测试对象:软件设计的最小单位:模块,又称模块测试。
测试人员:白盒测试工程师或开发工程师
测试方法:白盒测试
测试内容:模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试
测试依据:代码的注释+详细设计文档
2)集成测试(联合测试):至少两个模块,将程序模块采用适当的继承策略组装起来,对系统的接口及集成后的功能进行正确性检测的测试工作。
测试阶段:一般单元测试之后
测试对象:模块间的接口
测试人员:白盒测试工程师或开发工程师
测试方法:黑盒和白盒相结合(既要测功能又要测代码)
测试内容:模块之间数据传输、模块之间功能冲突、模块组装功能正确性、全局数据结构、单模块缺陷对系统的影响
测试依据:单元测试的模块+概要设计文档
3)系统测试(测试人员花费时间最长的阶段):将软件系统看成是一个系统的测试。包括对功能、性能以及软件所运行的软硬件环境进行测试。时间大部分在系统测试执行阶段,包括回归测试和冒烟测试。
测试阶段:集成测试之后
测试对象:整个系统(软硬件)
测试人员:黑盒测试工程师
测试方法:黑盒测试
测试内容:功能、界面、可靠性、易用性、性能、兼容、安全性等
测试依据:需求规格说明文档
a:冒烟测试:对主干业务流程进行测试,目的是确认软件基本功能正常,可以进行后续的正式测试工作(测试人员是否进行测试的依据)
测试阶段:系统测试之前(包括在系统测试中)
b:回归测试:修改了旧代码之后,重新进行测试以确认没有引入新的错误或导致其他代码产生错误。
自动回归测试将大幅降低系统测试、维护系统等阶段的成本。
测试阶段:系统测试之后(包括在系统测试中)
4)验收测试:
测试阶段:系统测试之后
测试对象:整个系统
测试人员:最终用户或需求方
测试依据:用户需求、验收标准
测试方法:黑盒测试
测试内容:同系统测试(需求规格说明文档)
2.按测试实施组织:
预发布环境:上线之前的环境,和真实的生产环境(我们现在使用的淘宝环境)差不多
1)α:
测试环境:公司内部的开发环境或预发布环境
测试人员:本系统的测试人员和研发人员之外的人员
测试周期:短
测试阶段:β之前
2)β:
测试环境:用户的真实环境(验收测试)
测试人员:用户
测试周期:长(涉及用户付款)
测试阶段:α之后
3)第三方:
a:研发和测试分开,两个不同的公司
b:只把测试外包出去
3.按是否运行划分:
1)静态测试(可以人工可以工具):不运行被测程序本身,进行测试(代码的风格和规则审核,程序设计和结构的审核,业务逻辑的审核)。
不仅仅测试代码,还对文档的正确性、准确性进行测试。
静态质量:用六个方面进行衡量:功能性、可靠性、可用性、有效性、可维护性、可移植性
2)动态测试:运行被测程序,检查运行结果与预期结果的差异
4.按是否手工划分:
1)手工测试:
优点:自动化无法替代探索性测试,发散思维结果的测试
缺点:执行效率慢,量大易错
2)自动化测试:比如功能测试自动化、性能测试自动化、安全测试自动化
通常所说的自动化是指功能测试自动化
可以用于:冒烟测试,回归测试
优点:手工测试的缺点
缺点:手工测试的优点
自动化实施步骤:
a:完成功能测试,版本基本稳定
b:根据项目特性,选择适合项目的自动化工具,并搭建环境
c:提取手工测试的测试用例转化为自动化测试的用例(存在转换率)
d:通过工具、代码实现自动化的构造输入,自动检测输出结果是否符合预期
e:生成自动测试报告
f:持续改进,脚本优化
5.按是否查看代码划分(重点):
1)黑盒测试:也称为功能测试,测试中不关心代码的结构(不看代码),只看软件的输入数据和输出数据。
2)白盒测试
:也称为结构测试(看代码),对代码进行测试,即对单元测试的测试内容进行测试。
3)灰盒测试:多用于集成测试阶段,关注输入输出也关心程序内部结构。
6.按测试地域划分:
1)本地测试
2)国际化测试
7.按测试对象划分(重点):
1)业务测试:测试人员把系统各个模块串接起来运行,模拟真实用户实际的工作流程,满足用户需求定义的功能来进行测试的过程。
2)界面测试:UI测试,测试用户界面的功能模块的布局是否合理,整体风格是否一致,和个人审美有关。满足大部分人的审美观。
3)容错性测试:分为输入异常数据或进行异常操作和灾难恢复性测试,
输入异常比如输入错误用户名和错误密码,针对等价类,错误的等价类看他的处理方法
普通的容错性测试就是测试输入框的错误输入
灾难恢复性测试:通过各种手段,让软件强制发生故障,然后验证系统以保存的用户数据是否丢失,系统的数据是否能尽快恢复。
4)文档测试:分为三大类文档:开发文件,用户文件,管理文件
文档测试的关注点:文档的术语,文档的正确性,文档的完整性,文档的一致性,文档的易用性(可读性)
5)兼容性测试:软件之间能否很好的运作
Web测试:平台测试,浏览器测试,软件本身能否向前或向后兼容,测试软件能否与其他相关的软件兼容,数据兼容性测试(int是否兼容double,double是否兼容int)
App测试:不同品牌,不同机型,不同版本
6)易用性测试:和界面测试相同,没有统一标准,符合大多数人的标准就行
7)安装测试:测试程序的安装,卸载(电脑端,手机端)
8)安全测试:
9)性能测试:检查系统是否满足需求规格说明书中规定的性能
关注方面:对资源利用进行的精确度量,对执行间隔,日志时间,相应时间,吞吐量,辅助存储区,处理精度等进行的监测
难点:发现bug之后如何调优
10)内存泄露测试:检测要利用工具
出现原因:
分配完内存之后忘记回收
程序写法有问题,造成没办法回收
某些API函数的使用不正确,造成内存泄露
没有及时释放
code review:审查代码
静态代码分析:类型检查,风格检查,bug查找,安全漏洞,内存泄露
特点:不实际执行程序,执行速度快,效率高,误报率高
CI:持续集成工具
CD:持续发布工具
devops:运维工具

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!