2024软件测试面试题-基础2(APP+网络)

1.APP测试与小程序测试的区别?

仅仅从功能测试的层面上来讲的话,在流程和功能测试上是没有区别的
(1)在性能方面,小程序页面可能只会关注响应时间,而APP则还需要关心流量、电量、cpu等
(2)兼容性不同:小程序依赖微信版本,而APP则必须依赖手机硬件,不仅要看分辨率、屏幕尺寸,还要看系统设备型号
(3)下载安装不同:小程序无需用户更新客户端,清除时直接删除程序就行,APP必须测试安装、卸载、更新,包括安装时的中断、弱网、安装后删除安装文件等
(4)获取渠道不同:小程序通过扫描二维码,搜索小程序名和用户分享来获取,APP主要通过应用市场下载而获得
(5)权限上的区别:小程序需要验证微信授权,同一微信号不同手机号登陆查看数据显示情况,APP则需要考虑是否可以访问手机通讯录、相册、相机等权限

2.APP测试与web测试的区别?

在功能和业务流程上基本无区别,但在系统测试和细节上有所不同:
(1)性能关注不同:web测试更关注系统响应时间,而APP则还需要关心流量、电量、CPU、GPU等
(2)兼容性不同:web测试基于浏览器,需要考虑的是浏览器的版本和电脑硬件、系统方面的兼容,而APP则依赖手机硬件,需要考虑分辨率、屏幕尺寸、系统设备型号等
(3)下载安装不同:web端可随服务器更新而更新,并可保证每个用户使用的版本一致,无需用户更新客户端,APP必须测试安装、卸载、更新,包括安装时的中断、弱网、安装后删除安装文件等
(4)获取渠道不同:web端通过访问特定的url可直接使用,APP主要通过应用市场下载而获得
(5)专项测试:app多了一些专项测试:交叉事件测试(中断,来电,短信,关机,重启)、弱网测试(4g/5g/wifi)和界面操作(手势、横竖屏切换、前后台切换等)

3.App 测试中 iOS 和 Android 有何区别?

(1)操作系统:
Android操作系统版本碎片化严重,不同设备上的Android版本也存在差异。测试Android应用程序时,只需考虑主流设备和主流操作系统版本即可。
iOS操作系统较少且不能降级,只需考虑最新系统及旧版本的兼容即可
(2)设备适配:
Android厂家及设备数量众多,硬件配置差异较大,分辨率不统一,测试时需要覆盖不同品牌、不同型号和不同屏幕尺寸的设备,以确保应用在各类设备上都能够正常运行。
iOS只需要覆盖主流设备,如iPhone和iPad。
(3)测试工具:
使用Android模拟器测试、使用ADB工具进行设备管理和调试
使用iOS模拟器测试、使用Instruments工具进行性能和内存分析
(4)行为操作:导航方式、单条item操作、排版、实体键等都有明显操作差别

4.当APP闪退或ANR,如何定位问题?

大概原因分析:
(1)程序:
程序本身有bug(需要查看日志文件,寻找具体异常和错误信息)
APP版本太低、APP新版本正在调试中,需要升级至最新稳定版本
(2)内存:APP所需内存超出设备限制,APP跑不起来导致crash
(3)设备兼容:由于设备多样性,APP有些应用程序可能不兼容当前设备的系统
(4)网络因素:可能是网速欠佳或不同网络切换,无法达到APP所需的快速响应时间,导致 crash。
例:Android系统APP闪退定位问题:
① 手机连接电脑,并打开手机开发者模式
② 打开命令行工具使用adb logcat命令查看实时的日志输出,若想下载下来方便查看,使用adb logcat -v time >e:\logcat.txt即可
③ 关闭adb窗口或使用ctrl+c停止adb命令,避免一直往文件写入日志
④ 搜索FATAL关键字查看报错信息,截图提交缺陷

5.APP页面白屏了怎么办?

(1)长时间使用手机后出现白屏可以先重启APP试试,不行重启手机
(2)有可能是个别APP与手机系统不兼容,尝试更换其他设备试试
(3)多个应用程序同时在后台运行时占用过多内存,也可能导致运行出现异常,尝试清理内存试试
(4)网络断开或不稳定导致页面无法加载也可能白屏
(5)APP应用程序本身有bug

6.APP测试上的 H5 和原生页面怎么区分?

(1)断开网络,显示404或错误页面的(H5),正常显示的东西(原生页面)
(2)打开手机开发者选项,开启显示布局边界,进入应用,看到页面各个控件的布局(原生页面),显示整个页面的边界(H5)------针对Android
(3)打开该页面时,发现顶部或底部有加载标识或导航栏出现x(H5)
(4)下拉页面,显示页面提供方的URL(H5)
(5)进入应用后,长按应用页面文字,如果文字选择、复制粘贴功能等标记(H5)—有些原生APP也开放了复制粘贴,所以不完全靠谱

