论文部分内容阅读
Android手机因其免费的Linux平台和易于开发的应用程序Java语言,在手机市场上的占有率也越来越大。作为智能手机的特点,其复杂的操作系统和多任务的进程,使其在开发过程中需要做大量的回归测试,需要投入大量的测试人员和测试工作量。而且很多时候测试的现场往往不能被持久地保留下来,或是因为操作的连续性会把一些有用的现场和日志给破坏掉。特别是一些偶现的问题,其低概率性和操作路径的复杂性,导致很难让测试人员做再一次的复现,并将当时有用的现场抓获下来提供给研发工程师作为分析问题和解决问题的依据。因此在这种情况下,如何开发一种操作简便且能及时抓获现场的有用日志的工具和测试系统显得尤为重要和迫切。本文通过调研公司测试部门的测试人员在其测试工作过程中遇到的各种问题和现状。具体研究寻找一种合理和高效的测试手段和方法。总结出测试bug的几种类型,并对几种类型bug需要获取的日志的方式和方法进行归纳,通过对Android UI层的操作方式的研究和合理规划,确定将几种日志的获取方法简化为拨号盘指令。设计通过Linux服务巧妙地在Android应用和Shell命令之间架起命令传递的桥梁,同时起到了用户操作界面和业务逻辑分离的作用。本文的创新点主要体现在三个方面,便捷性,时效性和针对性。便捷性,测试员从拨号界面输入简单的特殊指令就能达到获取并保存日志的目的。操作十分方便,不需要测试员去了解要抓取哪些日志,哪些状态值。测试员只需要记住几个简单指令便能完成一切测试操作。时效性,在发生问题的第一时间,可以记录有效的现场日志用于分析。同时还能开启持续性的日志保存功能,以便随时出现问题随时记录现场日志等功能,也可以通过组合键来停止后台的日志获取进程。以便重新开始获取日志。针对性,测试员可以根据问题不同的类型,采用不同指令来获取相应的日志。此外,“monkey”做为Goolge为Android系统专门设计的一套自动测试工具,为系统随机产生点击和按键等事件来模拟人类的操作和测试行为。但是这个工具要在PC端通过Shell指令来启动。本文将这个测试工具的使用脱离了PC端,并通过合理的脚本设计将其启动方式移植到拨号界面。同时根据不同的需要,使用不同的暗码对全系统和各个子模块进行分别测试并同时保存相关日志。大大减轻了测试工作人员的工作量,提高了测试强度。本文基于Linux服务实现的上层指令的传递和执行,并实现对日志的准确捕获和清除,及其它测试工具的开启和关闭。有效克服了以往连接PC方式获取日志,在时效方面和可操作方面的不足。方便了测试人员的操作,简化了bug的复现和提交流程。减少了测试成本和时间的浪费,做到了问题与日志同步出现,及时捕获现场。使用该系统后测试的整体效率提升了近25%左右,同时为研发工程师提供了最及时的现场,偶现问题的解决效率提升了3到4倍。