VOL 417
15
2022-08
今天距2023年139天
ITester软件测试小栈第417次推文
点击上方蓝字“ITester软件测试小栈“关注我,每周一、三、五早上 09:00准时推送,每月不定期赠送技术书籍。
微信公众号后台回复“资源”、“测试工具包”领取测试资源,回复“微信交流群”、“内推群”一起进群打怪。
本文3440字,阅读约需7分钟
Hi,大家好,我是CoCo。马上进入金九银十,很多小伙伴有被动跳槽的打算,所以更新一些相关的APP面试题,希望能帮到大家。
一
请介绍一下,APP测试流程?
APP测试流程与web测试流程类似,分为如下七个阶段:
- 根据需求说明书编写测试计划;
- 制定测试方案,主要是测试任务、测试人员和测试时间的分配;
- 测试准备,包括搭建测试环境,准备测试数据,确定测试方法;
- 测试用例的设计与编写,进行用例评审及补充完善;
- 执行测试时首先进行冒烟测试,然后对主功能流程进行测试,包括客户端的单个功能模块,及功能业务逻辑功能交互,回归测试;
- 提交测试结果,包括测试用例,测试计划;
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 自动化测试必须要掌握的工具之一。
官网传送门: http://appium.io/
(2) Airtest
Airtest 是网易游戏推出的一个 UI 自动化测试工具,适用于游戏和应用,支持的平台为 Windows,Android 和 iOS。Airtest 提供了跨平台的 API,包括安装应用、模拟输入、断言等。基于图像识别技术定位 UI 元素,你无需嵌入任何代码即可进行自动化测试。并且测试脚本运行后可以自动生成详细的 HTML 测试报告。
官网传送门: http://airtest.netease.com/
(3) uiautomator2(python)
uiautomator2 是一个可以使用 Python 对 Android 设备进行 UI 自动化的库。其底层基于 Google uiautomator,Google 提供的 uiautomator 库可以获取屏幕上任意一个 APP 的任意一个控件属性,并对其进行任意操作。
官网传送门:
https://github.com/openatx/uiautomator2
2
APP 稳定性测试工具
(1) Monkey
Monkey 是一个在模拟器或设备上运行的程序,可生成伪随机用户事件(例如点击、轻触或手势)流以及很多系统级事件。使用 Monkey 以随机且可重复的方式对正在开发的应用进行压力测试。
官网传送门:
https://developer.android.google.cn/studio/test/monkey
(2) MonkeyRunner
monkeyrunner 工具提供了一个 API,用于编写可从 Android 代码外部控制 Android 设备或模拟器的程序。使用 monkeyrunner,可以编写一个 Python 程序去安装 Android 应用或测试软件包,运行它,向其发送按键,截取其界面的屏幕截图,并将屏幕截图存储到工作站中。monkeyrunner 工具主要用于在功能/框架级测试应用和设备以及运行单元测试套件,但也可以自由地将其用于其他目的。
官网传送门:
https://developer.android.google.cn/studio/test/monkeyrunner
(3) Maxim
Maxim 是基于 monkey 做的二次开发,相较原生 monkey,相对智能。除了保留原生 monkey 已有的功能外,可深度遍历控件,可自定义黑白名单,可设定执行时长,增加防睡眠/防假死机制、防跳出/防误点状态栏及下拉状态栏等。
官网传送门:
https://github.com/zhangzhao4444/Maxim
3
APP 性能测试工具
(1) GT
腾讯开源的 APP 的随身调测平台,支持 iOS 和 Android。直接运行在手机上,可对 APP 进行快速的性能测试(CPU、内存、流量、电量、帧率/流畅度等等)、开发日志的查看、Crash 日志查看、网络数据包的抓取、APP 内部参数的调试、真机代码耗时统计等。
官网传送门:https://gt.qq.com/
(2) Perfdog
腾讯游戏部门开发的移动全平台 iOS/Android 性能测试、分析工具平台。手机无需 ROOT/越狱,手机硬件、游戏及应用 APP 也无需做任何修改,极简化即插即用。
PerfDog 支持 iOS 和 Android,支持移动平台所有应用程序(游戏、APP 应用、浏览器、小程序、小游戏、H5、后台系统进程等)、Android 模拟器、云真机等性能测试。PC 上 PerfDog 可多开,单 PC 可同时测试多台手机。目前免费体验,谁用谁香。
官网传送门: https://perfdog.qq.com/
4
APP 兼容性测试工具
(1) TestIn
Testin 是国内较早涉足云测试领域的平台之一。终端种类及数量都比较全面。提供远程真机测试、标准/深度/遍历兼容测试、自动化测试、测试专家驻场等。支持 Android 与 iOS 系统。但目前仅少部分服务为免费,绝大多数服务为收费项目。
官网传送门: https://www.testin.cn/
(2) 腾讯优测
腾讯旗下的云测试服务平台,拥有超过 3000 台真机实验室,覆盖市面 99% 主流机型。拥有十年终端测试服务经验,提供兼容性测试、自动化测试、云真机、设备分享等多种服务方式。
官网传送门: https://utest.21kunpeng.com/home
(3) 百度 MTC
百度 MTC 是百度开放平台旗下的移动云测试中心。提供超过 1500 款热门机型。提供的测试服务种类有兼容性测试、性能测试、功能测试。并且提供了脚本录制工具,类似 Testin。百度 MTC 的服务目前主要为收费服务。
官网传送门: http://mtc.baidu.com/
五
APP偶然出现anr和crash,你是怎么处理的?
APP偶然出现anr和crash是比较头疼的问题,由于偶然出现无法复现步骤,这也是一个测试人员必备的技能,需要抓日志。查看日志主要有3个方法:
① 一般app在测试阶段会开发debug版本,出现anr和crash的时候会自动把日志保存到本地实际的sd卡上,去对应的app目录取出来就可以了
② 当出现偶然的crash时候,手机连上开发的开发代码的环境,有ddms会抓日志,这时候出现crash就会记录下来日志。
③ 测试人员自己通过adb logcat保存日志到本地。
以上就是今天的全部内容,希望对大家有所帮助,也希望大家多多留言、点赞、在看、转发四连爱❤️ 支持。 咱们下篇文章见,Bye~