测试分类
最后更新于
分为单元测试、集成测试、系统测试(包含回归测试、冒烟测试)、验证测试
测试金字塔与业务测试分析:
单元测试:对软件组成单元进行测试,又称为模块测试
测试目的:检验软件基本组成单位的正确性
测试阶段:编码前或者编码后(TDD)
测试对象:软件设计的最小单位--模块
测试人员:白盒测试工程师或开发工程师
测试依据:代码和注释+详细设计文档
测试方法:白盒测试
测试内容:模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测
集成测试:将程序模块采用适当的集成策略组装起来,对系统的接口及集成后的功能进行正确性检测的测试工作
又称为联合测试、联调测试、组装测试
测试目的:检查软件单位之间的接口是否正确
测试阶段:一般单元测试之后进行
测试对象:模块间接口
测试人员:白盒测试工程师或开发工程师
测试依据:单元测试的模块+概要设计文档
测试方法:黑盒测试与白盒测试相结合
测试内容:模块间数据传输、模块间功能冲突、模块组装功能正确性、全局数据结构、单模块缺陷对系统的影响
系统测试:对功能、性能以及软件所运行的软硬件环境进行测试,对整个系统(软、硬件)进行测试,包括回归测试和冒烟测试
系统测试(接触最多、耗时最长)
测试阶段:集成测试通过之后
测试依据:需求规格说明文档
测试方法:黑盒测试
测试内容:功能、界面、可靠性、易用性、性能、兼容性、安全性等
回归测试:
工作量大,自动回归测试将大幅度降低系统测试、维护升级等阶段的成本
冒烟测试:用于软件开发人员开发完毕后送给测试人员测试时,测试人员先进行冒烟测试保证基本功能正常,不阻碍后续测试
验证测试:
测试目的:确保软件准备就绪,按照项目合同、任务书、双方约定的验收依据文档,向软件购买者展示该软件系统满足原始的要求
测试阶段:系统测试通过之后
测试对象:整个系统(包括软硬件)
测试人员:主要为最终用户或需求方
测试依据:用户需求、验收标准
测试内容:功能、界面、可靠性、易用性、性能、兼容性、安全性等
α测试(Alpha Testing)、β测试(Beta Testing)、第三方测试
α测试(Alpha Testing):由用户在考法环境下进行测试,也可以是公司内部的用户在模拟实际操作环境下进行测试,其目的是评价软件产品的FLURPS(功能、局域化、可使用性、可靠性、性能和支持);α测试不能由或测试员程序员完成 β测试(Beta Testing):一种验收测试,由软件的最终用户们在一或多个场所进行 第三方测试:介于开发方和用户之间的组织的测试,如外包公司
测试用例:正常和异常
手工测试
自动化测试(将人为的操作转化为机器执行的过程)
按是否查看代码分: 黑盒测试(功能测试):重点看输入输出是否达到预期结果
白盒测试(结构测试):白盒测试就是代码测代码,研究代码及程序结果;接口测试、单元测试属于白盒测试
灰盒测试:介于白盒测试和黑盒测试之间,覆盖黑盒测试和白盒测试的功能,既关注输入输出,又关注程序代码内部结构,多用于集成测试
按测试地域分: 本地化测试、国际化测试
性能测试:发展前景很好
安全测试:
web的安全测试,需要熟悉各种网络协议 :TCP\HTTP,防火墙,CDN,熟悉各种操作系统的漏洞,熟悉路由器等。从软件来说,熟悉各种攻击手段,例SQL注入、Xss等
安装测试:
测试程序的安装、卸载;如App的安装、卸载
兼容性测试:
指软件之间能否很好的运做,会不会有影响、软件和硬件之间能否发挥很好的效率工作,会不会影响
导致系统的崩溃。
缺点:比较麻烦,工作量大;
WEB测试,APP测试;常见的是浏览器的兼容性测试
文档测试:
分为开发文件、用户文件(最常见)、管理文件三类,测试用例是开发文件,测试计划和测试分析报告是管理文件
文档测试的关注点:文档的术语、文档正确性、文档完整性、文档一致性、文档易用性
易用性测试:没有标准
容错性测试:
检查软件在异常条件下自身是否具有防护性的措施或者某种灾难性恢复的手段
分为异常处理和灾难性恢复测试
灾难恢复性测试:强制性发生故障,验证系统已保存的用户数据是否丢失,系统和数据能否尽快恢复
业务测试:关注需求和用户
界面测试:
界面的美观性(界面操作按钮、图案、颜色、演示、导航、文字、命名、页面)
内存泄漏测试:
造成内存泄露的原因:
分配完内存之后忘了回收。 程序写法有问题,造成没办法回收。 某些API函数的使用不正确,造成内存泄露。 没有及时释放 内存泄漏的检测:
1、对于不同的程序可以使用不同的方法来进行内存泄露的检查,还可以使用一些专门的工具来进行内存问题的检查,例如MemProof. AQTime、Purify、BundsChecker等。 有些开发工具本身就带有内存问题检查机制.要确保程序员在编写程序和编译程序的时候打开这些功能。
2、通过代码扫描分析工具来检查