论文部分内容阅读
随着软件规模扩大,软件测试这个环节在保证软件质量上占有更重要的地位。百度推荐与个性相关产品的结构复杂,版本迭代频繁。无论是测试人员进行回归测试、开发人员进行产品的调研,还是产品人员进行效果的评估,一般都会涉及一系列必须、繁琐,且容易出错的工作。如何提高不同角色人员的工作效率,是本课题的主要研究内容,为此百度推荐与个性化部门决定开发一套针对本身产品的特点的自动化集成测试平台,以解决以上提到的问题。考虑到该集成测试平台是要在百度的集群环境下运行,并且其所测产品也是在百度的分布式环境下执行,本课题主要从在分布式环境下进行任务管理与分发、搭建测试环境、执行产品流程和执行自动化测试用例这几个方便进行研究。该集成测试平台的设计实现上考虑了服务器的性能、健壮性和实现成本问题,采用Gearman实现对提交的任务进行管理和分发的工作,Gearman是一个分布式远程过程处理框架。通过mysql数据库实现对未完成或待处理的任务的信息的持久化,以便对因为机器故障而没有执行完毕的任务进行恢复。该集成测试平台实现上从百度线上的机器上拉取环境,将线上环境配置修改为线下配置,并针对具体的模块进行本地化配置。环境搭建的脚本需要在开发测试过程中积累,并统一编程接口和文件组织结构,以方便进行集成。该集成测试平台以搭建的线下测试环境为基础,调用百度推荐与个性化部门自行开发的流程引擎框架。通过流程引擎的接口获取任务流程最后执行的算法包的执行状态,以决定进一步的程序流程。该集成测试平台的设计和实现上考虑到测试框架后续功能的扩展性与所测的产品实现框架的特点,并在对比多个自动化测试框架的优缺点后,该测试平台的自动化测试用例实现部分决定采用nose作为实现框架。基于上述研究内容,针对百度推荐与个性化相关产品,该集成测试平台提供用户友好的前端网页访问方式,为产品相关开发者提供集成接口。所采用的分布式架构的灵活性为应对未来推荐与个性化产品架构的变革提供了可能。