《移动APP测试实战》学习笔记

前言:  很久没有交学习作业了,上一篇博客居然在国庆节前。其实最近一直在学习移动APP测试,包括搭建AndroidStudio的开发环境,学习移动APP测试工具,但由于项目变化的原因,一直不能专心地来小结。
总的来说,读完很有收获。个人收获较大的是:1、ch5辅助测试中的接口Mock,AOP,有些新的理念上的触动,暴露平时接触测试理论太浅薄,另外工具整合能力差许多;2、ch6的内容,以及ch7的开发自测。这两个合在一起;3、ch4的一些具体内容。 其他一些零零碎碎的倒是基本有经验。但是许多工具还需要在实际项目中用。  
 
下面是每章的内容和收获:偏Android,关于iOS的暂时不准备涉及。另外,后面对一些工具进行使用和评估,具体的再写。

第一章:研发流程。
这方面个人经验比较丰富。移动互联网的特色是在开发和测试之间,有个体验阶段。
第二章:功能测试自动化。
主要是基于JMeter的接口自动化。配合其中的一些环境设置、脚本嵌入等。以前主要是用到JMeter做性能测试,不如LR好用。
UIAutomatorViewer,获取APP中对象的ID。配合自动化测试框架Appium的使用。
第三章:性能测试。
1)Web前端性能测试:web页面,可以配合HttpWatch及WebPageSpeed,PageSpeed(Google Chrome)等各大浏览器自带的分析器。
2)App端性能测试: 内存-.hprof文件分析;webview渲染性能--通过Logcat分析;其他常见性能如耗电、启动时间、流量等放在了专项测试。
3)后台服务性能测试:类似常规的网站的压力测试,JMeter就可以。AB(ApacheBench)也可以用来测试Http连接数。
第四章:专项测试。
这个貌似重点内容。
1)兼容性测试。其实主要是真机平台的问题,其实用各大云测平台(Testin、百度MTC)很不错。作者推荐自己录制编写脚本(例如robotium),云平台测试的方式。其实和UI自动化测试有些关联。
2)流量测试。a,系统自带的,读取文件解析就可以。  b,编码,通过系统API来获取。c,直接外部抓包估计--Fiddler。
3)电量测试。  a,电表;b,电池监控器 GSam Battery Monitor Pro。
4)弱网络测试。a,iOS自带的开发者选项“Network link conditioner”;b,基于代理的弱网络模拟。windows下面的Network Delay Simulator; Mac下的Network Link Simulator。内置了3G,2G,Wifi等不同场景,当然也可以设置。 这个是以前没有怎么接触的。

5)稳定性测试。 a,基于Monkey的随机操作。这个前面有一些了解,通过adb命令,可以控制APP,次数,几类事件的百分比。b,MonkeyRunner的使用。可以通过脚本来控制事件类型。  c)稳定性测试后读取ANR日志文件。  d)模糊测试的方法。 FuzzingTest。作者使用Sulley框架。通过脚本对可变异的和不可变异的内容进行设置,这个后面有必要尝试。可变异的内容进行多次随机化。
6)安全测试。
6.1)安装包测试。  dex2jar进行反编译、签名、完整性校验。通过manifest文件,检查权限设置 。
6.2)敏感信息测试。数据库、日志 、配置文件有没有敏感词,明文密码、cookie信息等。
6.3)软键盘劫持。-检查是否支持第三方输入法。  
6.4)账户安全。密码明文存储、传输;账户锁定策略;同时会话通知;注销机制。  
6.5)数据通信安全。  
6.6)组件安全。一般是使用drozer。
6.7)服务器端。 如SQL注入。跨站脚本攻击XSS。CSRF跨站请求伪造。越权访问。 这些都是常规的,可以用渗透测试工具Appscan、Fortify。和专门的工具。
7)环境相关的测试。   a、干扰测试。来电、短信、通知、电量低、告警等。 b、权限测试。一方面检查授权;一方面检查不给予授权的情况。 c、边界情况。 如存储满、电量低、飞行模式、系统时间有误、第三方依赖(调用第三方应用失败)等。
8)定位测试。
第五章:辅助测试方法
1、代码静态扫描。开源的如FindBugs、Lint。以插件方式工作。 例外工作中用到一些商用的,Klocwork,Coverity等。
2、代码覆盖率分析。例如jacoco(主流),emma。工作中使用商用的Vectorcast,Jtest。
3、接口Mock。  a,直接修改后台server;b,搭建测试Server; C,在数据返回的途中截获并修改。Fiddler可以提供AutoResponder来实现。 作者提供基于FiddlerCore二次开发的Mock工具。(改善了加密的响应不能匹配和篡改的问题)
4、AOP测试方法。   Aspect Oriented Programming。 前面基本没有接触过。  AspectJ是java下面实现AOP的一个框架。
第6章 发布过程中的质量管理
1、持续集成。jenkis 。这个久闻大名,没有接触过。 持续集成和发布平台的一些要求。
2、内测。不同对象应提供不同版本。本部门;其他部门;外部粉丝等应区别。
3、灰度测试。  白名单--比例控制(最简单就是ID筛选)--根据设定逻辑筛选---基于功能维度的灰度等不同策略。
第7章  质量的度量和推动
这个其实Bug管理系统就搞定。主流的基本都用过了,感觉开源的简洁的Bugfree就可以满足一般的需要的。
开发自测,设计走查,产品走查。值得说的,还是开发自测这个。通过提供测试用例集给开发,并对Bug区分:不能发现,使用即应发现,运行提供的自测用例集应发现的不同手段。
第8章  发布之后的质量管理
交叉测试,线上监控。  监控如何埋点是关键。其实也算是一种可测试性设计要求。
问题的收集和反馈,这些都是必须的。
  • 7
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值