ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【吊打面试官系列】APP测试常见面试题解析

2021-07-16 12:32:10  阅读:152  来源: 互联网

标签:web 面试题 兼容性 App 面试官 吊打 测试 软件 安装


App测试

1、什么是手机测试?什么是手机软件测试?

手机测试:指对手机硬件、软件和结构等多方面的测试。

手机软件测试:就是对手机上的软件App进行测试的一个过程,他是符合多种网络,不同系统不同分辨率下发现软件缺陷,保证并提高软件质量的过程。

2、什么是测试环境?测试环境搭建时遵循的原则是什么?

测试环境就是软件运行的平台,即软件、硬件和网络三种环境以及准备的数据和测试工具的合集,也就是说:测试环境=软件+硬件+网络

  1. 真实:尽量模拟用户的真实使用环境。
  2. 干净:测试环境中尽量不要安装与被测软件无关的软件。
  3. 无毒:测试工作应该确保在无毒的环境中进行。
  4. 独立:测试环境与开发环境相互独立。

 

 

3、测试环境与正式环境的区别是什么?

测试环境是指测试人员利用一些工具及数据所模拟出的、接近真实用户使用环境的环境。

正式环境是把软件给到用户进行使用,或者用户验收等。

4、UI测试的七要素是什么?

符合标准和规范,直观性,一致性,灵活性,舒适性,正确性,实用性

5、安装测试怎么测试?

正常安装:

1、软件在不同操作系统下安装是否正常。

2、软件安装后的是否能够正常运行,安装后的文件夹及文件是否写到了指定的目录里。

3、软件安装过程是否可以取消,点击取消后,写入的文件是否如概要设计说明处理

4、软件安装各个选项的组合是否符合概要设计说明

异常安装:

1、软件安装过程中意外情况的处理是否符合需求(如死机,重启,断电)

2、安装空间不足时是否有相应提示

3、对于需要通过网络验证之类的安装,在断网情况下尝试一下

其它情况:

1、软件安装向导的UI测试

2、对安装手册进行测试,依照安装手册是否能顺利安装

3、安装后没有生成多余的目录结构和文件 

6、Web测试和App测试有什么异同点?

相同点:

1:流程、测试方法、测试理论都是一样

2:包含功能测试、兼容性测试、性能测试、安全测试

不同点:

1:架构不一样,web测试是B/S架构,App测试是C/S架构

2:环境不一样,web测试是比较稳定和单一的,网络环境比较稳定和单一,App测试比较多变,网络环境:2G/3G/4G/WIFI/5G

3:部分测试内容不一样,web兼容性测试主要考虑平台、浏览器、分辨率,App兼容性测试系统、分辨率、尺寸、品牌。App测试有电量、流量、弱网、内存泄露、外网场景等测试策略,web没有这些。

4:测试的工具不一样,web自动化selenium,App自动化Appium

7、安装测试怎么测试?

正常安装:

1、软件在不同操作系统下安装是否正常。

2、软件安装后的是否能够正常运行,安装后的文件夹及文件是否写到了指定的目录里。

3、软件安装过程是否可以取消,点击取消后,写入的文件是否如概要设计说明处理

4、软件安装各个选项的组合是否符合概要设计说明

异常安装:

1、软件安装过程中意外情况的处理是否符合需求(如死机,重启,断电)

2、安装空间不足时是否有相应提示

3、对于需要通过网络验证之类的安装,在断网情况下尝试一下

其它情况:

1、软件安装向导的UI测试

2、对安装手册进行测试,依照安装手册是否能顺利安装

3、安装后没有生成多余的目录结构和文件

8、卸载测试怎么测试?

正常情况:

1、直接删除安装文件夹卸载是否有提示信息。

2、测试系统直接卸载程序是否有提示信息。

  3、测试卸载后文件是否全部删除所有的安装文件夹。

  4、卸载是否支持取消功能,单击取消后软件卸载的情况 。

5、系统直接卸载UI测试,是否有卸载状态进度条提示 。

异常情况:

  1. 卸载过程中出现的意外情况的测试(如死机、断电、重启)。

9、App更新怎么测试?

正常更新

1、保证数字签名一致,升级前后的应用数字签名要一致

2、保证升级后应用可以正常使用

3、在线跨版本升级是否正常

4、升级界面的UI测试

