论文部分内容阅读
随着互联网的发展,现在安卓移动端软件功能模块越来越多,迭代速度快,每次发布新功能的时候,为了避免新的模块对老的功能模块产生影响,需要回归所有旧的功能模块。在回归测试中手工测试的成本非常巨大,为了去替代一部分手工测试,市场上出现了很多安卓自动化测试框架去解决这一问题,来减少人力成本和提升效率。在移动端自动化测试中,利用开发好的自动化测试脚本,可快速的回归软件的主要功能模块是否正常。本课题研究的目的是对robotium自动化测试框架目前存在的弊端进行改进,对其二次开发,改进出一个稳定性好,效率高,方便且可视化好的自动化测试方案。论文的主要工作包括:a)解决robotium不能跨应用测试的弊端。由于原生robotium测试程序只能对一个app进行测试,不能跨程序测试。但是很多app都是会和其他程序进行交互,改进之后的测试框架需要实现跨应用测试;b)提供性能数据收集的能力和报告的输出。robotium提供了一套完整的操作UI的api,但是未提供对被测程序性能数据收集的api(包括电量,内存,cpu,流畅度等数据的收集)。改进之后需要支持性能数据收集模块;c)提供稳定性测试的模块。robotium没有提供像monkey这样的稳定性测试功能,软件的稳定性对软件的质量是一个非常重要的衡量指标。然而robotium没有提供。改进之后需要提供稳定性测试的能力模块;d)解决测试报告bug定位问题困难的问题。由于原生框架失败后只有一些简单的日志,并不能重现程序是如何导致运行失败的。改进之后需要提供用列执行过程的gif图片;e)提供自动生成丰富的测试输出报告。原生框架测试报告是xml格式的,不方便阅读。要对测试报告进行改进生成html格式和每个测试用列详细调用参数,方便定位问题;f)解决测试程序crash无法记录。当程序crash后,测试程序不会记录,只会报错并停止执行,这对测试程序非常不稳定,所以需要实现crash重跑机制并记录日志解决测试包需要重签名的问题。由于测试工程需要和被测程序保持签名一致,虽然有重签名工具,但是步骤麻烦。需要增加自动重签名脚本。本论文最后通过测试结果验证,改进后的robotium自动化测试框架比之前更加高效和方便且可视化程度高,测试脚本更加稳定。改进目的和效果均达到预期。