【Android源码 栏目提醒】:文章导读:在新的一年中,各位网友都进入紧张的学习或是工作阶段。
网学会员整理了Android源码 -做Android 系统应用开发怎么可以不懂自动化测试 - 电子设计的相关内容供大家参考,祝大家在新的一年里工作和学习顺利!
做Android 系统/应用开发怎么可以不懂自动化测试 接触Andorid有几个月了一直认为做系统应用开发根本不需要懂Android自动化测试之道认为那都是测试人员需要掌握的东西我们只要懂开发只要读懂系统根据客户的需求可以做相应的更改就可以了只要熟悉了API写出的应用可以实现某功能就可以了。
其实不是的。
举个例子说我们伟大的客户疯狂地更换硬件配置那么我们的驱动就跟着来回换相关功能的c实现也要换上层java对应稍作修改碰上腻歪点的客户提出腻歪的需求那么只有Good Luck了……幸运的整完了好使了。
Google及时发布Android的高版本客户要跟风要升级这时候突然发现自己修改的系统相对于原生Android并非只是优化和添加XX功能4个字伤筋动骨。
这个时候完美升级几乎等于重写。
避免这个悲剧的发生其实很简单就是在完成开发任务之后用cts测试一下符合不符合Android兼容性规范。
倘若全部pass那么OK谢天谢地欢天喜地若有fail项不影响系统编译和相关功能实现只是不符合兼容性规范就要及时查看相关文件可以不可以修改将其实现回归到Android正道。
如若实在困难 就要提前和客户打好招呼避免日后被他们扔回来自己不好收拾。
Android自动化测试不单单只是cts还有MonkeyASERobotiumInstrumentationd ......都是非常实用的工具。
比如应用中的UI测试单个Activity测试Instrumentationd就是最大的功臣。
android.test为我们提供了些什么 举个例子来夸夸ActivityInstrumentationTestCase2 java view plaincopy 1. public T getActivity 2. 3. Activity a super.getActivity 4. 5. if a null 6. 7. // set initial touch mode 8. 9. getInstrumentation.setInTouchModemInitialTouchMode 10. 11. final String targetPackage getInstrumentation.getTargetContext.getPackageName 12. 13. // inject custom intent if provided 14. 15. if mActivityIntent null 16. 17. a launchActivitytargetPackage mActivityClass null 18. 19. else 20. 21. a launchActivityWithIntenttargetPackage mActivityClass mActivityIntent 22. 23. 24. 25. setActivitya 26. 27. 28. 29. return T a 30. 31. 通过getActivity可以轻松的获得activity肆意使用其中的方法回避了无法实例化对象使用不了某类的方法的问题。
在get之前 setActivityIntentIntent and/orsetActivityInitialTouchModeboolean provide custom setup values to your Activity 。
我最近时间在接触camera这块解决了几个bug测了一下cts意外的发现cts中camera 的hardware test这块原来不符合兼容规范的fail项全部都pass了。
所以顿时很悔恨为什么开始不先针对cts的结果来找bug出口这个目标就锁定的很快解决的效率会提高一倍。
简单说一下cts吧 make cts //
android源码编译好后在编译cts 解压上一步生成的android-cts.zip 然后就可以进行测试了。
详细的操作搜一下资料网上相关资源很多。
CTS测试会自动生成相应的测试包该包位于如下目录 android-cts/repository/results 每个测试包中包含了如下文件 cts_result.css cts_result.xsl logo.gif newrule-green.png testResult.xml 该包的测试情况都在 testResult.xml 文件中通过查看该文件可以知道那些是和 Android兼容的 还有一点特别需要注意随着android版本的更新cts也在不断更新。
如果你够好奇可以试一试同一系统的同一设备用从r1到r5不同版本的cts都来测试一遍会有意外的收获 不懂测试就不要说自己是优秀的开发人员。
尤其Android为我们提供方便的自动化测试机制还有什么理由说不需要。
http://blog.csdn.net/yiyaaixuexi/article/details/6416130
上一篇:
32位XP下vbox安装64位ubuntu编译android2.3源码
下一篇:
学术论文摘要的定义及写作基本要求