一、兼容性测试
兼容性测试是什么?
兼容性测试就是验证软件在特定的运行环境中,与特定的软硬件组合是否能正常运行的测试过程。
1.操作系统
不同版本的操作系统默认的权限级别会有所不同,从而导致客户端需要访问或调用系统组件或方法时会出错。同一类操作系统的大版本升级时,需要注意在新的版本或补丁里是否继续兼容老版本的库函数。
常见的操作系统有:
windows:win7、win8、win10、win11
macOS
Linux
android:android8、android9、android10、android11、android12
IOS
2.浏览器
1.虽然我们能通过官方的一些统计数据去收集主流的浏览器和对应的版本,但最好让产品经理明确定义出支持哪些浏览器和对应的版本,因为这也取决于产品的应用人群和具体的业务场景。
2.浏览器兼容性测试主要检查web页面样式和元素的展示效果,以及交互是否会有异常,跟具体的业务逻辑无关。
3.跟前端开放人员多交流,明确哪些样式或元素不是标准的,很有可能会出现兼容性问题,先有针对性地在所有要求支持的浏览器版本上进行验证,再挑选每种浏览器的一个版本去验证所有的标准页面。
4.多记录,多总结,做好统计分析,在后续的测试中,只需针对有改动的、容易出现兼容性问题的元素和样式进行测试。
5.留意IE大版本升级,以及谷歌和火狐的迭代版本更新,阅读更新的版本说明,了解是否有大的改动可能影响到页面的展示,有计划地去执行兼容性测试。
6.常见的浏览器有IE浏览器、Chrome、Firefox、Safari浏览器、360安全浏览器、360极速浏览器、搜狗浏览器、QQ浏览器、百度浏览器、猎豹浏览器。
7.浏览器相关知识:浏览器的内核分为两个部分的,一个是渲染引擎,它负责取得网页的内容(HTML、XML、图像等等)、整理讯息(例如加入 CSS 等),以及计算网页的显示方式,然后会输出至显示器或打印机。JavaScript引擎是一个专门处理JavaScript脚本的虚拟机,最开始渲染引擎和JS引擎并没有区分的很明确,后来 JS 引擎越来越独立,内核就倾向于只指渲染引擎。
8.下面总结一下各常用浏览器所使用的内核,也可通过F12查看请求头信息确认各个浏览器使用的内核:
IE浏览器内核:Trident内核,也是俗称的IE内核;
Chrome浏览器内核:统称为Chromium内核或Chrome内核,以前是Webkit内核,现在是Blink内核;
Firefox浏览器内核:Gecko内核,俗称Firefox内核;
Safari浏览器内核:Webkit内核;
Opera浏览器内核:最初是自己的Presto内核,后来是Webkit,现在是Blink内核;
360浏览器、猎豹浏览器内核:IE+Chrome双内核;
搜狗、遨游、QQ浏览器内核:Trident(兼容模式)+Webkit(高速模式);
百度浏览器、世界之窗内核:IE内核;
2345浏览器内核:以前是IE内核,现在也是IE+Chrome双内核;
9.手机端特有的浏览器兼容性测试
微信客户端:安卓端是QQ浏览器X5内核,该内核为腾讯公司基于开源Webkit优化的浏览器渲染引擎;
IOS端是WKWebview和UIWebView,是IOS内置的浏览器控件。
钉钉客户端:目前查不到使用的浏览器内核。
3.分辨率
同一个页面在不同分辨率下,显示的样式可能会不一样,所以需要进行分辨率的兼容性测试。
可以通过对PC端和手机端分辨率设置不同分辨率进行测试(看到有文章说可以对浏览器进行缩放进行分辨率测试,不知道这个是不是可靠)。
4.网速
待测项目在不同的网络环境(3G/4G/5G/wifi)中能正常的运行测试,可以通过Fiddler、Charles、360插件等软件进行设置限速测试。
5.数据兼容
因为新功能的需要对已有功能升级改造,涉及已有数据的读取和写入而需要进行的验证,以确保数据在新、老版本之间都能正常流转的过程。
测试注意事项:
向前兼容,新版本要能正常且正确地读取和加载老版本生成的数据,如用户的账号信息、订单信息等。
二、功能测试
1.页面跳转,前进,后退,返回(手机端包括网页下部的返回按钮和手机自带返回键),刷新(PC端F5,手机端下拉刷新),强制刷新(Ctrl+F5)
2.数据修改:新增,删除,更新
3.文件操作:上传,下载,文件类型,文件大小
4.底部域名备案信息展示与点击跳转
三、UI测试
1.页面元素展示(包括调整浏览器窗口大小、按F12打开网页代码后调节工具窗口大小)
2.列表展示
3.分页展示(更改分页大小,上下页切换)
4.图片展示
5.输入框
6.搜索框(是否支持模糊查询,查询数据前中后存在空格)
7.交互提示(操作成功提示,操作确认提示,错误提示)
8.视频播放、暂停、音量、音画同步、退出等
9.整体界面测试:是指整个Web应用系统的页面结构设计,是给用户的一个整体感。例如:当用户浏览Web应用系统时是否感到舒适?是否凭直觉就知道要找的信息在什么地方?整个Web应用系统的设计风格是否一致?
四、安全测试
Web应用系统的安全性测试区域主要有:
1.现在的web应用系统基本采用先注册,后登陆的方式。因此,必须测试有效和无效的用户名和密码,要注意到是否大小写敏感,可以试多少次的限制,是否可以不登陆而直接浏览某个页面等。
2.web应用系统是否有超时的限制,也就是说,用户登陆后在一定时间内(例如15分钟)没有点击任何页面,是否需要重新登陆才能正常使用。
3.为了保证web应用系统的安全性,日志文件是至关重要的。需要测试相关信息是否写进了日志文件、是否可追踪。
4.当使用了安全接层(SSL)时,还要测试加密是否正确,检查信息的完整性。
5.服务器端的脚本常常构成安全漏洞,这些漏洞又常常被黑客利用。所以,还要测试没有经过授权,就不能在服务器端放置和编辑脚本的问题。
五、异常场景
1.操作中断:操作中关闭、刷新页面
2.登录超时
六、接口测试
首先接过接口文档,熟悉参数,请求方式,头信息,返回信息的要求,根据不同场景设计拥例,执行用例,提缺陷跟踪直到解决。
测试点:
1.通过性验证,输入数据全部正确,查看返回结果也正确
2.参数组合的情况,例如有一个接口需要传 2 个相关参数才能达到一个目的,那要是把其中一个参数换成其他参数的,又或者说基础上加了一些多余的其他参数看结果。
3.绕过前端验证,抓包改参,举个简单的例子有时候前端做了小数 2 位的限制,而后端却没有。当然最经典的还是订单金额的改动验证
4.异常情况,对参数的类型、格式、大小范围,长度,必传或非必传的检验
5.必要参数的加密情况,加密方式、规则等
6.有的接口可能有并发要求的做一下并发测试(jmeter)
七、性能测试
1.连接速度测试
用户连接到web应用系统的速度根据上网方式的变化而变化,他们或许是电话拨号,或是宽带上网。当下载一个程序时,用户可以等较长的时间,但如果仅仅访问一个页面就不会这样。如果web系统响应时间太长(例如超过5秒钟),用户就会因没有耐心等待而离开。
另外,有些页面有超时的限制,如果响应速度太慢,用户可能还没来得及浏览内容,就需要重新登陆了。而且,连接速度太慢,还可能引起数据丢失,使用户得不到真实的页面。
2.负载测试
负载测试是为了测量web系统在某一负载级别上的性能,以保证Web系统在需求范围内能正常工作。负载级别可以是某个时刻同时访问Web系统的用户数量,也可以是在线数据处理的数量。例如:web应用系统能允许多少个用户同时在线?如果超过了这个数量,会出现什么现象?web应用系统能否处理大量用户对同一个页面的请求?
负载测试应该安排在web系统发布以后,在实际的网络环境中进行测试。因为一个企业内部员工,特别是项目组人员总是有限的,而一个web系统能同时处理的请求数量将远远超出这个限度,所以,只有放在Internet上,接受负载测试,其结果才是正确可信的。
3.压力测试
进行压力测试是指实际破坏一个web应用系统,测试系统的反映。压力测试是测试系统的限制和故障恢复能力,也就是测试web应用系统会不会崩溃,在什么情况下会崩溃。黑客常常提供错误的数据负载,直到web应用系统崩溃,接着当系统重新启动时获得存取权。
压力测试的区域包括表单、登陆和其他信息传输页面等。