软件测试相关知识
一、软件测试的定义
根据软件产品需求,验证软件实际结果和预期结果是否一致,找出bug给开发修复,最终提高软件的质量。
二、软件测试的分类
1、按测试方法分类
黑盒测试:通过软件外部所暴露出来的部分进行测试的方法。
白盒测试:通过检查代码的方式来判断软件的功能是否存在问题的测试方法。
灰盒测试:同时结合白盒和黑盒的手段来进行测试的方法。
2、按测试阶段分类
单元测试:测试开发写的代码块(模块)、函数、方法,一般单元测试由开发自己完成。--------常使用白盒测试。
集成测试:集成是代码块和代码块连接起来的过程。集成测试就是测试不同模块之间连接有没有正确,测试对象是模块间的接口,故也称接口测试。--------灰盒
系统测试:把不同模块都连接起来形成系统(软件雏形),测试对象是整个软件,即对整个完整的软件进行测试,如app、web 测试。
验收测试:软测人员协助领导/甲方验收。验收测试常有两种方式,α测试,即邀请公司内部员工对软件进行用户体验,也称内测;β测试,即邀请一部分外部用户体验,也称公测。
3、按测试方向分类
功能测试:即测试软件的功能,功能测试常使用黑盒测试方法,但功能测试不等同于黑盒测试。
性能测试:对软件性能方面的测试,如软件的反应速度。性能测试可分为压力测试、负载测试、并发测试。
(1)压力测试是对软件提供条件任其发挥,挖掘出软件的极限能力的测试。
(2)负载测试是对软件在极限工作状态下的持续能力的测试,该测试很容易造成内存泄漏(即因运行程序产生的数据不断累积但没有及时释放内存空间,而数据超过内存容量发生数据溢出的现象)。
(3)并发测试是模拟很多用户同时对软件进行操作的影响的测试。
安全测试:对软件安全性的测试。常见渗透测试、跨域攻击、SQL注入、暴力破解、DDoS攻击。
UI界面测试:对APP或web页面进行测试,本质是检查页面好看与否,主要考虑界面风格是否保持一致、界面按钮大小是否保持一致、界面是否和设计图保持一致。
兼容性测试:分为APP兼容性测试和web兼容性测试。
(1)APP测试就是测试同一个APP在不同手机上能不能正常运行。根据操作系统不同还可分为andriodAPP测试和 ios APP测试 . ① andriod APP测试主要考虑不同版本的安卓系统、不同屏幕、不同分辨率、不同品牌的手机上该APP的运行情况。② iOS系统的手机一般不进行兼容性测试。
(2)web测试就是测试软件在不同的浏览器上能不能成功运行。
易用性测试:即用户体验测试。以用户角度出发进行的测试,测试原则:软件学习成本越低越好,功能越简洁越好。
稳定性测试:测试软件能不能长时间稳定的运行。测试前端要求3-5小时一直使用软件是否稳定,测试后端要求7*24小时一直使用软件是否稳定。此项测试常是针对APP的测试。
弱网测试:测试软件在不同类型网络下的表现,一般指app 能不能在不同的网络下正常运行。常见的不同网络:2g,3g,4g,5g,wifi,热点,两种测试方式:①模拟不同网络的网速进行软件测试;②实地找相应的网络环境进行测试。
APP专项测试:针对APP进行的一系列测试。
(1)弱网测试
(2)场景交互测试:针对在不同场景下进行测试,如不同app互相切换、前后台切换、来电话/短信/微信语音/分屏 等等。
(3)资源争用测试:测试同类型的app同时工作会对手机产生什么影响。
(4)权限测试:测试软件权限是否能正常使用,如关闭权限后是否影响其他功能的使用,使用对应的功能是否给予提示权限。
(5)离线测试:断开网络,看一下有些功能还能不能使用。
(6)安装/卸载/更新
(7)消息推送:由手机厂家提供,如app关闭后是否还能收到消息推送;断网后再联网,之前的消息推送是否还能收到,并且消息推送显示的时间是否存在问题。
(8)资源监控:对APP对手机资源使用情况的测试。app的大小(越小越好)、流量/电量(平均每小时消耗多少)、内存、cpu。
4、按测试对象分类
app测试、web测试、小程序测试、接口测试、AI测试 、大数据测试
物联网测试:物联网应用:智慧城市、智能家居、智能语音等。嵌入式测试归入物联网测试。
车联网测试:对汽车的车联网系统进行测试。
5、按状态分类
动态测试:通过运行软件进行测试,如黑盒测试。
静态测试:不运行软件进行测试,如白盒测试。
6、其他分类
冒烟测试:测试第一步,测试前的测试,检查软件是否具有可测试性。
回归测试:对开发修改后的软件进行测试,主要检查开发是否已经修改上一次测试发现的bug。