《Android应用测试指南》是一本移动测试实用工具书。本书针对当前流行的技术、框架和工程质量改进工具进行了介绍,一步一步清晰地指导大家如何去写应用程序的测试用例,利用各种测试手段来保证Android项目质量。
本书首先介绍了TTD(Android测试驱动开发)。TTD是软件开发过程中一个敏捷模式,能让你在早期发现应用中的Bug。书中给出了一些典型的样例工程来示范测试,包括最简单的单元测试和最复杂的性能测试。另外,本书以诊断的方式来详细描述Android测试中较广泛、较流行的应用技术。对于梦想在Android测试领域启航的程序员和测试人员来说这无疑是一本非常珍贵、有用的参考书。
本书适合测试人员、测试开发人员、测试经理、移动开发人员阅读,也适合大专院校相关专业师生的学习用书和培训学校的教材。
目录
- D11章测试入门1
- 1.1简史1
- 1.2软件Bug2
- 1.3为什么要测试、测什么、如何测、何时测试2
- 1.3.1测试的内容是什么呢4
- 1.3.2Activity生命周期中的事件4
- 1.3.3数据库和文件系统的操作4
- 1.3.4设备的物理特征5
- 1.4测试的种类5
- 1.4.1单元测试5
- 1.4.2集成测试10
- 1.4.3功能或者验收测试11
- 1.4.4性能测试12
- 1.4.5系统测试13
- 1.5Android测试框架13
- 1.5.1模拟器13
- 1.5.2测试对象15
- 1.6小结15
- D12章Android软件测试16
- 2.1Junit16
- 2.2创建一个Android主项目17
- 2.3创建一个Android测试项目18
- 2.4包浏览器19
- 2.5创建一个测试用例19
- 2.5.1特殊的方法22
- 2.5.2测试注释23
- 2.6测试执行24
- 2.6.1在Eclipse里执行所有的测试用例24
- 2.6.2执行单个测试用例25
- 2.6.3在模拟器里执行用例25
- 2.6.4用命令行来执行测试用例27
- 2.6.5执行所有测试用例27
- 2.6.6执行一个特殊测试用例文件中的所有用例28
- 2.6.7通过用例名称来执行用例28
- 2.6.8按用例分类来执行用例29
- 2.6.9创建个性化标签29
- 2.6.10执行性能测试30
- 2.6.11空载测试30
- 2.7调试用例31
- 2.8其他命令行xuan择32
- 2.9小结32
- D13章用AndroidSDK构建模块34
- 3.1工程演示34
- 3.2深度断言35
- 3.3个性化异常信息36
- 3.4静态输入37
- 3.5视图断言37
- 3.6更多的断言39
- 3.7TouchUtil类40
- 3.8Mock对象41
- 3.8.1MockContext概览42
- 3.8.2IsolatedContext类43
- 3.8.3xuan择文件和数据库操作43
- 3.8.4MockContentResolver类43
- 3.9测试用例基类44
- 3.9.1不带参数的构造函数44
- 3.9.2带名字的构造函数45
- 3.10AndriodTestCase基类45
- 3.11设备48
- 3.12ActivityMonitor内联类48
- 3.13InstrumentationTestCase类49
- 3.14ActivityTestCase类53
- 3.15scrubClass方法54
- 3.16ActivityInstrumentationTestCase2类54
- 3.17ProviderTestCase2类56
- 3.18ServiceTestCase58
- 3.19TestSuiteBuilder.FailedToCreateTests类59
- 3.20在测试工程中引入外部包59
- 3.21小结62
- D14章测试驱动开发63
- 4.1TDD测试驱动开发入门63
- 4.1.1编写一个测试用例64
- 4.1.2执行所有的测试用例64
- 4.1.3调整代码65
- 4.1.4优势在哪里65
- 4.1.5理解需求65
- 4.2新建一个样本工程——温度换算器66
- 4.3新建一个温度转换器对应的测试工程68
- 4.3.1新建模板测试用例71
- 4.3.2准备条件的测试71
- 4.3.3新建用户交互72
- 4.3.4测试用户交互的部件是否都存在72
- 4.3.5定义ID73
- 4.3.6将需求转换成测试用例74
- 4.3.7屏幕布局78
- 4.4温度转换器中添加功能78
- 4.4.1温度转换78
- 4.4.2EditNumber类79
- 4.4.3TemperatureConverter类的单元测试83
- 4.4.4EditNumber测试86
- 4.4.5TemperatureChangeWatcher类91
- 4.4.6对TemperatureConverter进行更详细的测试94
- 4.4.7对InputFilter进行测试96
- 4.5看看我们*后的应用成果97
- 4.6小结98
- D15章Android测试环境99
- 5.1新建Android虚拟设备99
- 5.2用命令行来启动虚拟设备101
- 5.2.1Headless模拟器102
- 5.2.2禁用锁屏功能103
- 5.2.3清理104
- 5.2.4终止模拟器104
- 5.3附加的模拟器设置104
- 5.3.1模拟网络设置105
- 5.3.2QeMu仿真器附加设置107
- 5.3.3启动Monkey109
- 5.3.4CS客户端服务端Mokey109
- 5.3.5用Monkey来测试脚本111
- 5.4获得测试截屏112
- 5.5录制和回放113
- 5.6小结114
- D16章行为驱动开发115
- 6.1行为驱动开发历史简介115
- 6.2假设 当 那么116
- 6.3FitNesse工具116
- 6.4命令行运行FitNesse116
- 6.5创建一个温度转换器测试的wiki目录117
- 6.6在子wiki中添加子页面118
- 6.7添加验收测试套件120
- 6.8添加测试需要的工具支持类120
- 6.9GivWenZen框架123
- 6.10创建测试场景124
- 6.11小结129
- D17章测试方案130
- 7.1Android单元测试130
- 7.2测试行为和应用132
- 7.2.1应用和引用132
- 7.2.2测试活动137
- 7.3测试文件 数据库以及内容存储服务142
- 7.4测试异常150
- 7.5测试本地和远程服务151
- 7.6Mock对象的用途拓展155
- 7.6.1导入相关的lib156
- 7.6.2文本框联动变化的测试157
- 7.6.3Hamcrest库介绍160
- 7.7对视图进行独立测试163
- 7.8对转化器的测试166
- 7.8.1Android资源166
- 7.8.2行为转换167
- 7.8.3针对转化的测试168
- 7.9对内存泄露的测试169
- 7.10小结171
- D18章持续集成172
- 8.1用ant手工编译Android应用173
- 8.2Git-快速版本控制系统176
- 8.3用Hudson持续集成178
- 8.3.1安装、设置hudson178
- 8.3.2新建hudson任务179
- 8.4获得Android测试结果182
- 8.5小结191
- D19章性能和压力测试192
- 9.1叶奥尔德记时法192
- 9.2AndroidSDK性能测试194
- 9.2.1启动性能测试194
- 9.2.2新建TemperatureConverterActivityLaunchPerformance类195
- 9.2.3执行测试用例196
- 9.2.4TraceView和DmtraceduMP平台工具的使用199
- 9.3微观标准检测201
- 9.4小结206
- D110章其他测试策略208
- 10.1从源代码编译Android应用208
- 10.1.1代码覆盖率209
- 10.1.2对系统的要求210
- 10.2下载Android源代码210
- 10.2.1安装repo211
- 10.2.2新建一个工作目录211
- 10.2.3编译步骤212
- 10.3TemperatureConveter代码覆盖率214
- 10.3.1生成代码覆盖率分析报告216
- 10.3.2实例恢复的覆盖状态220
- 10.3.3覆盖异常情况222
- 10.3.4绕过访问限制223
- 10.3.5覆盖可xuan菜单的测试224
- 10.4没有归档的ant覆盖率目标225
- 10.5Robotium介绍226
- 10.5.1下载Robotium226
- 10.5.2工程设置227
- 10.5.3新建测试用例227
- 10.5.4testFahrenheitToCelsiusConversion()测试227
- 10.5.5再访testOnCreateOptionsMenu()229
- 10.6在主机JVM上测试230
- 10.6.1新建一个TemperatureConverterJVMTest工程231
- 10.6.2对比一下获得的性能235
- 10.6.3将Android加入到蓝图中236
- 10.7Robolectric介绍237
- 10.7.1安装Robolectric237
- 10.7.2新建一个JAVA工程238
- 10.7.3编写一些测试用例238
- 10.8小结241
- 参考文献242