1、按照方法:黑盒测试、白盒测试、灰盒测试
黑盒测试:顾名思义,就是把所有东西装到一个盒子里,看不到内部逻辑,只能通过外部的可见的功能模块,对软件进行测试。比如说一个网站的登陆功能,你不知道它的内部逻辑是怎样的,只能通过网页的注册输入文本框和注册按钮,来测试注册这个功能是否正常。
白盒测试:这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。简单来讲,就是针对程序的代码进行测试。
灰盒测试:这是介于白盒测试与黑盒测试之间的,可以这样理解,灰盒测试关注输出对于输入的正确性,同时也关注内部表现,但这种关注不象白盒那样详细、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态
2、按照阶段:单元测试、集成测试、系统测试、验收测试
单元测试:单元测试是对软件中的最小可验证单元进行检查和验证。比如对Java中的类和方法的测试。
集成测试:集成测试是在单元测试的基础上,把软件单元按照软件概要设计规格说明的规格要求,组装成模块、子系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求。
系统测试:集成测试是在单元测试的基础上,把软件单元按照软件概要设计规格说明的规格要求,组装成模块、子系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求。
验收测试:也称交付测试,是针对用户需求、业务流程进行的正式的测试,以确定系统是否满足验收标准,由用户、客户或其他授权机构决定是否接受系统。验收测试包括alpha测试和beta测试,alpha测试是由开发者进行的软件测试(内测),beta测试是由用户在脱离开发环境下进行的软件测试(公测)。
3.按照方向:功能测试、性能测试、安全测试、UI界面测试、兼容性测试、易用性测试、稳定性测试、app的专项测试
功能测试:功能测试的大部分手段是黑盒测试 通过举例的方法说明
性能测试:可分为压力测试(测试系统的极限在哪) 负载测试(测试极限情况下能持续多久)例:内存泄漏/内存溢出(软件一直运行,用户产生的数据过多,系统内存不足,导致泄露)并发测试(测试多用户并发访问同一个应用、模块、数据时是否产生隐藏的并发问题)
安全测试:主要有:渗透测试、DDOS攻击、跨域攻击、SQL注入、暴力破解
UI界面测试:检查界面好不好看、界面风格是否保持一致、界面的按钮大小是否保持一致、
界面是否和设计图保持一致
兼容性测试:分为APP测试和web测试,
APP又可分为安卓系统和IOS系统两种,主要测试:不同的系统、屏幕、分辨率、品牌,当然,在成本的加持下,要通过对市场占有率来选择手机
web测试则是测试不同的浏览器下系统的情况,占有率高的有谷歌,新的edge,火狐,IE等
易用性测试:也叫用户体验测试,测试的要点在于用户的学习成本越低越好,功能越简洁越好
稳定性测试:针对系统的运行时间做出的测试
一般后端7*24,前端则3-5小时
APP的专项测试:
弱网测试:测试app在不同的环境下完成测试
场景交互测试:不同的app互相切换(前后台切换、来电话了、来短信了、微信语音、分屏等)
资源争用测试:同类型的app同时工作下的测试
权限测试:关闭权限后,是否影响其他功能的使用,使用对应的功能,是否提示给权限
离线测试:断开网络的条件下进行测试
安装卸载更新:
消息推送:主要在于两点:①APP关闭后还能收到消息的推送吗②断网后,再联网,之前的消息能收到吗
资源监控:app的大小,流量,电量,内存,cpu
4.按照对象:app测试、web测试、小程序测试、接口测试(前四种为最常见测试)、物联网测试、车联网测试、AI测试、大数据测试
5.按照状态测试:
6.其他测试:回归测试、冒烟测试
回归测试:检查上一次测试发现的错误有没有被修改