软件测试的分类

什么是软件测试:预期结果和实际结果做对比


软件测试的分类

方法分类

黑盒测试:把程序比作是遥控器,不用管内部结构,只测试遥控器是否能正常使用

白盒测试:把遥控器拆开,直接检查内部结构(查看代码)

灰盒测试:既测功能也检查代码


方向分类

功能测试:用黑盒,白盒,灰盒去测试软件的功能


性能测试:测试在不同的情况下,软件响应的时间

性能测试包含:

压力测试:最多能支持多少人同时操作

负载测试:发现软件在用户使用数达上线时,能坚持正常工作多长时间

并发测试:用户同时使用同一功能时是否会出错(例如秒杀活动)


安全测试:防止黑客攻击我们的系统(目的:不让黑客攻击成功)

安全测试包含:

渗透测试:防止黑客渐进的并且逐步深入的过程

流量攻击:大数据,大流量来压垮网络设备和服务器,或有意制造大量无法完成的不完全请求来快速耗尽服务器资源

SQL注入:通过把SQL命令输入到web表单提交或输入域名,页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令

跨域攻击:利用网站程序对用户输入过滤不足(恶意链接盗取token)


兼容性测试

web:在不同的浏览器上表现是否正常(谷歌,火狐,edge,ie,QQ,safeir,opra,夸克),按照市场份额,从高到低的进行测试

app:ios-在不同的苹果手机上测试使用

andriod-在不同的安卓设备上测试使用;按照当前市场所占份额进行选择性的测试;选取不同的安卓版本,系统版本,屏幕分辨率,屏幕形状综合考虑进行选择进行测试;公司提供部分型号测试用,覆盖度不够时找同事众筹;使用云测试平台进行测试



ui测试:检查界面好不好看(风格统一,布局合理,配色合理)


易用性测试:好不好用(操作步骤越少越好,学习成本越低越好)


稳定性测试:长时间运行使用看会不会出问题


APP专项测试

弱网测试:模拟软件在不同的网络下的表现(2/3/4/5/WiFi/热点/飞行模式;不同的网络本质区别就是网速不同,所以可以通过软件来模拟)

权限测试:权限不给的时候,是否还能正常的使用其他功能

安装,卸载,更新测试:是否能成功安装卸载更新(更新只能跟新到高版本,如要安装低版本应先卸载高版本)

场景交互测试:来电话了,来短信了,听歌,分屏使用,微信语音,前后台切换,不同的应用切换,单手模式……

资源争用测试:例如正在微信通话,又打开了音乐播放器,这时喇叭应该由谁用(调用优先级)

消息推送测试:消息推送标准的都是消息服务器在推送,和软件无关;消息推送的顺序(断网重新联网后,消息推送是否按顺序显示)

资源监控:内存,cpu,流量,电量(求平均值),硬盘

兼容性测试

易用性测试

稳定性测试

ui测试



阶段分类

单元测试:函数,方法,类等等;使用白盒测试方法,直接查看代码(一般单元测试是开发自己做)


集成测试:测试不同的模块和模块之间是否正确的连接(测试接口)


系统测试:测试软件的整个整体(功能,安全,性能……)


验收测试:甲方或者客户来验收这个软件是不是他要的软件(验收测试不是测试做的,只是协助别人验收)

验收测试包含:公测,内测


对象分类

APP测试;WEB测试;物联网测试;车联网测试;大数据测试;AI测试;小程序测试……


状态分类

动态测试

静态测试


其他分类

回归测试:检查之前提交给开发的bug有没有修改完成


冒烟测试:测试前的测试(检查软件是否具备可测试性)


埋点测试:例如写段代码,点击这个按钮操作成功则给出提示,不成功不提示;一般通过打日志来实现


MOCK/打桩测试:提前写脚本执行,等开发写完代码再替换进去;一般做自动化测试才会用到

你可能感兴趣的:(软件测试的分类)