Android开发后续任务----测试应用程序
1、测试方面的最佳实践
开发人员的最终目标是,用户的所有期望都是合理的,要让用户的所有期望都能实现。这让开发人员负有重大的测试和质量控制责任。包含可靠测试计划的良好开发流程将让移动开发项目受益,无论这个项目的开发小组只有一人还是有上百名成员。下面的质量控制措施可以极大滴改善开发流程:
1)、指定编码标准和指南
如果开发人员指定并遵循一组指南,他们编写的代码将更加一致、更容易阅读和维护,例如:
讨论并制定一种常见的方式,所有开发人员都以这种方式处理错误和异常;
将时间和处理密集型操作移出主UI线程;
释放不再使用的对象和资源;
践行谨慎的内存管理并跟踪内存泄露;
合理地使用项目资源,例如不在代码和布局文件中一硬编码方式指定数据和字符串;
2)、定期执行版本控制生成
要定期执行版本控制生成,请:
使用源代码控制系统跟踪项目文件;
对项目文件定期进行版本控制并定期进行生成;
通过测试核实每个版本都如预期那样运行。
有很多解除的源码控制系统供开发人员使用,大多数适用于传统开发的源码控制系统也适用于移动项目。很多流行的源码控制系统(如Perforce、Subversion、Git和CVS)能很好滴与Eclipse协同工作,可通过插件将其集成到Eclipse中。
3)、使用缺陷跟踪系统
缺陷跟踪系统提供了一种组织和跟踪应用程序缺陷(Bug)的方式,通常与解决缺陷的流程一起使用。解决缺陷通常意味着修复问题,并核实修复方案在以后的版本中是否有效,例如Android的DeBug;
4)、指定良好的测试计划
有很多工具可供Android应用程序测试人员(质量保证人员)使用。虽然必须惊醒一些手工测试,但完全可以再测试计划中包含自动测试。
测试计划必须涵盖众多方面:
功能测试:
集成测试:确保软件能与设备的其他核心功能集成,无冲突。例如应用程序必须能够正确滴挂起和恢复运行,必须妥善地处理来自操作系统的中断(如收到短信、有来电以及关机等等);
客户/服务器测试:
升级测试:应尽可能对客户端和服务器都进行应用程序升级测试,确保用户能够平稳地升级;
国际化测试:验证语言支持,是否存在乱码等;
可用性测试:找出应哦也难怪程序中不美观、难以导航或使用的地方,这通常指的是用户界面方面;
性能测试:使用Android SDK调试工具来监视内存和资源的使用情况;它还找出性能瓶颈和危险的内存泄露并修复他们;
合规测试(Conformancetesting):检查应用程序必须遵守的策略、许可协议和法规,并核实应用程序遵守了;
边缘情况(Edge-case)测试:应用程序必须足够健壮,能够处理任何意外事件。每个人都会偶尔忘记锁屏,导致设备在口袋里收到随机按键、随机启动应用程序或拨打电话。应用程序必须妥善地处理这些情况,也就是说不能崩溃。要以随机方式对应用程序进行压力测试,可使用Android SDK自带的monkey工具——Monkey和monkeyrunner。
2、最大化测试覆盖率
虽然让测试率达到100%不现实,但是目标是在尽可能多的情况下对应用程序做尽可能全面的测试。
1)、管理测试环境
(1)、确定并获得目标设备
越早确定并获得应用程序针对的设备越好。有时候这很容易,只需前往商店够买新设备即可,但是有时候却没这个简单。
(2)、应对设备碎片化
市面上的新Android设备呈爆炸式增长,这是移动应用程序测试人员面临的最大挑战之一,被称为设备碎片化(device fragmentation),让跟踪可用设备的工作日益复杂。
(3)、管理设备数据库
为方便开发、测试和市场营销,最好使用数据库来跟踪设备信息。这样的数据库可能包含如下信息:
设备信息(型号、功能、SDK版本以及诸如设备是否有相机或内置键盘等硬件规格)?
当前有哪些设备?
给定应用程序要用于哪些设备?
您的应用程序在哪些设备上用得最多?
2)、在模拟器上测试
Android模拟器可降低测试费用,并提高测试覆盖率。下面是一些使用模拟器的优点:
在没有目标设备的情况下,可使用AVD设备设置快速进行测试;
在设备还未面市就模拟它们;
测试在实际设备中无法或不建议提供的艰难或危险场景(如可能破坏设备或潍坊服务协议的测试)。
3)、在目标设备上测试
这里有必要重复一下移动测试的箴言:尽早测试,经常测试,在实际设备上测试。
为确保应用程序能正确运行,最安全的方式是在目标设备上测试,因为您在用户将使用的硬件上运行改程序。通过模拟用户使用的环境,可确保应用程序在实际使用过程中按预期的那样运行。