5、不同版本间的升级测试

异常更新状态:

  1. 升级安装意外情况的测试(如死机、断电、重启)

10、App兼容性测试如何测?

我是这样想的:

  1. 可以从不同手机屏幕分辨率来测试兼容性,如1920*1080或者2048*1080等
  2. 可以从不同操作系统来测试兼容性,如IOS或者安卓等
  3. 可以从不同手机品牌(厂家)来测试兼容性,如华为、苹果、小米等
  4. 可以从不同手机尺寸来测试兼容性,如5寸、6寸等

11、什么是兼容性测试?

主要是检查软件在不同的软\硬件平台上是否可以正常的运行,即软件可移植性。

12、c/s架构兼容性测试怎么测?

1、向前兼容和向后兼容。向前兼容是指可以使用软件的未来版本,向后兼容是指可以使用软件的以前版本。

2、不同版本之间的兼容。实现测试平台和应用软件多个版本之间能够正常工作。

3、数据共享兼容。数据共享兼容是指要在应用程序之间共享数据,要求支持并遵守公开的标准。

4.数据格式兼容 。因为新功能的需要或者是已有功能的升级改造,涉及到已有数据的读取和写入。

13、什么是配置测试?兼容性和配置测试的区别是什么?

    配置软件测试是保证软件在其相关的硬件上能够正常运行,而兼容性测试主要是测试软件能否与不同的软件正确协作。

区别:

配置测试的核心内容就是使用各种硬件来测试软件的运行情况,一般包括:

(1)软件在不同的主机上的运行情况,例如Dell和Apple;

(2)软件在不同的组件上的运行情况,例如开发的拨号程序要测试在不同厂商生产的Modem上的运行情况;

(3)不同的外设;

(4)不同的接口;

(5)不同的可选项,例如不同的内存大小;

兼容性测试的核心内容:

(1)测试软件是否能在不同的操作系统平台上兼容;

(2)测试软件是否能在同一操作系统平台的不同版本上兼容;

(3)软件本身能否向前或者向后兼容;

(4)测试软件能否与其它相关的软件兼容;

(5)数据兼容性测试,主要是指数据能否共享

14、什么是中断测试?

中断指软件在工作中被其他的任务或意外事件等情况终止退出,相应的测试即为中断测试,中断测试有人为中断、新任务中断以及意外中断等几种情况。

15、模拟器与真机的区别?

1.不支持呼叫和接听实际来电,但可以通过控制台模拟电话呼叫(呼入和呼出)

2.不支持USB连接

3.不支持相机/视频捕捉

4.不支持扩展耳机

5.不能确定电池电量水平和交流充电状态

6.不能确定SD卡的插入/弹出

7.不支持蓝牙

16、如何确认adb、monkey指令的是可以用的?

打开cmd窗体,输入adb version可以看到版本,则表示adb命令ok,没有的话要手动配置adb。

17、如何手动配置adb环境?

先在Android SDK相关目录下找到adb相关的文件(一般是3个,都是以adb开头的)

将这3个文件放到C:\windows\sys32目录下和放到C:\Windows\SysWOW64目录下。

 

18、如何拿到指定App的包名和界面名称?

android SDK中的aapt获取

获取App入口Activity

aapt dump badging <应用路径>

adb shell dumpsys window windows | findstr mFocusedApp

adb shell dumpsys activity | find "mFocusedActivity"

19、如果PC端安装UC开发者工具和线上App开启webview调试都是ok的,但是一直无法获取web界面的元素信息,可能会是什么问题,该如何处理?

问题:浏览器的版本与驱动的版本不一致导致的

处理方案:下载一个跟chrome浏览器版本一致的驱动,并放到Appium安装目录的对应位置即可。

20、如何快速区分一个App是原生App还是混合App?

1.打开开发者选项中的显示布局边界

2.如果页面中的每个控件都是由各个框框起来的,就是navicat App

3.如果App中某些界面中的每个控件被各个框框起来,而另外个别界面的很多元素在一个大的框中间,那么这个就是hybird App了。如58同城就是一个hybird App,家政界面的很多控件在一个大框中间,如果你想要去操作这个界面的元素,则通过以前的App定位方式是找不到元素的。

21、App类型有哪些?

Native App(原生App),Hybird App(混合App),Web App(web App)