7.App测试与H5测试的区别是什么?

两者功能和业务流程上测试基本一致
(1)测试设备不同:
APP测试分为Android和iOS两个端,Android测试需要在Android手机上安装apk包;iOS测试需要提供手机的UDID通过iTunes安装ipa包;
H5即HTML5页面,在pc或手机浏览器上直接访问url即可。
(2)测试系统不同:
APP测试需要兼容新旧版本,应为不同的用户下载的客户端版本可能不一致;
H5无客户端,直接访问url测试即可,应为它随服务器的更新实时更新
(3)兼容性不同:
APP测试依赖手机硬件,需要考虑不同端、分辨率、屏幕尺寸、系统设备型号等
H5测试需要考虑的是不同浏览器的版本、系统的兼容等
(4)专项测试:
APP多了一些专项测试:交叉事件测试(中断,来电,短信,关机,重启)、弱网测试(4g/5g/wifi)和界面操作(手势、横竖屏切换、前后台切换等)

8.如何测试App的push推送呢?

测试点:
(1)推送类型:什么场景下需要推送,例:下单、发货、退款等
(2)推送对象:push推送用户是否准确,例:全部推送、部分推送还是指定用户推送
(3)跳转:多条推送展示是否正确,push推送消息时点击跳转是否正常
(4)推送内容:确认用户收到的和推送的是否一致
(5)登录:未登录能否收到push推送消息,长时间未登录再次登录,能否收到历史推送消息
(6)权限:用户设置了禁止推送,是否能提示用户开通推送
(7)其他:APP分别在前台、后台运行时能否收到push推送消息,开关机时能否收到推送

9.什么是冷启动、热启动、首屏启动?

APP启动方式主要分为冷启动、暖启动、热启动和首屏启动。
(1)冷启动:当APP启动时,系统后台没有该APP的进程(即APP为首次启动或已被完全杀死),这时系统会重新创建一个新的进程分配给该APP,它启动最慢、耗时最长。
(2)热启动:此程序仍然留在内存中,只是被系统从后台带到前台,可避免重复对像初始化和避免重复加载和渲染。例我们按了Home键或其他情况APP被切换到后台,再次启动APP
(3)暖启动:APP的进程依然在,只是应用之间的切换,与热启动的区别在于,它启动时会调用onCreate方法,相当于是介于冷启动和热启动之间的情况。例如:连续按返回退出了app,然后重新启动app;
(4)首屏启动:首次启动其实是冷启动的一种特殊情况,首次启动会做一些系统初始化工作,如缓存目录的生产、数据库的建立等,消耗时间较长。

10.你在测试过程中遇到过哪些问题?

除了具体的测试缺陷还有其他方面的问题:
(1)需求不明确:需求说明粗糙模糊,特别在一些边界上,后续需求若有变更不能及时做到记录及通知,导致各组人员信息不对称
(2)工作进度:开发人员完成进度不同,挤压测试时间,导致手中的测试任务无法完整落实
(3)测试环境:测试环境中的数据,不能实现和生产环境中数据的同步,测试中的有些异常或错误,多是由测试服务器配置不完善引起
(4)测试人员:项目参与测试人员较少,团队协作能力差,对问题的规范化考量欠缺等,个人思维都会对测试的过程和结果造成一定的影响
(5)测试质量:开发人员能力不足,或项目时间紧张导致开发不仔细、未自测,造成提测质量较差,产生的缺陷较多,需要大量的时间去反复测试
(6)功能反复:一些迭代系统提测后,上一版本已完善的功能,新版本出现功能异常

11.搭建过软件测试环境吗 说下部署流程是什么?

测试环境包括硬件(服务器、客户端)、软件(操作系统、数据库)、网络系统、数据准备、测试工具等,典型的是Linux+Tomcat+Mysql+jdk,有时候其实环境都是现成的,只需要执行第5步就行了
(1)安装服务器系统Linux
(2)安装数据库服务Mysql
(3)安装通过http能够访问到服务器的外部服务,安装Tomcat(JAVA需要)
(4)安装语言环境jdk(JAVA需要)—根据项目需要
(5)安装项目文件包,一般是开发编辑好的项目代码包,我们把他放到服务器指定文件里,就可以运行起来了

12.在浏览器中输入一个网页会发生什么?

