请选择行业
请选择职位
请选择省份
请选择城市

金九银十招聘季,APP测试面试题助你拿高薪Offer

时间: 2022-08-18 11:50   作者: 百里说测试   点击次数: 
 
 一、请介绍一下,APP测试流程?
  APP测试流程与web测试流程类似,分为如下七个阶段:
  1. 根据需求说明书编写测试计划;
  2. 制定测试方案,主要是测试任务、测试人员和测试时间的分配;
  3. 测试准备,包括搭建测试环境,准备测试数据,确定测试方法;
  4. 测试用例的设计与编写,进行用例评审及补充完善;
  5. 执行测试时首先进行冒烟测试,然后对主功能流程进行测试,包括客户端的单个功能模块,及功能业务逻辑功能交互,回归测试;
  6. 提交测试结果,包括测试用例,测试计划;
  7. 日常维护性测试。
  思维导图如下:
  二、APP原生开发、H5开发和混合开发的区别?
  1、原生开发
  原生开发(Native App开发), 利用官方提供的开发语言、开发类库、开发工具进行App开发。比如Android是利用Java;IOS是利用Objective-C进行开发。
  原生开发优点:
  ·运行速度快、性能高,绝佳的用户体验;
  · 支持大量图形和动画,不卡顿,反应快;
  · 兼容性高,每个代码都经过程序员精心设计,一般不会出现闪退的情况,还能防止病毒和漏洞的出现;
  · 比较快捷地使用设备端提供的接口,处理速度上有优势。
  原生开发缺点:
  · 开发时间长;
  · 制作费用高昂,成本较高;
  · 可移植性比较差,一款原生的App,Android和IOS都要各自开发,同样的逻辑、界面要写两套;
  · 必须等下载完毕用户才可以打开,获得新版本时需重新下载应用更新。
  2、H5开发
  HTML5应用开发,是利用Web技术进行的App开发,可以在手机端浏览器里面打开的网站就称之为webapp。Web技术本身需要浏览器的支持才能进行展示和用户交互,因此主要用到的技术是HTML、CSS、Javascript以及jQuery、Vue、React等JS框架。
  H5开发优点:
  · 支持设备范围广,可以跨平台,编写的代码可以同时在Android、IOS、Windows上运行;
  · 开发成本低、周期短;
  · 适合展示有大段文字(如新闻、攻略等),且格式比较丰富(如加粗,字体多样)的页面;
  · 用户可以直接使用最新版本(自动更新,不需用户手动更新)。
  H5开发缺点:
  · 由于Web技术本身的限制,H5移动应用不能直接访问设备硬件和离线存储,所以在体验和性能上有很大的局限性;
  · 对联网要求高,离线不能做任何操作;
  · APP反应速度慢,页面切换流畅性较差;
  · 图片和动画支持性不高;
  · 用户体验感较差。
  3、混合开发
  混合开发(Hybrid App开发),是指在开发一款App产品的时候,为了提高效率、节省成本而利用原生与H5的开发技术的混合应用。通俗点来说,这就是网页的模式,通常由“HTML5云网站+APP应用客户端”两部份构成。
  混合开发优点:
  · 开发效率高,节约时间。同一套代码Android和IOS基本上都可使用;
  · 更新和部署比较方便,每次升级版本只需要在服务器端升级即可,不再需要上传到App Store进行审核;
  · 代码维护方便、版本更新快,节省产品成本;
  · 比web版实现功能多;
  · 可离线运行。
  混合开发缺点:
  · 功能/界面无法自定:所有内容都是固定的,不能换界面或增加功能;
  · 加载缓慢/网络要求高:混合APP数据需要全部从服务器调取,每个页面都需要重新下载,因此打开速度慢,网络占用高,缓冲时间长,容易让用户反感;
  · 安全性比较低:代码都是以前的老代码,不能很好地兼容最新手机系统,且安全性较低,网络发展这么快,病毒这么多,如果不实时更新,定期检查,容易产生漏洞,造成直接经济损失。
  三、app上线之后很卡,要从哪些方面考虑原因呢?
  如果是当前升级的这个功能很卡的话,可能的原因:
  · 可能是当前功能的资源太多了,所以加载起来比较慢,从而很卡;
  · 可能是请求用户太大了,所以导致卡。
  如果是整个app操作都很卡的话,大概有如下的几个原因:
  · 可能是网络问题,要检查一下你的网络;
  · 可能是app的占用内存太大了,导致的内存不足;
  · 可能是与手机的其他软件,或者是手机系统有不兼容的问题;
  · 可能是服务器的资源不足了。
  四、说下你了解的APP测试工具
  1、APP自动化测试工具
  (1) appium
  Appium 是一个开源的、跨平台的自动化测试工具。支持自动化 iOS,Android 和 Windows 桌面平台上的原生、移动 Web 和混合应用。开发者可以使用 WebDriver 兼容的任何语言编写测试脚本,如 Java,OC,JS,PHP,Python,Ruby,C#,Clojure 和 Perl 语言。是做 UI 自动化测试必须要掌握的工具之一。
  (2) Airtest
  Airtest 是网易游戏推出的一个 UI 自动化测试工具,适用于游戏和应用,支持的平台为 Windows,Android 和 iOS。Airtest 提供了跨平台的 API,包括安装应用、模拟输入、断言等。基于图像识别技术定位 UI 元素,你无需嵌入任何代码即可进行自动化测试。并且测试脚本运行后可以自动生成详细的 HTML 测试报告。
  (3) uiautomator2(python)
  uiautomator2 是一个可以使用 Python 对 Android 设备进行 UI 自动化的库。其底层基于 Google uiautomator,Google 提供的 uiautomator 库可以获取屏幕上任意一个 APP 的任意一个控件属性,并对其进行任意操作。
  2、APP 稳定性测试工具
  (1) Monkey
  Monkey 是一个在模拟器或设备上运行的程序,可生成伪随机用户事件(例如点击、轻触或手势)流以及很多系统级事件。使用 Monkey 以随机且可重复的方式对正在开发的应用进行压力测试。
  (2) MonkeyRunner
  monkeyrunner 工具提供了一个 API,用于编写可从 Android 代码外部控制 Android 设备或模拟器的程序。使用 monkeyrunner,可以编写一个 Python 程序去安装 Android 应用或测试软件包,运行它,向其发送按键,截取其界面的屏幕截图,并将屏幕截图存储到工作站中。monkeyrunner 工具主要用于在功能/框架级测试应用和设备以及运行单元测试套件,但也可以自由地将其用于其他目的。
  (3) Maxim
  Maxim 是基于 monkey 做的二次开发,相较原生 monkey,相对智能。除了保留原生 monkey 已有的功能外,可深度遍历控件,可自定义黑白名单,可设定执行时长,增加防睡眠/防假死机制、防跳出/防误点状态栏及下拉状态栏等。
  3、APP 性能测试工具
  (1) GT
  腾讯开源的 APP 的随身调测平台,支持 iOS 和 Android。直接运行在手机上,可对 APP 进行快速的性能测试(CPU、内存、流量、电量、帧率/流畅度等等)、开发日志的查看、Crash 日志查看、网络数据包的抓取、APP 内部参数的调试、真机代码耗时统计等。
  (2) Perfdog
  腾讯游戏部门开发的移动全平台 iOS/Android 性能测试、分析工具平台。手机无需 ROOT/越狱,手机硬件、游戏及应用 APP 也无需做任何修改,极简化即插即用。
  PerfDog 支持 iOS 和 Android,支持移动平台所有应用程序(游戏、APP 应用、浏览器、小程序、小游戏、H5、后台系统进程等)、Android 模拟器、云真机等性能测试。PC 上 PerfDog 可多开,单 PC 可同时测试多台手机。目前免费体验,谁用谁香。
  4、APP 兼容性测试工具
  (1) TestIn
  Testin 是国内较早涉足云测试领域的平台之一。终端种类及数量都比较全面。提供远程真机测试、标准/深度/遍历兼容测试、自动化测试、测试专家驻场等。支持 Android 与 iOS 系统。但目前仅少部分服务为免费,绝大多数服务为收费项目。
  (2) 腾讯优测
  腾讯旗下的云测试服务平台,拥有超过 3000 台真机实验室,覆盖市面 99% 主流机型。拥有十年终端测试服务经验,提供兼容性测试、自动化测试、云真机、设备分享等多种服务方式。
  (3) 百度 MTC
  百度 MTC 是百度开放平台旗下的移动云测试中心。提供超过 1500 款热门机型。提供的测试服务种类有兼容性测试、性能测试、功能测试。并且提供了脚本录制工具,类似 Testin。百度 MTC 的服务目前主要为收费服务。
  五、APP偶然出现anr和crash,你是怎么处理的?
  APP偶然出现anr和crash是比较头疼的问题,由于偶然出现无法复现步骤,这也是一个测试人员必备的技能,需要抓日志。查看日志主要有3个方法:
  ① 一般app在测试阶段会开发debug版本,出现anr和crash的时候会自动把日志保存到本地实际的sd卡上,去对应的app目录取出来就可以了。
  ② 当出现偶然的crash时候,手机连上开发的开发代码的环境,有ddms会抓日志,这时候出现crash就会记录下来日志。
  ③ 测试人员自己通过adb logcat保存日志到本地。

打印本页 | 加入收藏

上一篇:【51讲堂】资深性能测试工程师的成长之路     下一篇:目前软件测试工程师的发展如何?

关闭  
主要城市: 北京 上海 杭州 广州 南京 武汉 长沙
全部城市: