论文部分内容阅读
随着人们对软件质量要求的提高,在软件工程中,软件测试变得越来越重要。在软件开发过程中,软件测试费用的比重也在加大。现代软件行业的迅速发展使得传统的手工软件测试方法难以适应软件的变化,软件质量困境日益突出。在此背景下,自动化测试成为软件测试的一种有效的解决方案,它有着快速、可重用、低成本等优点。而云计算作为一种新兴的信息技术,与自动化测试相结合,将会有效提高测试效率。云测试已经成为国内外重要的公共服务。本文主要研究基于云的自动化测试平台的构建。本文在分析各种IaaS云计算平台特征的基础上,通过研究云计算与自动化测试的融合技术,研发基于云计算环境的自动化测试框架,利用IaaS云计算平台和测试框架,构建面向Web应用的云测试平台。本文首先说明了选题背景和选题意义,介绍云测试技术国内外的发展现状。之后介绍了云测试平台设计开发过程中涉及的相关技术,其中通过对比各种开源IaaS平台的特点,选择简单易用的CloudStack作为IaaS平台。然后本文按照软件工程的角度详细介绍云测试平台的设计与实现,最后对云测试平台运行过程进行测试。测试结果表明,本文实现的云测试平台能全自动地完成Web应用的功能测试,且能合理调度资源,加快任务执行速度。本文的主要工作如下:(1)构建了基于云计算环境的软件测试框架,其结构分为三层:云基础架构层管理云中的基础设施,云测试服务层管理测试任务和测试资源,云测试门户层与用户交互。其中云基础架构层实现了对虚拟机池、存储以及网络的管理,并提供一系列接口供云测试服务层使用。云测试服务层实现了整个系统的核心功能,包括自动化测试框架、测试任务调度、测试脚本解析、测试数据的存储等。云测试门户层实现了测试平台的可视化界面,包括账户管理、项目管理、脚本管理、分组管理、报告管理、虚拟机管理等模块,使用户能方便地进行自动化测试。(2)基于云测试框架,实现了基于云的自动化测试,包含六个步骤:录制脚本、提交测试需求与脚本、脚本解析与资源的自动分配、测试任务的分发、测试脚本执行、测试结果的收集与反馈。测试结果表明,用户能够通过本文实现的云测试平台方便地实施自动化测试。(3)实现了一种测试脚本智能解析与分发功能,能够根据云测试环境的实际情况以及用户自定义的需求灵活配置测试脚本,然后通过分析测试脚本的执行环境和虚拟机的负载情况,将测试脚本分配到相对空闲的测试虚拟机上运行,保证整个云测试环境的负载均衡和执行效率。测试结果表明,该算法能均衡测试虚拟机的负载,加快测试速度。(4)利用流行的Web开发框架实现了简洁、美观的用户界面,并且实现了对各种性能参数的实时监控,便于检查云测试平台的健康状况。本文实现的云测试平台支持多种操作系统和浏览器,能够降低成本,满足个性化的测试需求,充分利用测试的资源。