22、App自动化和web自动化有哪些不同?

1:架构不一样,web测试是B/S架构,App测试是C/S架构

2:环境不一样,web测试是比较稳定和单一的,网络环境比较稳定和单一,App测试比较多变,网络环境:2G/3G/4G/WIFI/5G

3:部分测试内容不一样,web兼容性测试主要考虑平台、浏览器、分辨率,App兼容性测试系统、分辨率、尺寸、品牌。App测试有电量、流量、弱网、内存泄露、外网场景等测试策略,web没有这些。

4:测试的工具不一样,web自动化selenium,App自动化Appium。

23、App测试的流程?

首先,从开发那里得到App版本,然后对该版本的App进行审评,判断当前版本的App是否可测,如果没有通过,则打回,等待开发的下一个版本。如通过,则开始进行相关的UI、功能、兼容等多方面的测试,在这个过程中,对对应的BUG进行提交和跟踪。当这部份所有测试都通过后,就开始在真实的环境下进行测试,向公司申请相关的设备,对App进行在真实环境下的一些行为的测试。当真实环境测试完成后,如果没有通过,就打回,进行相关的回归测试,等待开发的下一个版本。如果通过,则发送相应的上线报告。

24、App测试范围(策略)?

包含功能测试、稳定性测试、适配(兼容性)测试、性能测试、安全测试等等

25、App自动化框架有哪些,你常用的是那个?有何特点?

App自动化框架有:UIAUtomator、Robotium、Appium等

常用的是:Appium

特点:

  1. 跨架构,支持原生、混合以及web移动应用。
  2. 跨平台,Android&IOS。
  3. 跨语言,Java、Python、Ruby

26、App安全性测试该如何测?

我是这样想的:

可以从软件权限、安装与卸载、数据、通讯、人机接口的这几个方面来测App安全性

  1. UI 测试的范围有哪些?和App 测试有哪些区别?

Ui测试的范围:导航、图形、表格、内容、界面(标题、文本、控件)

  1. 如何进行App自动化测试?

首先,从开发手上拿到对应的版本App,然后对App进行可测分析,如果没有通过,则打回,等待开发修改后的下一个版本,如达到可测标准,就可以继续下一步,对App的ui、功能、兼容、性能等多方面进行相关的自动化测试,有BUG就提BUG,等待开发修复。当这部分测试完成后,就可以申请在真实的环境下进行对应的测试。通过则发送对应的上线报告,如果没有通过,则打回给开发,等待开发修复后的下一个版本,然后进行相应的回归测试,直到测试通过为止。

  1. App项目有多少测试用例?你负责什么?有没有做兼容性测试?如何做的兼容性测试?

对应App项目测试用例的数量,这个是没有固定的数值的,要看App复杂程度。

我在以前的公司做过App自动化项目,我主要负责登录、搜索、用户信息这几个模块的自动化用例设计和自动化脚本的编写。在这个项目的有做过兼容性测试,主要从手机屏幕的分辨率、操作系统、手机品牌、手机尺寸等方面来做对应的兼容性测试。

  1. 你一个人能完成一个App的测试吗?你会怎么开展App测试的工作?

可以,只要功能不是很复杂,对于开展测试工作,我是这样做的:

首先,从开发手上拿到对应的版本App,然后对App进行可测分析,如果没有通过,则打回,等待开发修改后的下一个版本,如达到可测标准,就可以继续下一步,对App的ui、功能、兼容、性能等多方面进行相关的自动化测试,有BUG就提BUG,等待开发修复。当这部分测试完成后,就可以申请在真实的环境下进行对应的测试。通过则发送对应的上线报告,如果没有通过,则打回给开发,等待开发修复后的下一个版本,然后进行相应的回归测试,直到测试通过为止。

31、你们的App是用在Android还是苹果上?Android和IOS有什么区别?

我以前的公司App主要是用在Android上,小部分用在ios上。

至于iOS和Android的区别主要有:

研发商:Adroid是google公司做的手机系统,IOS是苹果公司做的手机系统
  开源程度:Android是开源的,IOS是半开源的。所以IOS系统相对于Android来说是比较稳定的
  运行机制:IOS采用的是沙盒运行机制,安卓采用的是虚拟机运行机制
  渲染机制:Android:主线程普通优先级,加载一个页面,全部加载完成的同时加载当前页面,当你看到页面后,实际后台仍在加载,因此增加了处理器的压力
  最高权限:IOS中用于UI指令权限最高,安卓中数据处理指令权限最高

 