(1)浏览器首先要解析出域名,查找ip地址
(2)找到对应ip后,与服务器建立tcp连接
(3)向服务器发送请求
(4)服务器接收请求后返回响应数据
(5)浏览器收到服务器返回的数据以后,断开tcp连接
(6)浏览器进行渲染解析显示

13.项目页面无法访问,如何定位问题?

(1)先看一下这个网页域名是否可以正常解析,避免域名解析错误
(2)尝试ping远程服务器的IP地址,以检测到服务器的网络连接是否正常,如果异常,用Traceroute也定位具体问题
(3)非网络问题,去后台服务器查看服务进程、数据库服务是否开启
(4)查看操作日志

14.局域网中两台电脑互ping 不通,可能原因有哪些?

无法进行正常通信的原因有:
(1)人为问题:地址Ping错了,未检查两台电脑的网线或wifi连接是否正常
(2)域名解析:Ping命令使用的不是地址而是主机名,可能存在主机名解析问题
(3)防火墙:防火墙可能会阻止某些数据包通过,挡住了ping请求,检查两台电脑的防火墙设置
(4)其他:交换机坏了、网线损坏等

15.说一下 TCP 协议的三次握手过程?

第一次握手:客户端发送一个syn包(seq=x)到服务器,并进入SYN_SEND状态,等待服务器确认
注:标志位为 SYN,表示请求建立连接;序号为 Seq = x(x 一般取随机数)
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(seq=y),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
三次握手完成后,客户端与服务器才正式开始传送数据。理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP 连接都会一直保持。

16.TCP 协议的三次握手为何不是两次?不是四次?

不是两次原因:
(1)三次才能让双方均确认自己和对方的发送和接收功能正常
(2)需要发送方确认,防止已过期的连接请求报文又突然传送到服务器,因而产生错误和资源浪费
(3)告知对方自己的初始序号值,并确认收到对方的初始序号值,才能保证传输通道是可靠的
不是四次原因:
三次握手已经可以确认自己和对方的发送接收功能正常,能保住传输通道可靠,因此不需要第四次握手了

17.说一下 TCP 协议的 4 次挥手过程?

第一次挥手:主动关闭方发送一个FIN包,用来关闭主动方到被动关闭方的数据传送,也就是主动关闭方告诉被动关闭方:我已经不会再给你发数据了(当然,在fin包之前发送出去的数据,如果没有收到对应的ack确认报文,主动关闭方依然会重发这些数据),但此时主动关闭方还可以接受数据。
第二次挥手:被动关闭方收到FIN包后,发送一个ACK给主动关闭方,即回复主动关闭方已收到关闭通知。
第三次挥手:被动关闭方连续又发送一个FIN包给主动关闭方,用来关闭被动关闭方到主动关闭方的数据传送,即通知主动关闭方,不再向其传输数据。
第四次挥手:主动关闭方收到FIN包后,发送一个ACK包给被动关闭方,完成四次挥手。

18.TCP 协议和 UDP 协议的区别?

(1)连接:
TCP是一种面向连接的协议,通过三次握手建立可靠的连接
UDP是一种无连接的协议,数据以数据报的形式独立发送
(2)可靠性:
TCP通过三次握手建立连接,重传机制和确认机制避免数据丢失或损坏,确保数据的可靠性
UDP数据以数据报的形式独立发送,发送端将数据打包成UDP数据报并通过IP进行传输,接收端接收到数据报后直接提取数据,可靠性较低
(3)传输速度:
TCP要求建立连接和使用确认重传机制,还使用拥塞控制和流量控制机制来保证网络的稳定性,传输速度相对较慢
UDP无需建立连接和不提供可靠性保证,因此传输速度较快
(4)应用场景:
TCP适用于对数据完整性要求高的应用场景,例:网页浏览、文件传输、邮件传输、远程登录、数据库访问等
UDP适用于实时性要求较高的应用场景,例:实时通信、DNS解析、广播和多播传输等

19.b/s和c/s架构有什么区别?

(1)安装与维护:
C/S架构,即Client/Server(客户端/服务器)架构。通过将任务合理分配到客户端和服务器,降低了系统的通讯开销,需要安装客户端才可使用。
B/S架构,即Brower/Server(浏览器/服务器)架构,B/S系统统一了客户端,无需特殊安装,拥有Web浏览器即可;它将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。
(2)网络:
C/S是建立在局域网的基础上的,小范围的网络环境
B/S是建立在广域网的基础上的,适应范围强,通常有操作系统和浏览器就行
(3)安全性:
C/S一般面向相对固定的用户群,对信息安全的控制能力很强;
B/S面向不可知的用户群,对安全的控制能力相对弱。

  • 39
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值