最全APP测试面试题汇总(基础篇、进阶篇),2024年最新2024软件测试进阶新篇章

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

一般用Fiddler,主要用来做app抓包使用,先在Fiddler客户端做好各项配置,端口设置为8888;然后在手机上设置代理,就可以抓包,主要看的是服务器返回的值、还能够修改传入参数、传出的参数、模拟网络延时,构造不同场景。

8、APP日志如何抓取?

  • 可以使用adb命令:adb logcat | find “com.sankuai.meituan” >d:\test.txt

  • 也可以用ddms抓取,手机连上电脑,打开ddms工具;

  • 或者在Android Studio开发工具中,打开DDMS;

9、常用的adb命令有哪些?

1.查看帮助手册列出所有的选项说明及子命令:

adb help

  1. 获取设备列表及设备状态:

adb devices

3.安装应用:adb install 路径\xx.apk, 安装应用;adb install -r 重新安装。

adb install

adb install -r

  1. 获取设备的状态,设备的状态有 device , offline , unknown3种,其中device:设备正常连接,offline:连接出现异常,设备无响应,unknown:没有连接设备。

adb get-state

5.卸载应用:adb uninstall <包名>, 后面的参数是应用的包名,区别于 apk 文件名。

adb uninstall

6.将 Android 设备上的文件或者文件夹复制到电脑本地:adb pull <远程路径> <本地路径>, 如复制 Sdcard 下的 pull.txt 文件到 D 盘:adb pull sdcard/pull.txt d:\,重命名:adb pull sdcard/pull.txt d:\rename.txt。

adb pull

7.推送本地文件至 Android 设备:adb push <本地路径> <远程路径>, 如推送 D 盘下的 ITester.txt 至 Sdcard:adb push d:\ITester.txt sdcard/ (注意sdcard 后面的斜杠不能少)。

adb push

8.结束和启动adb服务:adb kill-server /adb start-server , 结束 adb 服务/启动 adb 服务,通常两个命令一起用,设备状态异常时使用 kill-server,运行 start-server 进行重启服务。

adb kill-server

adb start-server

9.打印及清除系统日志:adb logcat , 打印 Android 的系统日志 ;adb logcat -c,清除日志。

adb logcat

adb logcat -c

10.查找包名/活动名

adb logcat | findstr START

10、adb三个组件是指?

ADB作为一个客户端/服务器架构的命令行工具,主要由3个部分组成。

  • adb clent(客户端):可以通过它对Android应用进行安装、卸载及调试。

  • adb service(服务器):管理客户端到Android设备上abd后台进程的连接,负责管理client和damon进行通信。

  • adb daemon(守护进程):运行在Android设备上的adb后台进程。

二、进阶篇

1、介绍一下Android四大组件?

Android四大基本组件:Activity、BroadcastReceiver广播接收器、ContentProvider内容提供者、Service服务。

  • Activity:应用程序中,一个Activity就相当于手机屏幕,它是一种可以包含用户界面的组件,主要用于和用户进行交互。一个应用程序可以包含许多活动,比如事件的点击,一般都会触发一个新的Activity。

  • BroadcastReceiver广播接收器:应用可以使用它对外部事件进行过滤只对感兴趣的外部事件(如当电话呼入时,或者数据网络可用时)进行接收并做出响应。广播接收器没有用户界面。然而,它们可以启动一个activity或serice 来响应它们收到的信息,或者用NotificationManager来通知用户。通知可以用很多种方式来吸引用户的注意力──闪动背灯、震动、播放声音等。一般来说是在状态栏上放一个持久的图标,用户可以打开它并获取消息。

  • ContentProvider内容提供者:内容提供者主要用于在不同应用程序之间实现数据共享的功能,它提供了一套完整的机制,允许一个程序访问另一个程序中的数据,同时还能保证被访问数据的安全性。只有需要在多个应用程序间共享数据时才需要内容提供者。例如:通讯录数据被多个应用程序使用,且必须存储在一个内容提供者中。它的好处:统一数据访问方式。

Service服务:是Android中实现程序后台运行的解决方案,它非常适合去执行那些不需要和用户交互而且还要长期运行的任务(一边打电话,后台挂着QQ)。服务的运行不依赖于任何用户界面,即使程序被切换到后台,或者用户打开了另一个应用程序,服务仍然能够保持正常运行,不过服务并不是运行在一个独立的进程当中,而是依赖于创建服务时所在的应用程序进程。当某个应用程序进程被杀掉后,所有依赖于该进程的服务也会停止运行(正在听音乐,然后把音乐程序退出)。

2、Activity生命周期?

