软件测试的分类
- 一、软件的含义
- 二、软件测试的分类
-
- (一)按照方法(测试技术)分类
-
- 1、黑盒测试
- 2、白盒测试
- 3、灰盒测试
- (二)按照阶段分类
-
- 1、单元测试
- 2、集成测试
- 3、确认测试
- 4、系统测试
- 5、验收测试
- 6、回归测试
- (三)按照测试实施组织划分
-
- 1、开发方测试
- 2、用户测试
- 3、第三方测试
- (四)按照方向分类
-
- 1、功能测试
- 2、性能测试
- 3、安全测试
- 4、UI界面测试
- 5、兼容性测试
- 6、易用性测试
- 7、稳定性测试
- 8、app专项测试
- (五)按照对象分类
-
- 1、APP测试
- 2、WEB测试
- 3、小程序测试
- 4、接口测试
- 5、物联 测试
- 6、车联 测试
- 7、AI测试
- 8、大数据测试
- 。。。
- (六)按照状态(是否执行代码)分类
-
- 1、静态测试
- 2、动态测试
- (七)其他分类
-
- 1、冒烟测试
- 2、回归测试
一、软件的含义
二、软件测试的分类
(一)按照方法(测试技术)分类
1、黑盒测试
通过软件的外部表现发现其缺陷和错误。黑盒测试法把测试对象看成一个黑盒子,完全不考虑程序内部结构和处理过程。黑盒测试是在程序的界面处进行测试,其只为验证软件程序的各项功能是否按照相关文档的要求实现。
2、白盒测试
白盒测试又称结构测试。是通过对程序内部结构的分析、检测来寻找问题。白盒测试可以把程序看成装在一个透明的白盒子里,也就是清除了解程序结构和处理过程,检查是否所有的结构及路径都是正确的,检查软件内部动作是否按照设计说明的规定正常进行。
3、灰盒测试
介于白盒和黑盒测试之间,灰盒测试关注输出对于输入的正确性;同时也关注内部表现,但这种关注不如白盒测试细致,只是通过一些表征性的现象、事件、标志来判断内部的运行状态。灰盒测试结合了以上两种测试方法的要素,考虑到了用户端、特定的系统知识和操作环境。其在系统组件的协同性环境中评价应用软件设计。
(二)按照阶段分类
1、单元测试
单元测试又称模块测试,是针对软件设计的最小单位——程序模块进行正确性检验的测试工作,其目的在于检查每个程序单元是否能够正确的实现详细设计说明书中的模块功能、性能、接口和设计约束等要求,发现模块内部可能存在的各种错误。
2、集成测试
集成测试也可以称为组装测试,通常在单元测试得基础上,将所有的程序模块进行有序的、递增的测试模式。集成测试是检验程序单元或部件的接口关系,逐步集成为符合概要设计要求的程序或软件,总共有两种集成方式,一种是自低向上的,一种是自顶向下的。软件集成也是一个持续的过程,在不断的集成过程中,功能的稳定性非常重要,在每个版本提交时都需要进行冒烟测试。
3、确认测试
确认测试是通过检验和提供客观证据,证实软件是否满足特定预期用途的需求。确认测试是检测与证实软件是否满足软件需求说明书中规定的要求,其一般在系统测试前面进行,时间非常短,只是看系统的功能方面是否满足要求。
4、系统测试
系统测试是为了验证和确认系统是否达到其原始目标,而对集成的硬件和软件系统进行的全面的测试,以保证软件在真实的环境中能够按照要求运行,满足用户在实际工作中的需求。
5、验收测试
按照项目任务书或者双方约定的合同等具有法律效率的文件,对整个系统进行评审,以确认是否接收该系统。
(1)α测试—–又叫内测
(2)β测试—–又叫公测
6、回归测试
是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。
(三)按照测试实施组织划分
1、开发方测试
通常也叫“验证测试”或“α测试”;开发方通过检测和提供客观证据,证实软件的实现是否满足规定需求。验证测试是在软件开发环境下,由开发者检测与证实软件的实现是否满足指定要求。这个可以和软件的系统测试同时进行。
2、用户测试
在用户的应用环境下,用户通过运行和使用软件,检测与核实软件实现是否符合自己预期的要求。通常情况用户测试不是指用户的“验收测试”,而是指用户的使用性测试,由用户提交在使用过程中发现的缺陷与bug,然后再由开发人员进行修改。与其相关的有一种测试叫“β测试”,其指的是把软件产品有计划的免费发放到市场,让用户大量使用,并评价、检查软件,以搜集软件潜在的缺陷,然后让开发人员进行修改即可。
3、第三方测试
介于开发方与用户方之间的测试组织组织的测试,其在一定程度上独立于双方,第三方测试也叫独立测试。也就是说第三方测试是由在技术、管理和财务上与开发方和用户方相对独立的组织进行的软件测试。一般情况下是在模拟用户真实环境下,进行软件确认测试。
(四)按照方向分类
1、功能测试
根据需求文档,测试能不能实现相应功能
2、性能测试
测试系统的性能瓶颈
-
压力测试:对于分布式 络,测试不同用户数量来测试系统的反应,主要关注性能指标,系统不同表现。
-
负载测试:高压状态下多用户高并发测试(30万-50万),主要关注系统是怎么崩溃的。(内存泄漏,cpu无响应,数据库无反应, 络堵塞)
-
并发测试/容量测试:主要指当测试多用户并发访问同一个应用、模块、数据时是否产生隐藏的并发问题,如内存泄漏、线程锁、资源争用问题,几乎所有的性能测试都会涉及并发测试;系统最大支撑的相关数量,数据库最大数据数量,用户数量。
1、为什么要做性能测试br> 1)目前绝大多数应用都是基于 络的分布式应用,我们无法知道用户数量,用户场景的不确定性,导致系统测试时,不仅仅是功能,业务逻辑,接口测试,还要测试系统性能。一个用户没问题,但是用户一旦多了就可能出现各种各样的问题,所以需要进行系统性能测试。
2)用户数量增加,系统负债增加,进行系统性能测试,知道系统承受的并发用户数量,带宽是否够用,cpu是否够用,内存是否够用,硬盘速度是否跟得上。从服务端来看,测试服务器是否能承载用户多并发,系统是否稳定,从用户角度看响应时间速度。
可参考原文:性能测试总结
3、安全测试
- 渗透测试
- DDOS攻击
- 跨域攻击
- SQL注入
- 暴力破解
4、UI界面测试
主要检查界面是否好看、界面风格是否保持统一、界面按钮大小是否保持一致、界面是否和设计图保持一致等等。
5、兼容性测试
- 对于app而言:
首先,测试软件在Android和iOS上是否兼容;其次,测试不同的Android版本是否兼容。例如:不同的系统、不同的屏幕、不同的分辨率、不同的品牌;(可以根据市场的占有率进行选择占比高的Android进行测试) - 对于web而言:
测试不同的浏览器是否兼容。例如:谷歌、新的edge、火狐、IE、360、QQ浏览器。。。
6、易用性测试
进行用户体验测试,学习成本越低越好、功能越简洁越好
7、稳定性测试
8、app专项测试
- 弱 测试
测试app能不能在不同的 络下正常使用:2G、3G、4G、5G、WiFi、热点 - 场景交互测试
例如:不同的app互相切换、前后台切换、来电话、短信、微信语音、分屏等等。 - 资源争用测试
同类型的app同时工作时,哪个app的优先 - 权限测试
测试使用对应的功能,是否提示给权限、关闭权限后,是否影响其他的功能的使用 - 离线测试
- 安装、卸载、更新
- 消息推送
测试app关闭后是否还能收到消息推送
断 后,在联 ,之前的消息是否能收到 - 资源监控
app的大小、流量、电量、内存、CPU
(五)按照对象分类
1、APP测试
2、WEB测试
3、小程序测试
4、接口测试
5、物联 测试
6、车联 测试
7、AI测试
8、大数据测试
。。。
(六)按照状态(是否执行代码)分类
1、静态测试
指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。
2、动态测试
是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等性能指标。
(七)其他分类
1、冒烟测试
这是在正式测试前对软件进行一个预测,检查软件是否具备可测性
2、回归测试
检查上一次测试时发现的问题有没有被修改
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!