32、同一个App分别在Android和IOS上测试,我们的侧重点分别是什么?

后退按钮:安卓自带手机后退按钮,iOS在测试时需要关注页面后退按钮可用性。

通知信息:Android可以将信息放在顶部消息栏,iOS不能放在顶部消息栏,只能显示在屏幕上 
  兼容适配:Android注重每个安卓系统App兼容性,及屏幕大小适配,尤其注重在Android6.0系统上权限的测试,iOS同样注重iOS每个系统的、屏幕上兼容
UI细节:Android与IOS在UI上显示会有些不同,字体大小、颜色等,都会有差异。3、其他测试点

  触屏测试:点击同一个功能或位置,两者的处理结果是一样的
  安装卸载测试:安装时关注需要获得的权限
  升级测试:有新版本后升级提醒通知,升级后之前的一些信息保存情况
  相应时长:同一功能加载的时长最好不要超过2s
  交互测试:比如App在运行过程中来电、视频/音频播放等可以正常进行
  自身交互:在运行过程中自身播放视频/音频、消息通知等

33、App的整体测试框架是什么?你是如何搭建的?

我以前公司用的App测试框架是Appium,整体的框架是python3.7+PyCharm+Android SDK+夜神模拟器/Genymotion+Appium(服务端/客户端)。

环境搭建主要有这几个步骤:

1、首先安装和配置jdk环境

2、然后我先下载好python3.7的安装包,并安装,然后进行对应的环境配置,在配置好pyhton3.7环境的后,我需要下载python编写工具,我用的JetBrains PyCharm,当JetBrains PyCharm安装好之后,进行对应的python和JetBrains PyCharm的相关配置

3、然后将Android SDK安装好,并配置好环境变量

4、安装夜神模拟器或者Genymotion

5、装好Appium Desktop服务端,对于这个服务端,是安装在我另外一个同事的电脑上,因为App自动化测试主要是我和另外一个同事俩个人负责的。

6、然后安装好Appium Client插件,利用cmd窗口,输入pip install Appium-python-client,如果显示Successfully installed Appium-python-client-0.46,则表示安装成功。

34App自动化与web自动化的区别?

1、架构不一样,web测试是B/S架构,App测试是C/S架构

2、环境不一样,web测试是比较稳定和单一的,网络环境比较稳定和单一,App测试比较多变,网络环境:2G/3G/4G/WIFI/5G

3、部分测试内容不一样,web兼容性测试主要考虑平台、浏览器、分辨率,App兼容性测试系统、分辨率、尺寸、品牌。App测试有电量、流量、弱网、内存泄露、外网场景等测试策略,web没有这些。

4、测试的工具不一样,web自动化selenium,App自动化Appium。

35、你们公司有做用户手册吗?你会吗?

我以前的公司有做用户手册,在公司的时候这部分不是我负责的,但是我有看过我同事做过,用户手册主要是用来够给予用户准确、明晰、简介的使用指导和说明,能够在一定程度上提高软件对于用户的亲和度和用户使用体验。而我们主要是检测用户手册上面的内容是否符合软件的相关操作流程,以及信息的准确性,防止出现错误和遗漏,造成不必要的影响。

36App自动化页面滑动的方法有哪些

主要有driver.swipe()和move_to

37App自动化你用的什么工具

框架:Appium

编译环境和工具:python3.7和PyCharm

其他环境:Android sdk

模拟器:夜神、Genymotion

定位工具:uctools

38App自动化测试脚本要添加的配置有哪些?

deviceName:设备名称

platformName:测试平台

platformVersion:平台版本

AppPackage:测试App包名

AppActivity:测试App启动入口

39、在App内乱点出现的异常如何复现c?

用同样的monkey命令加上-s 输入上一次操作的seed值进行复现。

 

40App测试与h5测试有啥区别

 我们以往的App是使用原生系统内核的,相当于直接在系统上操作,是我们传统意义上的软件,更加稳定,H5的App先得调用系统的浏览器内核,相当于是在网页中进行操作,较原生App稳定性稍差,似乎还没有百万级用户量的H5 App,H5最大的优点是可以跨平台,开发容易,App的话需要用ANDROID的语言和IOS的语言各自写,H5只要开发一套, 简单的说:H5是基于web,native基于客户端。

