首先问大家一个问题,做APP测试它的关键点在哪里?
APP测试的关键,如果你去面试的一家公司主要业务是做一个app测试,他肯定会问你一个问题:你如何你去APP测试?
那我们就从app测试的关键去分析。
大家可以想一想app测试的关键点有哪些?
脑海中应该马上能想到很多专业的测试技术,首先就是一个app功能,这个是毫无疑问的,不管你是做web端还是做app还是做小程序等等。首先功能你把它全部测试好,这个其实和我们的web测试以及其他的测试没有很大的差别,就是测试一些功能。
比如说淘宝,京东,我们去做一些加入购物车,下单等一系列功能测试。
我们还要去做一些app的专项测试,这个专项测试就包含了很多的东西。
当然还有我们的app自动化测试,我们就会从这几个大的方面考虑去做app测试。
功能测试我就不多赘述了,很多伙伴都知道功能测试怎么测,根据我们的需求文档把这个功能测试好就OK了。
专项测试里面就包含了很多东西,比如说一些app的启动,大家天天都在用手机打开一些应用,那我们的一些app的启动,比如说冷启动,然后你打开一个app首页以及各类页面的加载时间,这个页面加载时间就是用户体验。如果你一个页面打开要很久,超过好几秒钟了,用户肯定就会吐槽,这个我觉得不行,用得很不爽。冷启动、页面加载时间,我们可以通过一些弱网测试,就比如你在地铁或者地下车库、电梯里面,加载时间是不是符合我们的需求。
当然还有我们平时一直都在使用的app它的运行日志分析,这个日志去哪里分析呢?很多伙伴可能了解了我们的app是通过adb命令去运行,抓取日志。那么一般的我们可以通过抓包,app测试抓包是一个非常重要的一个手段,获取日志,比如说请求了哪些接口,然后它的一些日志到底是怎么样的,然后我们的一些数据。
其实大家真正做过app测试的,肯定还知道有第三方平台,比如说我们的友盟,极光,它是可以直接去获取到app的报错日志。当然不仅仅这一个平台,大家可以自行搜索学习。如果你不知道这些平台,面试的时候,一问就知道你没有什么经验。
app上线到应用市场,比如说我们的oppo、华为、小米这些应用市场发布之后,某一个用户点击这个app报错了,你可以通过这个平台去获取它的报错日志(比如哪个用户闪退了)这可能是大家平时没有去注重的一些点,那其实也是比较关键的。
还有一个,稳定性测试,你通过抓包还有一些第三方平台只能获取到它的报错,那我们想要app很稳定的运行,用户体验非常好。app稳定测试大家可能知道最多的是Mokey,我觉得Mokey它其实更多的是压力测试,就是通过一个Mokey去做一些随机点击事件,在一个app上面就像一个猴子一样任意到处高速点击,观察app是否会报出内存溢出、闪退等这一系列的现象。
稳定性能测试,我们一般是通过什么去做测试呢?是通过我们的接口,app一般的通过调用后端的服务。比如说我随便打开一个app
每日推荐到底有什么歌曲?这些数据肯定是从后端去获取到的。这就是通过一些接口,那这些接口,不仅仅是一些简单的测试,你要去考虑的点有很多。
你要去mock一些模拟测试数据,比如说这个接口当后端传了一个空值(null),或者很多情况有些字段为空的时候。因为一个后端的开发人员他不会考虑你前端app字段为空的时候会是一个什么场景,它只返回这个字段给你,这个时候你这个app会不会闪退呢?因为app它的一些机制,如果数据没有它就会闪退,所以这些异常场景非常重要。让它至少不会出现闪退,奔溃一些大的问题,加载时间特别慢、乱码切换等,所以稳定性测试非常关键。
如果你通过这些方面去给面试官一说,那肯定就显得我们至少很有经验,先不说我们的技术很牛皮,至少我们在对app测试这一块拿捏得比较稳。当然app还包括IOS和安卓,原理都是差不多的。
这个自动化测试,不管你是做什么类型的测试,自动化都会是一个关键词。怎么去做自动化?
app自动化测试我们熟悉的、企业常用的框架有哪些?
一个大家最熟悉的框架——Appium
那当然还有其他的,比如说airtest
然后我们国内的网易或者阿里巴巴开源的一些框架——macaca,uiautomator
还有很多的框架是支持我们去做自动化的
appium, airtest,macaca,uiautomator,rf,
那这就是当下企业主流的第三方开源自动化测试框架,我是通过这些框架去做app自动化,这些app测试完成之后,自动化从专项、功能后面还有一个兼容性。
app兼容性:(手机型号,安卓系统版本,分辨率)
兼容性,也分很多种,不仅有手机的型号,系统,现在手机的品牌非常的多,包括了手机屏幕分辨率不一样,有些bug它只在某一个品牌某一个型号的手机上才能重现,这个时候你该怎么办?你需要给面试官说的是你如何解决这些问题的方案和思路。
总结:
通过以上测试完之后,一般的在公司里如果你是作为一个有经验的软件测试工程师或者中高级的测试,像这种app的打包、发布这些都是应该由我们测试来做的,因为像开发他只管把他的代码打包,(我告诉大家一些经验和方案,那具体怎么做的,每个需要大家去认真的思考)那我们一般通过Jenkins构建自动化打包,通过Jenkins一个任务,直接把我们IOS安卓打包成一个应用程序去发布,因为像这种发布大家更多的是做的web端的,比如说后端某一个服务,通过Jenkins构建一下,那app的也是通过我们Jenkins可以自动化打包生成apk。
比如说你想要打包一个测试环境,你不需要去求助开发了,目前大家更多的,我需要测试一个新版本,就会和某某开发说,你开发完了没有,麻烦你帮我打一个包,像这种东西你不需要去找开发了。
一篇文章给大家简单的总结的一些东西,每一个点怎么具体的实施落地,更多分享可以公众号主页点击领取资料,学习资源免费分享。
1、点赞。防止以后找不到,想看的时候,在自己主页就能找到了,很方便;
2、关注我。让我们成为长期关系,下一篇文章会分享更多的硬核干货;
3、本文章学习资源,均可以免费分享。
就好比你看到优质的回答点个赞,表面上是为了让作者开心,实际上可以让大数据和人工智能给你推荐更多优质的干货内容~
文章首发于 微信公众号:程序员一凡 转载请注明出处!这样的好内容,里面还有近百篇。 谢谢你的支持!