通过CTS学习Android API系列1——CTS结果分析及用例研究
前言
之前写过一篇《Android自我修炼之路》,本已打定主意让大家来拍砖,谁知道大家都很善良,反而弄得我很不知所措。既然自己给自己指了一条路,就应该按照这条路走下去,不然岂不成了满嘴跑动车的人了?
第一阶段是学习JAVA,并通过CTS练手,OK,那就从CTS开始,找突破口,学习Android的API。
建议看我这个系列的人都提前看一下大牛宋立新(http://blog.csdn.net/zjujoe)的“Android CTS测试研究”系列,会对CTS有个整体的感受。信不信由你,反正我是信了。
OK,废话少说,开始咱们的CTS之旅吧,第一站,CTS结果分析(没跑过CTS的先自己去跑三天三夜再说,别嫌多,我已经跑了整整两周了,你不跑估计不会了解我在说些什么)。
运行“start --plan CTS”后:
不明白的人可能会开口喷,懂的人会知道,我这张图是个宝库。虽然,很多信息因为涉及公司机密被我隐藏,但大多数CTS容易遇到的问题都在我的“调查原因”中得以体现(剩下的15个fail的用例和我们项目本身相关,大家不用特别关注)。
下面我们一起来研究一下CTS用例集:
1.在Android官网(http://developer.android.com )上搜索该模块API,以蓝牙为例,搜索bluetooth,找到android.bluetooth,找到它有哪些Class
2.点击某个class,找到它的Public Methods,这些公共方法就是bluetooth的API
3.将所有Public Methods统计到表里:
4.在~/Android/cts/tests/tests源码下搜索blutooth相关用例,我们找到
~/Android/cts/tests/tests/bluetooth/src/android/bluetooth/cts/BasicAdapterTest.java
这就是蓝牙的CTS单元测试用例
5.打开该用例,查看统计在表里的API哪些被CTS用例调用到,将其标记在表格里
6.学习Google是如何写蓝牙的测试用例的(参见“通过CTS学习Android API系列2——Bluetooth分析”)
7.我们需要覆盖的API包括:
a.CTS没覆盖到的API即为我们需要分析的API,但并不代表需要全部覆盖
b.CTS虽然覆盖,但测试不满足现在的需求,我们需要通过更完善的方案来覆盖
8.分析:
a. 首先分析这些API是不是现在版本可以测试的API(比如有的API是3.0新增,目前无法测试)
b.对于基本方法,如toString(), hashCode()和equals(Object o)等,也不需要专门覆盖
c.尽量每个API单写一个测试用例,但如果交叉较多,可以一个用例覆盖多个API
d.添加新用例是一方面,用例测试的深度是另一方面(参见“通过CTS学习Android API系列2——Bluetooth分析”)
OK,今天贴一下CTS的调查结果,也和大家一起研究了一下CTS用例集,算作一个开始,从下一篇起我将逐一分析我所需要的CTS用例,供大家学习参考,谢谢围观!