软件测试的定义:
软件的预期结果与实际结果做对比
软件测试的分类
![07cf6cae1d1652f195e3e375970d5137.png](https://i-blog.csdnimg.cn/blog_migrate/b50c7c05f6484296e9d04fe855a1dd83.jpeg)
1、软件测试按测试方法分类:
黑盒测试
白盒测试
灰盒测试
(1)黑盒测试:着眼于程序或软件的外部结构,不考虑内部的逻辑结构,主要针对软件的界面和软件功能进行测试。
(2)白盒测试:从程序或软件的内部逻辑入手得到测试数据,可理解为查看程序代码;
(3)灰盒测试:基于黑盒测试与白盒测试之间,不仅关注软件输入输出的正确性而且也要关注程序内部的情况;
2、软件测试按测试阶段分类:
单元测试
集成测试
系统测试
验收测试;
(1)单元测试:测试开发所写的代码块、函数、方法,一般由开发自己完成;
(2)集成测试:测各个单元集成时的接口,又叫接口测试,主要是用灰盒测试的测试方法;
(3)系统测试:对完整的软件进行测试;
(4)验收测试:是部署软件之前的最后一个测试操作,又称交付测试,目的是确保软件已经准备就绪,而验收测试又分为α测试(内侧)和β测试(公测);
3、软件测试按测试方向分类:
功能测试、性能测试、安全测试、UI界面测试、兼容性测试、易用性测试、稳定性测试以及APP专项测试;
(1)功能测试:对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。
(2)性能测试:性能测试又分为压力测试、负载测试以及并发测试;压力测试是测试软件运行的极限值,负载测试是测试软件在极限压力状态下的持续时间,而并发测试是测试软件在多用户并发访问同一个应用、模块、数据时是否产生隐藏的并发问题,如内存泄漏、线程锁、资源争用问题,几乎所有的性能测试都会涉及并发测试。
(3)安全测试:主要目的是测试软件的安全隐患,包括防黑客、渗透测试、DDOS攻击、跨域攻击、SQL注入、暴力破解等手段;
(4)UI界面测试:主要任务是检查界面好不好看、界面风格是否保持一致、界面的按钮大小是否保持一致、界面是否和设计图保持一致;
(5)兼容性测试:分为APP和WEB的兼容性测试;APP兼容性测试又分为Andirod和IOS的兼容性测试;Andirod的兼容性测试要测试软件在不同的系统、不同的屏幕、不同的分辨率以及不同的品牌下是否正常运行(主要考虑市场占有率高的手机去覆盖,可通过MTC等各种云测平台测试);IOS一般不存在兼容性的问题,所以一般不做IOS的兼容性测试,而WEB的兼容性测试就是测试软件在各大浏览器上能否正常运行(包括但不限于谷歌、Edge、火狐、IE、360、QQ等浏览器);
(6)易用性测试:即用户体验测试,测试软件的学习成本是否低,功能是否简洁;
(7)稳定性测试:后端起码7*24h稳定运行,前端3-5h稳定运行(重点是测试APP);
(8)APP专项测试:
包括弱网测试
场景交互测试
资源争用测试
权限测试
离线测试
安装,卸载,更新测试
消息推送,资源监控等;
①弱网测试:软件能不能在不同的网络下正常运行,包括2G/3G/4G/5G/WIFI/热点;
②场景交互测试:测试软件在不同场景下能否正常使用;例如不同APP互相切换、前后台切换、来电话、来短信、微信语音、分屏等等场景;
③资源争用测试:测试同类型的APP同时工作时软件的情况;
④权限测试:测试关闭权限后,是否影响其他功能的使用或者使用对应的功能是否提示给权限;
⑤离线测试:测试断开网络后影响的功能;
⑥安装、卸载、更新测试:测试软件能否正常的安装、卸载、更新;
⑦消息推送:关闭打开网络后之前的消息推送还能否收到;APP关闭后还能否收到消息推送;
⑧资源监控:测试包括APP的大小、对流量、电量、内存、CPU的消耗等;
4、软件测试按测试对象分类:
- APP测试
- WEB测试
- 小程序测试
- 接口测试
- 物联网测试
- 车联网测试
- AI测试
- 大数据测试
- 游戏测试
5、软件测试按测试状态分类:
静态测试
动态测试
6其他:
冒烟测试
回归测试
(1)冒烟测试:测试之前的测试,检查软件是否具备可测试性;
(2)回归测试:检查上一次测试时发现的问题有没有被修改;