《移动开发:Android应用测试与调试实战》
本书主要好处是提供代码,内容有些太老了,但确实挺用心的。
1、学习的内容
ch1-2前面介绍安装测试环境和Android系统,有些新的东西是,Android应用程序的单UI线程模型。
1) 安装环境,还是记录一下:JDK+Eclipse+ADT(Android Development Tools)(一般不翻墙不行)
当然,现在一般直接上AndroidStudio,但是更新:SDK Manager 和AVD的库很困难,一般建议去:
“Android Studio 中文社区论坛-安卓开发者社区http://forum.android-studio.org/forum.php”之类直接下载。
2)采用最小权限,不同签名的应用在不同进城运行。 应用可以申请访问敏感数据的权限,但必须 在安装时由实际用户显式同意。主要是AndroidManifest.xml。
通过Intent通讯。
Android应用程序的单UI线程模型:UI线程只有主线程可以操作,其余硬件、后台线程等通过消息队列通知,UI线程负责事件的监听和绘图。
ch3-4 Android界面自动化白盒测试/黑盒测试,基本都接触过,收获不大。
ch3 主要是白盒
Instrumentation,有代码情况下的调试,还是要用代码,继承ActivityInstrumentationTestCase2,发送按键和各种操作等,实现自动化测试。主要限制是针对单个Activity,必须有代码;
Robotium,类似Instrumentation,是支持集成测试的开源框架,优势是可以创建自动化测试机器人solo,可以同时调用多个Activity,获取不同活动界面的控件的方式更加简单。
如果没有源码的话,就需要重新签名打包。 resign.sh
由于是针对屏幕来的,要注意不同屏幕分辨率带来的操作问题。像素和图标的缩放等。
ch4 黑盒 传统的monkey 和monkeyRunner
monkey一般就是单纯的稳定性测试了。 adb shell monkey xxxxx 。就是简单的命令,一些操作和比例等设定。通过脚本来看,一般就是健壮性测试
MonkeyRunner 除了编写脚本,可以录制、回访用例。可以使用python等语言来编制脚本,但API有限。
ch5-10,似懂非懂,回头再翻一下。
ch5 测试 serviceProvider 继承ServiceTestCase ,可以用jMock,EasyMock。 -----没搞明白,感觉暂时也不用去管这种模块测试的东西,后面几章节类似。
ch6 ContentProvider 类似数据表操作,继承 ProviderTestCase。 ContentProvider ContentResolver等来模拟,隔离外部环境。--不太明白,反正就是数据表操作独立隔离起来测试。实际项目试试就会了。
Ch7 Android HTML5 测试 关注:1、WebView注意多种分辨率的测试;2、使用QUnit测试JavaScript。不太适合多个网页切换的场景。
Ch8 Slenium 测试 HTML5 ,这个感觉和一般的B/S的网页测试类似吧。 都还是不太明白
Ch9 Andorid NDK测试 --- unittest++ 跳过
Ch10 1、Android 兼容性测试 CTS,Android提供的一套兼容性测试用例集合,以判断运行Android系统的设备是否完全兼容Android规范。提供了8类测试时计划:函数签名、安全模型、虚拟机、性能、(API)兼容性、JAVA平台API兼容性、RefAPP(计算器、日历等典型应用)冒烟测试、以上所有的集合 可以自己添加测试用例和编辑测试计划。
2、 SL4A脚本 3、国际化测试。 4、利用telnet链接后,通过命令模拟来电、短信等
Ch11 持续集成自动化 Ant、Maven、Emma等工具的使用。 但现在AS使用Gradle了。也不太明白,一定要实际项目使用才行。
Ch12 1、Eclipse;2、logcat 3、adb 各种命令,这个备查就行,使用时熟悉即可。一些有用的命令比如:dumpsys
ch13 性能测试之分析操作日志
1、TraceView工具 在源码里面显式地startMethodTracing,stopMethodTracing来记录日志,将日志文件取出用工具分析就可以看到漂亮的图形。
2、DDMS工具,在没有源码的情况下,从外部启用和停止日志,不够精确,但也算管用。运行时监视连接的Android设备的应用。还可以模拟发电话、短信、GPS位置信息等。
3、通过am命令。可以直接关注到进程。
ch14介绍内存测试和内存处理机制。
介绍了内存处理机制,通过DDMS的分析来判断内存泄漏情况。 也可以使用MAT(eclipse的工具,Android的 HPROF需要先转换)来检查。MAT有OQL(对象查询语言,类似SQL)方便分析检索。分析步骤,直接插个图吧:
ch15 多线程调试、HTML5调试, 不太明白。
ch16介绍NDK,没有怎么看了。