【测试开发学习历程】软件测试分类
目录
一、从是否执行程序
(一)静态测试
不运行被测试的软件,只是静态的检查代码、界面或者文档。

(二)动态测试
实际运行被测试的软件,输入相应的测试数据,检查预期的结果与输入的结果是否一致。
二、从测试实现方法
(一)手工测试
手工测试:是指由人根据用例进行数据输入,并分析判断测试结果的方式。
(二)自动化测试
自动化测试:是指由程序实现的工具代替人进行测试条件预置、程序运行、测试结果分析判断的方式。
三、从阶段划分
(一)单元测试
1.简介
对软件中最小可测试单元进行验证与检测。
对于单元测试中单元的含义,要根据具体情况具体判断。如:C语言中的单元指的是一个函数,Java里的单元指的是一个类,图形化窗口中指一个窗口或一个菜单。
2.内容
- 进口和出口函数
- 输入和输出信息
- 错误处理信息
- 部分边界数值测试
(二)系统测试
系统测试:将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起,进行信息系统的各种组装测试和确认测试.>系统测试是针对整个产品系统进行的测试
目的是验证系统是否满足了需求规格的定义,找出与需求规格不符或与之矛盾的地方,从而提出更加完善的方案>系统测试发现问题之后要经过调试找出错误原因和位置,然后进行改正。是基于系统整体需求说明书的黑盒类测试,应覆盖系统所有联合的部件。
对象不仅仅包括需测试的软件,还要包含软件所依赖的硬件、外设甚至包括某些数据、某些支持软件及其接口等。
1.功能测试
软件功能是否实现、实现的是否准确、是否符合《需求规格说明书》中的功能
2.性能测试
主要测试系统运行时的各种指标(CPU、内存、点击率、用户并发量、吞吐量等)
3.负载测试
负载测试(Load Testing):指通过对被测系统不断地加压,直到超过预定的指标(比如响应时间要求小于2s)或者部分资源已经达到了一种饱和状态不能再加压为止。就像举重运动员,在举重的过程中不断地增加杠铃重量,直到运动员无法举起。
说明:
- 负载测试的目的是找系统的最佳拐点,负载测试是最常进行的性能测试。
- 负载测试通常通过阶梯加压的方式来实现。
4.压力测试
压力测试:压力测试与负载测试有点类似,但两者的目的不一样,负载测试的目的是找性能的最佳拐点(最佳性能点),压力测试的目的是找到把系统压崩溃(不可用)的最大并发用户数。
压力测试做之前先做负载测试,先通过负载测试的最佳拐点,然后继续压,找到压垮系统的最大点。
5.稳定性测试
稳定性测试:又称可靠性测试,主要是通过长时间(7*24 小时)模拟被测系统的测试负载,来观察系统在长期运行过程中是否有潜在的问题。通过对系统指标的监控,稳定性测试可以发现诸如内存泄漏、资源非法占用等问题。
说明:
- 在稳定性测试时,需要模拟一定的流量,但也不是极限的流量。
- 长时间运行,最好7*24小时。
6.兼容性测试
软件兼容性主要考虑:常见系统:BS架构、CS架构(APP)
BS:浏览器兼容(举例:在chrome上)
CS:在不同的操作系统上,屏幕大小和分辨率
7.容量测试
面向数据的测试,测试系统的最大承载的数据量。(系统支持的最大用户量,类似于负载测试)
8.数据备份测试
系统出现故障时候,备份数据的能力(手工备份,自动备份)
9.数据恢复测试
系统故障后,恢复系统的能力(完整性、恢复的时间)
10.可用性测试
检查系统或软件的易用性和可操作性 (微信和QQ,微信为啥使用比较广泛,易用性好)
11.健壮性测试
测试系统在出现故障时,是否能够自动恢复或者忽略故障继续运行(输入用户名是5位,不会异常,而且会有提示信息)
12.安装测试
是否能够安装、是否按照正确的路径安装、是否有良好的信息提示,安装中是否有残留的文件、是否能取消安装、再次安装,是否可以更新安装、修复、卸载。
13.配置测试
面向硬件。检查系统硬件之间的配合。(这个软件适用的最优硬件配置,玩游戏的时候,有推荐配置)。
14.文档测试
《用户手册》《帮助文档》
15.在线帮助测试
验证系统提供的实时咨询服务的可操作性。
16.GUI测试
图形用户界面,主要测试菜单、按钮、文本框。
17.安全性测试
非法或者非正常途径入侵系统时,检查系统的保护和防御机制
(三)集成测试
1.简介
集成测试也叫组装测试或者联合测试。在单元测试基础上,将所有单元组成子系统或者系统进行测试,进行集成测试。
2.两种方法
(1)非增量式集成
(2)增量式集成
自顶向下的增量测试,桩测试。
自底向上的增量测试,驱动测试。
(四)验收测试
1.什么是验收测试
验收测试是部署软件之前的最后一个测试操作。在软件产品完成了单元测试、集成测试和系统测试之后,产品发布之前所进行的软件测试活动。它是技术测试的最后一个阶段,也称为交付测试。验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。
2.验收测试的两种方法
(1)非正式的验收测试
α 测试:软件开发公司组织内部人员模拟各类用户行为对即将上市的产品进行测试。
β 测试:软件开发公司组织各方面的的典型客户在日常工作中实际使用,并要求用户报告异常情况、提出改进意见,然后公司再进行完善。
(2)正式的验收测试
有正规的测试过程,需要制定测试计划、定义测试方案、选择测试用例,进行测试,结果提交。看重考虑软件是否满足合同规定的所有功能和性能,文档资料是否完整、准确,人机界面和其他方面。
四、从介入代码的程度
(一)黑盒测试
1.简介
把软件看成一个黑盒子,不管内部逻辑和内部特性,只依据规格说明书检查程序的功能是否符合功能说明。又称为功能测试或数据驱动测试。
2.特点
优点
- 对较大的代码单元来说,黑盒测试比白盒测试的效率高
- 测试人员不需要了解实现的细节,包括特定的编程语言
- 测试人员和编程人员是相互独立的
- 从用户的角度进行测试,很容易被接受和理解
- 有助于暴露任何与规格不一致或者歧异的地方
- 测试用例可以在规格完成后马上进行
缺点:
- 不能测试程序内部特定部位
- 程序未执行的代码无法发现
- 没有清晰的和简明的规格
(二)白盒测试
1.简介
又称为结构测试或逻辑驱动测试。着重于程序内部结构和算法,不关心功能和性能指标。
2.特点
优点:
- 迫使测试人员去了解软件的实现
- 检测代码中的每条路径和分支
- 揭示隐藏在代码中的错误
- 对代码的测试进行比较彻底
缺点
- (高成本)白盒测试投入较大,成本较高
- (忽略规格正确性)白盒测试不验证规格的正确性
- (忽略敏感性错误)无法检查代码中遗漏的路径和数据敏感性错误
(三)灰盒测试
1.简介
介于白盒和黑盒测试之间,基于程序运行时刻的外部表现同时又结合程序内部逻辑结构来设计用例,执行程序并采集程序路径执行信息和外部用户接口结果的测试技术。
2.特点
介于白盒测试与黑盒测试之间。
五、其它类型
(一)回归测试
1.简介
回归测试:是指软件bug被修改后,进行的测试,以确认原来的bug已经被解决,并且没有因为此次修改而引入新的bug。
2.分类
bug回归测试:验证bug已经解决,并且不能引入新的bug。
用例回归测试:前面的迭代执行过的用例,后面的迭代再次升级。

(二)探索性测试
1.简介
探索性测试:是指在对测试对象进行测试的同时学习测试对象,并设计测试,在测试过程中利用对测试对象的理解来设计更好的测试。

(二)冒烟测试
1.简介
冒烟测试:是对软件基本的功能进行测试,测试的对象是每一个新编译的需要正式测试的软件版本,目的是确认软件基本的功能正常,保证软件系统能跑的起来,可以进行后续的正式测试工作。
2.目的
验证软件的基本功能是否正常。
3.什么时候做?
正式的系统测试之前。
开发打包软件 -> 提测(转测试)-> 冒烟测试 -> 通过后,开始正式测试。
4.谁来测试
测试人员(开发也能做)。
5.选择什么样的用例
用例输入:正向 + 反向。
一般选择正向的,核心模块的,用例级别高的用例。
(二)发散测试
1.简介
发散测试:是指测试人员基于对被测对象的理解,在不受测试计划、测试用例等相关规则的约束进行的自由测试。
一般用于所有测试执行完成之后。
更多推荐
所有评论(0)