论文总字数:38893字
摘 要
随着软件测试过程中测试产品的多样化和测试用例的增多,从产品测试结果数据中发掘有价值的信息,作为反馈指导软件测试过程变得越来越重要。本课题将数据分析技术应用到测试数据中,基于现有的自动化测试系统,通过Web应用,Docker和Spark等技术,设计并开发了测试数据分析系统。论文主要工作内容如下:
1. 设计并实现了测试数据的实时分析展示子系统。该子系统搭建了消息队列,捕获并转发测试消息,实时分析测试数据,计算产品的多种测试状态信息。并在服务端与前端建立双向通信,实时传送数据,更新测试状态信息展示页面。该子系统实时展示测试状态信息,辅助软件测试过程,从而提高了软件测试的效率。此外,该子系统不影响原有自动化测试系统的效能,对其数据库的压力极低。
2. 设计并实现了测试数据的分布式分析子系统。该子系统基于Spark分布式计算平台,针对大量的产品测试结果数据进行分布式分析,从中挖掘有价值的信息。其中包括测试系统运行状况,产品错误信息统计等,并且通过基于Spark的并行Apriori算法实现了测试用例的频繁项集挖掘。最后将各类分析结果可视化。该子系统展示了自动化测试系统各方面的运行状况,并通过频繁项集挖掘的结果发现测试环境中可能隐藏的问题,从而维护了自动化测试系统的正常运行。
3. 实现了系统模块的自动化部署。通过Docker容器技术,实现了系统服务器端和分布式分析Spark集群的自动化部署。简化了部署步骤,方便了集群的扩展,从而减少了运维工作量。
4. 设计并完成了分析效率的测试实验,证明了本课题分布式分析方案的效率相对于传统的HDFS方案更高,而且本课题中基于Spark的并行Apriori算法比传统Apriori算法频繁项集挖掘的效率更高。
关键词:数据分析,数据挖掘,Spark,Docker,Apriori
Design and Implementation of Test Data Analysis System
Based on Docker and Spark
ABSTRACT
With the diversification of software products and increment of test cases in the software test process, it is more and more significant to dig worthy information from test data and take advantage of them to instruct the software test process as feedbacks. Based on an existing automated test system, this project applies data analysis technology in test data, designs and implements a test data analysis system with Web application, Docker, Spark. The main contents of this thesis are as follows:
1. Design and implement the real-time analysis and display subsystem for test data. This subsystem is based on message queues. It catches and transmits test messages, then analyzes test data to get test status information of each product in real time. And it establishes bidirectional communication between server and front-end, sends test status information in real time, then updates the showing page. This subsystem displays test status information in real time and assists the software test process. In consequence, efficiency of software test is increased. In addition, this subsystem does not affect the performance of automated test system and puts extremely low pressure on its database.
2. Design and implement the distributed analysis subsystem for test data. Based on Spark distributed computation platform, it analyzes large test data of products and mines valuable information, such as running state of automated test system, errors statistics. And it mines frequent patterns by using parallel Apriori algorithm based on Spark. At last, these analysis results are virtualized. This subsystem demonstrates the running state of automated test system in all aspects, discovers possibly existing problems in test environment. Thus, it maintains normal operation of automated test system.
3. Implement automated deployment of system modules. With Docker Container technology, implement automated deployment of server and Spark clusters. As a result, it simplifies system deployment, makes cluster extension easier. As a result, workload of operation and maintenance is reduced.
4. Design and complete efficiency test experiment. It is proved that this project is more efficient than traditional solution with HDFS and the parallel Apriori algorithm based on Spark gets higher efficiency than traditional Apriori algorithm.
KEY WORDS: Data Analysis, Data Mining, Spark, Docker, Apriori
目 录
摘要 I
ABSTRACT II
第一章 绪 论 1
1.1 课题背景和意义 1
1.2 课题目标 2
1.3 课题特色和主要贡献 2
1.4 论文组织架构 2
第二章 相关技术研究 4
2.1 实时分析展示技术 4
2.2 数据可视化技术 5
2.3 大规模数据分析技术 5
2.4 自动化部署技术 7
2.5 本章小结 9
第三章 系统需求分析 10
3.1 功能需求分析 10
3.2 性能需求分析 11
3.3 本章小结 12
第四章 实时分析展示系统的设计与实现 13
4.1 系统总体架构 13
4.2 初始化分析模块 13
4.3 消息转发模块 16
4.4 请求处理模块 17
4.5 Web前端模块 19
4.6 数据库设计 22
4.7 本章小结 23
第五章 分布式分析系统的设计与实现 24
5.1 系统总体架构 24
5.2 分布式计算模块 24
5.1.1 测试信息分类统计 24
5.1.2 测试用例频繁项集挖掘 26
5.1.3 定时分析 31
5.2 请求处理模块 31
5.3 Web前端模块 32
5.4 数据库设计 35
5.5 本章小结 36
第六章 系统整合与自动化部署 37
6.1 系统整合 37
6.2 系统自动化部署 38
6.2.1 自动化部署服务器端 38
6.2.2 自动化部署Spark集群 39
6.3 本章小结 41
第七章 系统测试与分析 42
7.1 功能测试 42
7.2 性能测试 46
7.2.1 分布式分析效率测试 46
7.2.2 频繁项集挖掘效率测试 48
7.3 本章小结 49
第八章 总结与展望 50
8.1 课题总结 50
8.2 课题展望 50
致 谢 51
参考文献(References) 52
本科期间个人成果 54
绪 论
课题背景和意义
软件测试在软件生命周期中一直是非常重要的一环,其工作量占据了开发时间很大的比例。相对手动测试而言,软件自动化测试拥有可操作性,可重复性和高效率等特点[19]。也正式因为如此,目前,软件自动化测试工作在软件开发生命周期中扮演着越来越重要的角色。各个公司都已经开发出自己的自动化测试系统。美国国家仪器的自动化测试系统——ATS已经较为成熟,应用到几乎所有产品的自动化测试中。自动化测试的主要流程包括:用户在自动化测试系统中选择产品和测试套件(称为event),触发一个测试(称为run);自动化测试系统获取产品运行文件和对应的测试用例等文件;根据当前测试机器情况,分配测试机器;在测试机器上配置相应的测试环境,进行测试;测试完成后,将测试结果数据写入数据库。每个版本的产品都有多组测试套件,其中包含了很多测试用例。一次自动化测试只测试一组测试套件。每次完成自动化测试后,会产生大量的数据。简略的测试数据存储在Mysql数据库中,如自动化测试的状态(等待调度,正在进行,完成,终止),测试通过和未通过的测试用例的数量,自动化测试开始和结束时间等。而详细的测试数据存储在MongoDB数据库中,如测试套件中每个测试用例的详细运行情况,测试系统的运行日志信息等。
剩余内容已隐藏,请支付后下载全文,论文总字数:38893字
该课题毕业论文、开题报告、外文翻译、程序设计、图纸设计等资料可联系客服协助查找;