软件测试的分类
一、软件测试的定义
将预期结果和实际结果作对比,从而找出软件中存在的bug
二、软件测试的分类
1、按方法分
- 黑盒测试
- 白盒测试
- 灰盒测试
2、按阶段分
- 单元测试:测试的是代码块、函数、方法等,一般单元测试由开发自己做
- 集成测试:测试的是接口,灰盒测试偏多
- 系统测试:对整个完整的软件进行测试
- 验收测试:协助领导来验收①α——内测 ②β——公测
①α——内测:公司内部人员测试
②β——公测:内测完成后,邀请一部分真实的用户进来使用,从而发现软件是否有bug,没有再大规模的推向市场
注:一般来说,测试人员能接触到的就是集成测试阶段和系统测试阶段。
3、按方向分(都是在系统测试阶段测试的)
- 功能测试:举例说明什么是功能
- 性能测试
①压力测试:不断地增加压力,从而找到系统的极限
②负载测试:系统在极限工作条件下,最多能持续多久——可能发生内存泄漏/溢出,导致整个软件崩溃 (例如在软件的运行过程中,用户产生的数据在不断地堆积,没有更多地内存存放,超出了容量的范围,就溢出了)
③并发测试:多个用户在同一时间一起作用——例如秒杀
- 安全测试
①渗透测试
②DDOS攻击:流量攻击,占位那种
③跨域攻击:在浏览应用时弹出不知名网址,点进去的瞬间就盗取了该应用的一些信息
④SQL注入:通过SQL语句拼接的方式达到删库等目的
⑤暴力破解:试的,so密码设置复杂一点,且不要开启远程访问权限
- 兼容性测试
①APP:又分为Android测试(测试不同的系统,不同的分辨率,不同的屏幕,不同的品牌)和iOS测试(iOS系统互相兼容且保持一致,一般不用做测试)
②web:谷歌、新的edge、火狐、IE等浏览器
注:测试不可能每款手机都测,查看市场占有率选择合适的手机(百度流量研究院),如果没有手机,可以选择云测平台测试手机APP,例如百度的MTC,testbird等。
- 易用性测试:用户体验测试,原则一般是学习成本越低越好,功能越简洁越好(一般开发都不愿意改的bug)
- 稳定性测试:测试是否能长时间稳定的运行,后端:7*24h,前端3-5h,重点测试的是APP,用工具 自动运行
- UI界面测试:检查界面好不好看,界面风格是否保持一致,界面按钮大小是否保持一致,界面是否和设计图保持一致
- APP专项测试
①弱网测试:测试APP能否在不同的网络下正常运行:2G,3G,4G,5G,WiFi,热点,用工具
②场景交互测试:如不同的APP相互切换,前后台切换,来电话了,来短信了,分屏,微信语音等
③资源争用测试:测试同类型的APP同时工作对资源的争用
④权限测试:测试关闭权限后是否影响其他功能的使用,使用对应的功能,是否提示给权限
⑤离线测试:测试断网后APP是否能使用,有的APP断网就崩溃了
⑥安装、卸载、更新
⑦消息推送:测试APP关闭后是否能收到消息推送,断网后再联网,之前的消息能收到吗
⑧资源监控:APP大小,流量,电量,内存,CPU,太大肯定就不合理了,没人愿意下载这个APP
注:功能测试、性能测试、安全测试是测试人员的三条方向,测试开发也属于功能测试
功能测试并不等于黑盒测试,只不过说功能测试用到的大部分手段都是黑盒测试
按方向来分,主要分为功能测试、性能测试、安全测试三大类,其他的还有一些细小的划分,例如兼容性测试,易用性测试,稳定性测试,UI界面测试等
4、按对象分
- APP测试
- web测试
- 小程序测试
- 接口测试
- 物联网测试
- 车联网测试
- AI测试
- 大数据测试
5、按状态
- 动态测试
- 静态测试
6、其他
- 冒烟测试:测试前的测试,检查软件是否具备可测试性
- 回归测试:检查上一次测试时发现的bug有没有被修改