生命周期即活动从开始到结束所经历的各种状态,从一个状态到另一个状态的转变,从无到有再到无,Activity本质上有四种状态:

  • 运行(Active/Running):Activity处于活动状态,此时Activity处于栈顶,是可见状态,可以与用户进行交互。

  • 暂停(Paused):当Activity失去焦点时,或被一个新的非全面屏的Activity,或被一个透明的Activity放置在栈顶时,Activity就转化为Paused状态。此刻并不会被销毁,只是失去了与用户交互的能力,其所有的状态信息及其成员变量都还在,只有在系统内存紧张的情况下,才有可能被系统回收掉。

  • 停止(Stopped):当Activity被系统完全覆盖时,被覆盖的Activity就会进入Stopped状态,此时已不在可见,但是资源还是没有被收回。

  • 系统回收(Killed):当Activity被系统回收掉,Activity就处于Killed状态。

如果一个活动在处于停止或者暂停的状态下,系统内存缺乏时会将其结束(finish)或者杀死(kill)。这种非正常情况下,系统在杀死或者结束之前会调用onSaveInstance()方法来保存信息,同时,当Activity被移动到前台时,重新启动该Activity并调用onRestoreInstance()方法加载保留的信息,以保持原有的状态。

在上面的四中常有的状态之间,还有着其他的生命周期来作为不同状态之间的过渡,用于在不同的状态之间进行转换。

3、请介绍一下,Android SDK中自带的几个工具?

有如下几个工具:

  • ddms:Dalvik Debug Monitor Service,是 Android 开发环境中的Dalvik[虚拟机]调试监控服务。

  • monkey:Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。

  • uiautomator:UIAutomator是Eclipse自带的用于UI自动化测试工具,可仿真APP上的单击、滑动、输入文本等操作。

  • monitor:同uiautomator

  • adb:ADB的全称为Android Debug Bridge,就是起到调试桥的作用。通过ADB我们可以在Eclipse中方面通过DDMS来调试Android程序,就是debug工具。

4、你所了解的APP测试工具?

常用的APP测试工具如下,,查看对应工具地址。

APP自动化测试工具:

  • Appium

  • Airtest

  • uiautomator2(python)

APP稳定性测试工具:

  • Monkey

  • MonkeyRunner

  • Maxim

  • UICrawler

APP性能测试工具:

  • GT

  • Perfdog

  • SoloPi

APP弱网测试&抓包工具:

  • QNET

  • Fiddler

  • Charles

APP兼容性测试工具:

  • TestIn

  • 腾讯优测

  • 百度MTC

  • 阿里MQC

APP安全测试工具:

  • OWASP ZAP

  • Drozer

  • MobSF

  • QARK

5、介绍一下冷启动、暖启动、热启动、首屏启动?

APP启动会发生多个事件,测试人员需要知道整个环节是否出现问题,需要了解到具体是哪个环节存在问题:

  • 冷启动:当进程不存在的时候,从进程创建开始到界面的展示的过程;

  • 暖启动:有一部分资源已经存在,进程存在,相对于热启动要消耗更多资源。当用户退出应用程序时,进程还会存在,暖启动相较于冷启动只是少了进程的创建;

  • 热启动:大部分资源都在,只是应用之间的切换;

  • 首屏启动:第一屏加载完整;

标准:

  • 冷启动:需要5秒甚至更长;

  • 暖启动:需要2秒甚至更长;

  • 热启动:需要1.5秒甚至更长;

整个启动过程可以用adb工具进行分析,利用adb logcat获取启动数据,或者录屏,使用ffmpeg拆帧分析。

首先定义一个变量,这个变量填写用到的包名。

清除缓存数据:

停止进程:

通过以上命令就做好了冷启动的环境,下面启动app并获取数据。启动App

  • -S表示启动之前先停止应用进程

  • -W是表示等待对应的activity启动完成

获取数据:

获取的时间如下:

6、谈谈对冷启动的理解?

应用的启动可以分为冷启动,热启动和温启动,而启动最慢、耗时最长的就是冷启动。

冷启动开始时,系统会依次执行三个任务去启动APP:

  • 加载和启动应用程序;

  • APP启动后,立即创建一个空白的启动Window;

  • 创建APP的进程;

在这三个任务执行后,系统创建了应用进程,那么应用进程接下来会执行下一步:

  • 创建APP对象;

  • 开启一个主线程;

  • 创建启动页的Activity;

  • 加载View;

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

tivity;

  • 加载View;

[外链图片转存中…(img-QOz7mzNF-1715382582974)]
[外链图片转存中…(img-LpQCv0Db-1715382582975)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值