论文部分内容阅读
随着国内外软件产品的不断发展,软件的功能越来越智能,伴随而来的却是软件测试的困难与繁琐,需要投入大量的人力劳动力。通过在某数据库软件公司工作,发现测试部门的测试工程师们面对成千上万的测试任务,需要人工为测试任务分配服务器并重复地调用QuaSR测试工具,通过固定的测试流程来达到最终的测试目的。工作内容单调繁琐,导致人力物力的资源浪费。本文针对上述测试过程这种繁琐重复的工作,深入研究了自动化测试的各个环节,对比分析了国内外软件测试的特点和不足,结合企业的实际业务情况,在相关技术的基础上,分析了测试任务调度系统的需求,设计了系统架构和业务流程,提出了一种基于优先级的数据库测试任务调度的方法,实现了系统的相关功能模块,并对该系统在公司小组进行实践测试,有效地说明了自动化测试任务调度对提高测试工作效率的必要性。本系统的主要功能有:测试任务管理功能,测试资源组管理功能、测试任务调度功能、测试任务执行功能。测试任务管理通过对测试任务进行加载、删除以及监控,使得整个测试得到了合理规范的管理;测试资源组管理通过对服务器测试后判断出该服务器是否可以从服务器列表中添加或删除,并通过对服务器的磁盘空间的检测,确保服务器有足够的空间执行测试;测试任务调度采用状态模式的设计,实现了测试任务在创建、等待、就绪、执行、完毕、异常几种状态下产生的相对应的操作请求;测试任务执行通过对测试计划进行解析,生成QuaSR测试必备的配置文件Config,然后调用服务器来编译执行测试任务的脚本,并上传测试结果。该系统的关键技术是引入了STDS调度算法,利用调度算法的优先级计算来实现测试任务的有效分配,决定了测试任务的执行先后顺序和在哪个匹配的服务器中开始执行,使得测试服务器资源充分利用,克服了服务器可能的空闲等待问题,进一步的提高的测试的效率。系统通过MVC模式实现了该系统,对测试任务调度系统进行了界面包裹,方便工程师进行整个测试项的管理、执行和查看。在实际应用中,通过对测试过程中的测试详情查看以及测试结果数据分析,证实了系统不仅能够正确的完成项目的设计要求,而且有效地提高了测试用例的通过率,降低了测试成本,达到预设目标。目前,此系统已经在SAP西安研发中心ASE小组内部投入使用,系统运行稳定。