目录
1. 🔍按测试对象划分测试
1.1 🎈界面测试
界面测试就是UI测试。软件与用户的信息交流就是通过界面来进行的,界面设计的好坏决定了用户使用软件的直观感受。
我们对软件界面所展示的全部内容进行测试和检查,一般包括:
✨ 1. 保证界面与界面设计稿的一致性、正确性
✨ 2. 测试界面的每一个功能的正确性(从上到下,从左到右)
✨ 3. 界面布局合理(字体大小,是否斜体,图片布局排版,清晰度)
✨ 4. 界面控件功能是否正常(滚动条,按钮,文本框)
✨ 5. 进行界面不同分辨率的测试
1.2 🎈可靠性测试
可靠性 = 软件正常使用时间 / (正常运行时间 + 非正常运行时间)
一般软件对可靠性要求达到99.99%,特殊软件,如军事系统要求达到99.999%
如何进行软件可靠性测试?(MS)
让软件运行一段时间,计算它的正常运行时间、非正常运行时间,求可靠性
软件可靠性影响因素:
✨ 1. 软件本身
✨ 2. 外界因素(网络、电、硬件设备)
如果硬件原因导致故障使软件系统无法正常运行,这个时间也要算到软件可能性里。
1.3 🎈容错性测试
什么是容错性?
因为自身或者外部一些异常的操作使得系统发生异常,系统能够自我处理这种错误操作或者异常的能力。
✨ 1. 数据级别容错性:25时30分
✨ 2. 效验级别容错性:密码大小写 检验,前后密码一致性检验,输入账号长度检验
✨ 3. 界面级别容错性:一些复杂操作或危险性较高的操作,会给出提示信息
✨ 4. 环境级别容错性:断电,断网,硬件设备出问题是否让用户无感知到备用服务
✨ 5. 灾难恢复性测试:人为让系统发生故障,测试系统能否很快恢复数据,不丢失用户信息
1.4 🎈文档测试
整个开发过程中产生的各种文档,要求文档,设计文档,功能文档,用户使用手册进行测试。
文档测试关注点:
✨1. 文档的术语
✨2. 文档的正确性
✨3. 文档的完整性
✨4. 文档的一致性
✨5. 文档的易用性
1.5 🎈兼容性测试
兼容性测试需求是指明确测试的兼容环境,考虑软件,硬件的兼容。
✨ 1. 平台兼容性:Web网页(各种浏览器,操作系统的兼容性)App(Android,IOS,不同品牌,不同系统版本)
✨ 2. 软件本身的兼容性:软件对功能前后的兼容性(比如开大的新功能不能影响老功能,也不能影响后续功能的开发)
✨ 3. 软件对用户数据的兼容性:(比如数据库中的某一张表增加字段,不影响用户之前的数据存储)
✨ 4. 软件对第三方软件的兼容性:不能影响其他软件的使用,如果与第三方软有交互,数据要有兼容性
1.6 🎈易用性测试
用户使用软件的体验。软件产品应始终关注用户体验,让用户获得舒适,易用的体验,针对软件着方面的测试称之为易用性测试。
易用性包含几个要素:
✨1. 符合标准性和规范性(多数用户已经习惯的操作功能,不进行更改)
✨2. 直观性(让用户直接看到自己期望的操作)
✨3. 灵活性(用户可以根据自己的习惯选择自己的操作方式,比如输入法,有九宫格,手写,五笔等)
✨4. 舒适性(让用户对自己的操作有感知,不产生焦虑情绪,比如安装软件时,有进度条显示进度)
1.7 🎈安装卸载测试
主要考虑一下方面:
✨1. 软件可以正常安装和卸载
✨2. 软件更新
✨3. 安装软件时,断电,断网,死机的情况下软件的响应
✨4. 安装软件时,内存不足是否有提示
✨5. 卸载软件过程中暂停是否可以继续卸载
✨6. 卸载软件到一半取消卸载,软件是否可以正常使用
✨7. 卸载软件过程中断电,断网,死机
✨8. 卸载软件后,数据文件信息是否清理干净
1.8 🎈安全测试(了解)
防病毒,防黑客攻击,防爬虫
1.9 🎈性能测试(了解)
✨1. 内存泄露(会导致系统运行越来越慢)
✨2. 资源瓶颈
✨3. 系统运行越来越慢
✨4. 系统运行受外界影响越来越大
✨5. 死锁
✨6. 查询,加载信息速度很慢
1.10 🎈内存泄漏测试(了解)
内存泄漏会导致系统运行越来越慢。
导致原因:
✨1. 内存分配后没有回收
✨2. API函数使用不正确,无法回收
✨3. 内存分配方式有问题,无法回收
界面常见错误:
✨ 1. 不适合的快捷键
✨ 2. 文字的截断
✨ 3. 文字没有对齐
✨ 4. 文字自动换行
✨ 5. 文字重叠
✨ 6. 重复的快捷键
2. 🔍按是否查看代码划分
2.1 🎈黑盒测试
黑盒测试就是不关心软件内部代码实现,不关心代码的逻辑结构,只关心输入输出是否符合预期。
所以,黑盒测试只注重软件的功能。
黑盒测试的优点:
✨ 1. 不用看代码;
✨ 2. 黑盒测试测试系统的功能,从用户角度出发去设计测试用例,有利于培养用户思维。
✨ 3. 黑盒测试是基于软件需求开发文档,不容易遗漏需求。
黑盒测试的测试用例的方法有哪些?
等价类,边界值,因果图,错误猜测法,场景法,正交法
2.2 🎈白盒测试
白盒测试是针对代码进行的测试,分析和测试代码的逻辑和结构,实现的功能。看是否符合用户的需求。
在程序不同的地方设立检查建,检查程序的状态,以确定实际运行状态与预期状态是否一致。
白盒测试的六种测试方法:
语句覆盖,判定覆盖,条件覆盖,判定条件覆盖,条件组合覆盖,路径覆盖
2.3 🎈灰盒测试
灰盒测试,是介于白盒测试和黑盒测试之间的一种测试,灰盒测试多用于集成测试阶段。
不仅关注输出,输入的正确性,同时也关注程序内部的情况。
3. 🔍按开发阶段划分(和软件测试V模型结合在一起)
3.1 🎈 单元测试
单元测试是针对软件组成最小的单元模块进行测试。
检验软件基本组成单位的正确性。
✨测试阶段: 编码后或者 编码前(测试人员先写测试代码,空跑,开发人员根据异常写代码,直到测试用例代码通过)
✨测试对象:组成软件的最小模块
✨测试方法:白盒测试(白盒测试如何测试一个单元模块?用Junit 框架)
✨测试人员:白盒测试工程师或开发工程师
✨测试依据:代码和注释 + 详细设计文档(软件V模型测试)
✨测试内容:模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试、异常测试
3.2 🎈集成测试
按照一定的策略把单元模块组合起来形成一个大的功能模块,对这个功能模块进行的测试叫做集成测试。
✨测试阶段: 一般单元测试之后进行
✨测试对象:模块间的接口
✨测试方法:白盒测试(白盒测试如何测试一个单元模块?用Junit 框架)
✨测试人员:白盒测试工程师或开发工程师
✨测试依据:概要设计文档(软件V模型测试)
✨测试内容:整个模块功能的正确性,单元模块之间的接口正确性,全局数据结构测试,单个模块的缺陷对整个功能模块的影响,模块之间功能的冲突
3.3 🎈系统测试
当软件开发完成时,系统全面的对软件功能进行测试
✨测试阶段: 集成测试通过之后
✨测试对象:整个系统
✨测试方法:黑盒测试
✨测试人员:黑盒测试工程师
✨测试依据:需求规格说明文档
✨测试内容:系统的功能、界面、可靠性、易用性、性能、兼容性、安全性等
3.4 🎈验收测试
软件上线前的最后一道测试,有用户或者产品经理发起的。
✨测试阶段: 系统测试通过之后
✨测试对象:整个系统
✨测试方法:黑盒测试
✨测试人员:主要是最终用户或者需求方。
✨测试依据:用户需求、验收标准
✨测试内容:系统的功能、界面、可靠性、易用性、性能、兼容性、安全性等
3.5 🎈回归测试
回归测试是当系统引入了新的代码的时候,要查看新的代码是否影响了旧的功能,才进行回归测试。
迭代,修改Bug需要回归测试
3.6 🎈冒烟测试
冒烟测试 是正式测试之前,对软件系统的基本流程和核心功能进行测试,如果测试通过,才同意正式测试。
4. 🔍按测试实施组织划分
4.1 🎈 α 测试
α 测试指的是让用户或除了开发和测试人员以外的公司内部人员 到开发现场去 进行测试。
测试环境:开发环境
α 测试 优先于 β 测试
4.2 🎈 β 测试
β 测试 是实际用户在实际使用环境下进行测试,不限时间,不限地点。
(小红书邀请内侧属于β 测试)
α 测试 与 β 测试的区别:测试环境不同,时间集中程度不同
4.3 🎈 第三方测试
第三方测试是 第三方软件测评机构对软件进行测试。
5. 🔍按是否运行划分
5.1 🎈静态测试
静态测试就是 不运行代码,分析代码的风格是否符合公司的标准规范,分析代码的逻辑,结构,算法,方法的实现是否满足用户的需求。
5.2 🎈动态测试
动态测试是 运行代码,执行测试用例进行测试,检查实际输出结果和预期结果是否相同。
6. 🔍按是否手工划分
6.1 🎈手工测试
手工测试就是 手工执行测试用例,由人去一个一个的输入用例,然后观察结果。
✨优点:不可替代的,无法被自动化测试替代,手工测试的过程人为可以控制,有利于探索性测试。
✨缺点:量大容易出错,效率低
6.2 🎈自动化测试
自动化测试就是 机器按照预先设计好条件的去执行测试,这些条件包括正常和异常的方面。
自动化测试脚本:UI自动化,接口自动化,性能自动化
7. 🔍按测试地域划分
7.1 🎈软件国际化测试
开发软件的时候,使用了一种工程技术,使得软件在适用不同国家的语言、风俗习惯的时候,不用去改变软件的源码就可以做到。
Windows 操作系统,苹果手机