41App类型有哪些?分别有什么优缺点?

1、Native App:传统的原生App开发模式,android基于Java语言。

优点:直接依托于操作系统,交互性最强,性能最好;功能最为强大,特别是在与系统交互中,几乎所有功能都能实现。

缺点 :开发成本高,无法跨平台,不同平台Android和iOS上都要各自独立开发;门槛较高,原生人员有一定的入门门槛,相比广大的前端人员而言,较少 更新缓慢,特别是发布应用商店后,需要等到审核周期 维护成本高。

2、Web App:即移动端的网站,将页面部署在服务器上,然后用户使用各大浏览器访问,不是独立App,无法安装和发布,类似于现在所说的轻应用

优点:开发成本低,可以跨平台,调试方便;维护成本低 更新无需通知用户,不需要手动升级 无需安装App,不会占用手机内存。

缺点:无法获取系统级别的通知,提醒,动效等等;用户留存率低 设计受限制诸多 体验较差

3、Hybrid App:(Hybrid)混合应用程序,在应用程序中嵌入了webview,通过webview访问网页。

优点:开发成本较低,可以跨平台,调试方便 维护成本低,功能可复用;功能更加完善,性能和体验要比起web App好太多 更新较为自由

缺点: 相比原生,性能仍然有较大损耗 不适用于交互性较强的App

42App测试工程师到底测些什么?

1、功能测试

2、专项测试

3、兼容性测试

4、后端压力测试

5、稳定性测试

43、手机端微信发朋友圈怎么测试?

1、拍摄照片和视频上传(只上传照片和视频,不上传文字),如是否能拍摄照片/视频。

3、从相册中选择图片上传(不上传文字),如选择的图片/视频能否能正常上传, 

4、发送文字、照片、视频混合测试的情况

5、定位:写完要上传的内容后,点击“所在位置”,测试能否正常调用定位功能,选择位置后,能否预览所选的位置,发送朋友圈后,能否正确显示所选择的位置,点击该位置,能否查看位置详情

6、朋友圈权限“谁可以看”

7、异常情况,断网情况,断网情况下是否能正常发送。发送的动态是否被保存,好友是否可见,网络连通后是否自动上传,好友是否可见。

44、对com.package.name进行稳定性测试,要求每个操作间隔0.5秒,执行60000次,忽略所有的报错信息,记录最详细的日志,并将日志保存在本地D:\App

Adb monkey –p com.package.name –throttle 500 -ignore-crashes -ignore-timeouts -ignore-security-exceptions -kill-process-after-error vvv 60000>:D:\App\log.txt

技术交流Q群:810119819

45、对于以上命令执行的稳定性测试的日志如何进行日志分析?请写出分析的步骤?

首先,在日志中找有哪些错误,如CRASH、ANR、EXCEPTION等错误,找到错误后再定位是哪些App或者哪些事件出错, 然后提交BUG,并附上日志信息。当开发修复bug后,进行回归验证。使用之前的monkey命令再执行一遍,注意seed值要一样

46、对于以上命令执行的稳定性测试中发现的bug如何进行复现和验证的操作,请写出验证的步骤?

第一步:从上一次的日志中获取对应的seed值

第二步:在以前的monkey命令中加入-s,并填入seed值,如果没有seed值是无法复现的

第三步:生成日志后,在日志中找有哪些错误,如CRASH、ANR、EXCEPTION等错误,找到错误后再定位是哪些App或者哪些事件出错。


 

 


 如果你觉得此文对你有帮助,如果你对软件测试、接口测试、自动化测试、面试经验交流感兴趣欢迎加入:软件测试技术群:810119819,群里发放的免费资料都是笔者十多年测试生涯的精华。还有同行大神一起交流技术哦。

公众号:程序员阿沐

愿你我相遇,皆有所获! 欢迎关注微信公众号:程序员阿沐

1.免费领取一份216页软件测试工程师面试宝典文档资料。 

2.软件测试学习路线以及相对应的视频学习教程免费分享!
 

标签:web,面试题,兼容性,App,面试官,吊打,测试,软件,安装
来源: https://blog.csdn.net/m0_60126160/article/details/118789718

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有