按阶段分类
- 单元测试
偏向白盒的测试,一般由开发自己完成,对最小可测单元进行检查和测验,其目的是检测一个很小的模块功能的正确性。 - 集成测试
其形式是不同的小单元逐个集成聚合成一个组件,不同组件又聚合成子系统、系统。该测试一般是在单元测试完成之后,测试模块与模块之间的接口。 - 系统测试
偏向黑盒的测试,是对整个系统的测试。主要内容包括功能、性能、安全、UI、兼容性、易用性、稳定性测试。 - 验收测试
是部署软件之前的最后一个测试操作,是技术测试的最后一个阶段,也称交付测试。其目的是确保软件准备就绪,能让最终用户使用预定功能。
1)正式验收(管理严格,组织有序,客观公正)
2)非正式-α测试:内测,在开发环境下测试,用户数量相对较少
3)非正式-β测试:公测,在一个或多个用户场所测试,用户数量相对较多
α测试先于β测试
按方法分类
- 黑盒测试
以用户的角度主要关注被测软件的功能实现,将软件当作一个黑盒子,不考虑盒子里的内部逻辑结构,只关心软件的输入和输出。 - 白盒测试
检查软件内部逻辑结构,对软件中的逻辑路径进行覆盖测试。 - 灰盒测试
是黑盒和白盒的结合,多用于集成测试。不仅关心软件的输入和输出,还要关注软件内部结构,但不像白盒那样详细完整。
按对象分类
- 功能测试
- 性能测试
- 压力测试
- 负载测试
- 并发测试
- 安全测试
- 暴力破解
- SQL注入
- 跨域攻击
- 流量攻击/DOS攻击
- 渗透
- UI/界面测试
测试用户界面的页面是否美观,布局是否合理,风格是否统一,有无错别字等。 - 易用性测试
偏主观性,是用户体验性测试,即用户使用软件时是否感到方便,对于用户来说操作步骤越少越好,学习成本越低越好。 - 兼容性测试
检查软件之间是否能正确进行交互和共享信息。如测试软件在不同平台是否兼容,web端要考虑在不同的浏览器和版本上能否正常使用,app端还要考虑ios和andriod版本,以及硬件对软件的影响。 - 接口测试
- 稳定性测试
APP专项测试
- 弱网测试
2/3/4/5g,wifi, 热点,飞行模式等网络下测试 - 场景交互测试
考虑来电话、来短信、听歌、分屏、前后台切换等场景 - 权限测试
- 资源监测测试
可以从软件大小、电量消耗、流量消耗等方面测试 - 资源争用测试
- 消息推送测试
- 安装/卸载/更新
- 离线测试
按状态分类
- 静态测试
不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找错。 - 动态测试
动态测试方法是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等性能。
这种方法由三部分组成:构造测试用例、执行程序、分析程序的输出结果。
我们进行的软件测试多数是动态测试。
常见的测试分类差不多就这些了,要成为一个优秀的测试,理论还是应该掌握扎实,规范的测试思想可以让我们考虑得更加全面,发现更多的问题,从而把控软件质量。
分类千万条,全面第一条
测试不规范,产品泪两行
当然也可能是开发泪两行,测试滚铺盖:)