一、按开发阶段分:
测试金字塔与业务测试分析
1.UI界面层:
比较复杂,需要一定的数据库,操作系统方面的基础知识
- 功能验证测试
- 兼容性测试与用户测试:兼容性测试与平台有关,web(浏览器),APP(操作系统)
2.业务逻辑层
- 客户端模拟测试:APP测试
- 内外接口测试:
- 内部:n个开发人员,各开发人员之间测试
- 外部:俩个项目或者俩个公司之间进行测试(参照物不同)
- SDK接口测试
SDK:一般是指软件工程师特定的软件包建立的开发工具集合
3.数据处理层
- 单元测试:代码测代码
- CodeReview:检查代码风格和语法等
按开发阶段分为四类
1.单元测试:又称模块测试,对软件组成的单元进行测试,其目的是检验软件基本组成单位的正确性,测试的对象是软件设计的最小单位——模块
- 测试阶段:编码后或者编码qian
- 测试对象:最小模块
- 测试人员:白盒测试工程师或开发人员
- 测试依据:代码和注释,详细设计文档
- 测试方法:白盒测试
- 测试内容:模块接口测试,局部数据测试,路径测试,错误处理测试,边界测试
2.集成测试:又称联合测试,组装测试将程序模块采用适当的集成策略组装起来,对系统的接口及集成后的功能进行正确性的测试工作,主要目的是检查软件单位之间的接口是否正确
- 测试阶段:一般在单元测试之后
- 测试对象:模块间的接口
- 测试人员:白盒测试工程师或软件开发工程师
- 测试依据:单元测试的模块+概要设计文档
- 测试方法:黑盒测试和白盒测试相结合
- 测试内容:模块之间的数据传输、功能冲突,模块组装功能正确性,全局数据结构,单模块缺陷对系统的影响
3.系统测试:一个系统的测试,包括对其功能,性能以及软件所运行的软硬件环境进行测试。大部分时间在系统测试执行阶段,包括回归测试,冒烟测试
- 测试阶段:集成测试之后
- 测试对象:整个系统(软、硬件)
- 测试人员:黑盒测试工程师
- 测试依据:需求规格说明书
- 测试方法:黑盒测试
- 测试内容:功能,界面,可靠性,易用性,性能,兼容性,安全性等
冒烟测试:对象是每一个新编译的需要正式测试的软件版本,目的是确认软件基本功能正常,可以继续后续的正式测试工作。冒烟测试的执行者是版本编译人员
//新买回来的手机,第一件失去就是把常用功能都试一遍,第二件事情就是将所有的功能都试一遍
回归测试:修改了旧代码以后,重新进行测试,确认修改没有引入新的错误或导致其他代码产生错误。自动回归测试将大幅降低系统测试,维护升级等阶段的成本
测试流程:冒烟——>系统——>回归
4.验收测试:部署软件之前的最后一个测试操作,他是技术测试的最后一个阶段,也叫交付测试,验收测试的目的是确保软件准备就绪,按照项目合同,任务书,双方越大的验收依据文档,向软件购买都展示该软件系统满足原始需求
- 测试阶段:系统测试通过之后
- 测试对象:整个系统(包括软硬件)
- 测试人员:主要是最终用户或者需求方
- 测试依据:用户需求,验收标准
- 测试方法:黑盒测试
- 测试内容:同系统测试
二、按测试实施组织
1.Alpha测试:出厂前最后一次测试,开发和测试人员不参与
- 预发布环境,项目以外的人员参与,用户不参与
2.beta测试:由软件的最终用户们在一个或多个客房场所进行
- 用户环境,用户参与,是一种验收测试
3.第三方测试:软件评测机构,或外包给一个公司
三、按是否运行划分
1.静态测试:不运行被测程序本身,仅通过语法,结构,过程,接口等来检查程序的正确性。对需求规格说明书,软件测试说明书,源程序做结构分析,流程图分析,符号执行来找错。分析如下:
- 检查项:代码风格和规则审核;程序设计和结构的审核,业务逻辑的审核
- 静态质量:功能的有效性,可靠性,可用性,有效性,可维护性,可移植性
- 代码静态分析和文档测试都属于静态测试
2.动态测试:通过运行被测程序,检查运行结构与预期结果的差异,并分析运行效率,正确性和健壮性等性能
- 由构造测试用例,执行程序,分析程序的输出结果,三部分组成
- 大多数软件测试都是动态测试
四、按是否手工划分:
1.手工测试:是由人去一个一个输入用例,然后观察结果,和机器测试相对应,属于比较原始但是必须的一个步骤
- 优点:自动化无法代替探测性测试,发生思维类无既定的结果的测试
- 缺点:执行效率满,量大易错
2.自动化测试:就是在预设条件下,运行系统或应用程序,评估运行结果,预先条件应包括正常条件和异常条件。简单来说,自动化测试就是把以人为驱动的测试行为转化为机器执行的一种过程
- 自动化测试按测试对象来分,还可以分为接口测试,UI测试。(接口测试的ROI(产出投入比)比UI测试高)
- 自动化测试比如:功能测试自动化,性能测试自动化,安全测试自动化
五、按是否查看代码划分
1.黑盒测试:也称为功能测试,测试中将被测软件当成一个黑盒子,不关心盒子的内部结构是什么,只关系软件的输入数据和输出数据
2.白盒测试:又称为结构测试,逻辑驱动测试,白盒测试指的是打开盒子,去研究里面的源代码和程序结果
- 接口测试也是白盒测试的一种
3.灰盒测试:是介于白盒测试和黑盒测试之间的一种测试方法,灰盒测试多用于集成测试阶段,不仅关注输入输出,还关注程序内部的清空
六、按测试地域划分
1.国际化测试
2.本地化测试
七、按测试对象划分
- 功能测试——对对象的各个功能进行测试
- 性能测试——对资源的利用,吞吐量,响应时间,处理角度等进行的监测等
- 界面测试——界面是否美观,完整。排版,布局是否合理,整体风格是否一致等等
- 容错性测试——异常情况下软件是否具有防护性的措施或满足灾难性恢复手段
- 安全测试——例如web的安全性测试,需要熟悉各种网络协议,TCP\HTTP,防火墙,CDN等
- 兼容性测试——web测试(浏览器),app测试(不同操作系统)
- 易用性测试——用户体验
- 文档测试——文档的术语,正确性,完整性,一致性,易用性
- 业务测试
- 安装测试——安装,卸载
- 内存泄漏测试