用户登录  |  用户注册
首 页毕业论文毕业设计下载定做交易过程截图支付宝在线支付

软件名称:[B]MSS数据一致性自动化测试系统的设计与实现[/B]
软件类型:计算机毕业设计
运行环境:Win9X/Win2000/WinXP/Win2003/
软件语言:简体中文
授权方式:共享版
软件大小:0 Bytes
官方主页:Home Page
更新时间:2019-01-23 10:43:33
软件简介:

 摘要:数据测试是地铁信号系统软件测试中的一个重要环节,是对地铁信号系统正确性和健壮性的重要验证,是保证地铁安全运行的重要手段。在实际测试过程中,由于数据量大、关联性强,传统的手工检查模式存在工作量大、错误缺陷多等原因,导致测试过程中存在执行时间长、效率不高的问题。为了解决这一问题,更多的采用软件读取配置文件的自动化测试框架的方法,能有效的缩短接口的测试时间,提高软件的测试效率。对于信号系统而言,信号设备关乎着乘车人的生命安全,数据是信号设备的关键所在,因此,数据的校验测试显得尤为重要。
MSS(Maintenance Support System,维护支持系统)是轨道交通信号系统中的一个子系统,收集来自各个信号子系统发出的数据,经解析之后发送到大数据平台,为了保证原始数据与解析后数据的一致性,测试人员需要对解析前后的数据进行数据测试,确保其一致性。
本文阐述的便是针对MSS 数据一致性而设计开发的一个MSS 数据一致性自动化测试系统。MSS 数据一致性自动化测试系统包括两部分:MSS 发报机以及MSS 比对工具。
MSS 比对工具请求MSS 发报机发送指定测试数据,请求成功后 MSS 发报机分别向MSS比对工具以及 MSS 发送同一份测试数据,经 MSS 解析后的数据再发送到 MSS 比对工具,MSS 比对工具将收到的解析前后的两份数据进行比对,最后得出数据是否一致的结论,完成测试。该系统采用 C++进行开发,实现功能时还运用了 socket 进程通信、excel
com 组件、动态链接库等相关技术。论文完成了 MSS 数据一致性自动化测试系统的需求分析和架构设计,完成了 MSS 发报机的概要设计、详细设计和编码实现部分,完成了 MSS 比对工具的数据比对功能,最后对系统进行了功能性测试和性能测试。
目前,MSS 数据一致性自动化测试系统已经正式上线并投入使用,为公司内部 MSS
数据一致性测试提供自动化测试服务,并为公司带来了可观的效益。


关键词:数据一致性;自动化测试;Socket;Excel com

ABSTRACT

ABSTRACT: Data testing is one of the important parts in the software testing of subway signal system. It is an important verification of the correctness and robustness for the subway signal system. It is also an important means to ensure the safety of the subway. In the actual course of testing, because of the strong correlation and large amount of data, traditional manual inspection mode has many problems, such as heavy workload and multiple error. They lead to the problem of long execution time and low efficiency in the testing. In order to solve this problem, the automation testing framework is more popular, and it can effectively shorten the testing time and improve the testing efficiency of the software by reading the configuration file automatically. For the signal system, which relates to people's life, data is the key to signal equipment, data verification test is particularly important.
Maintenance Support System which is a subsystem of the track traffic signal system. It collects the data from each signal subsystem and sends data to the big data platform. In order to ensure the consistency of the original data and the analytical data, the testing staff need to test the data to ensure the consistency of the data.
This paper is about an automatic testing system for MSS data consistency. This system includes two main modules: The MSS transmitter module and MSS comparison tool module. MSS transmitter requests MSS comparison tool to send the specified test message, after the request is successful, MSS transmitter sends the same test message to MSS comparison tool and MSS respectively, MSS will parse the message and then sent to the MSS comparison tool, MSS comparison tool compares the two messages, and finally draws the conclusion. This system is developed by C++, when developed It uses the socket process communications, com excel components, dynamic link library and other related technologies. This paper’s major is requirements analysis and architecture design of the system; Summary design, detailed design, and coding implementation of MSS transmitter module; Data comparison function of MSS comparison tool module. Finally, testing.
At present, the system has been formally launched and put into use. Providing considerable profit for company.


KEYWORDS:Data consistency; Automated testing; Socket; Excel com

目 录

中文摘要 I
ABSTRACT II
目 录 III
1 引言 1
1.1 论文的背景与意义 1
1.1.1 论文的背景 1
1.1.2 论文的意义 2
1.2 论文的难点与特色 2
1.2.1 论文的难点 3
1.2.2 论文的特色 3
1.3 论文的主要工作 4
1.4 论文组织结构 4
1.5 本章小结 4
2 系统相关技术介绍 5
2.1 C++概述 5
2.2 SOCKET 概述 6
2.3 EXCEL COM 组件概述 8
2.4 动态链接库概述 10
2.5 本章小结 11
3 MSS 数据一致性自动化测试系统的需求分析 12
3.1 系统构成 12
3.1.1 MSS 发报机 12
3.1.2 MSS 比对工具 12
3.2 系统整体功能概述 13
3.3 系统功能性需求 14
3.3.1 Excel 接口配置 14
3.3.2 可测试数据加载 15
3.3.3 通信链接 15
3.3.4 测试数据发送 15
3.3.5 数据一致性比对 16
3.3.6 系统日志管理 16
3.3.7 产品配置 17
3.4 系统的非功能性需求 17
3.4.1 数据需求 17
3.4.2 性能需求 18
3.4.3 RAMS 18
3.4.4 可移植性 18
3.5 本章小结 18
4 MSS 数据一致性自动化测试系统的概要设计 19
4.1 整体架构设计 19
4.1.1 MSS 发报机 19
4.1.2 MSS 比对工具 21
4.2 功能设计 22
4.2.1 初始化 22
4.2.2 测试执行 23
4.2.3 日志管理 24
4.3 本章小结 24
5 MSS 数据一致性自动化测试系统的详细设计与实现 25
5.1 主程序模块 25
5.2 通信模块 28
5.3 数据加载模块 30
5.3.1 Excel 接口配置 30
5.3.2 数据加载 33
5.4 数据发送模块 37
5.4.1 单报文发送 39
5.4.2 多报文发送 40
5.5 数据比对模块 42
5.6 本章小结 43
6 MSS 数据一致性自动化测试系统的系统测试 44
6.1 测试目标 44
6.2 测试环境与配置 44
6.3 测试方法 44
6.3.1 功能性测试 45
6.3.2 非功能性测试 47
6.4 本章小结 48
7 结论 49
参考文献 50
致 谢 51
附 录 52


1 引言

本章是该篇论文的引言部分,主要介绍论文项目 MSS 数据一致性自动化测试系统的项目背景、项目意义、项目开发中的难点、项目的特色以及论文作者在开发中的主要工作,最后将阐述该毕业设计论文的组织结构。

1.1 论文的背景与意义

本节内容将介绍论文项目的背景以及意义,重点介绍该论文项目产生的背景以及该项目能够产生的实际意义。

1.1.1 论文的背景

数据测试是地铁信号系统软件测试中的一个重要环节,是对地铁信号系统正确性和健壮性的重要验证,是保证地铁安全运行的重要手段。由于轨道交通信号系统的特殊性,其对系统安全性的把控非常严格,对数据每个阶段的一致性也有着严格的要求。
MSS(Maintenance Support System,维护支持系统)是轨道交通信号系统中的一个子系统,收集来自各个信号子系统发出的数据,经解析之后发送到大数据平台,为了保证原始数据与解析后数据的一致性,测试人员需要对解析前后的数据进行数据测试,确保其一致性。
传统的工程测试阶段,一方面,现有数据主要由人工制作,会导致大量的错误数据出现,数据的错误只能借助程序调试排查,但是这种排查方式会消耗大量的人力,并且效果不是很好。同时由于现有数据测试需要借助平台,但随着项目增多,出现多项目并行测试,平台缺口大,做不到一个项目一个平台,而且使用平台验证数据存在测试效率低,数据覆盖率不高等缺点;另一方面,平台调试仅针对了功能的可用性,但对于线路中各数据的正确性主要由工程阶段的各项测试来检验,目前各工程项目的工程数据测试主要依靠动态的执行依赖数据的功能场景来验证对应的数据,由于工程线路数据量比较大、依赖数据的功能场景复杂,进行数据测试时都需要投入大量的人力、物力和时间。
针对上述情况,以及结合测试自动化的思想,判断出整个自动化测试工程中的特征,选择或者自主开发出自动化测试方法,是对自动化测试的有效利用途径[1]。据此,公司提出设计开发一个 MSS 数据一致性自动化测试系统,其中包括 MSS 发报机软件以及
MSS 比对工具,能够在不需要动态运行的情况下对工程数据进行调试和测试,以减少平台调试、工程数据测试消耗的人力、物力和时间,同时提高数据的正确性。假设我们想

测试某个子系统发送到 MSS 的数据在解析前后的一致性。如果有了 MSS 数据一致性自动化测试系统,我们仅需用 MSS 发报机改变一下端口号,再将已有的数据加载并发送到 MSS 以及 MSS 比对工具便可得出结论,而不是每次都要打开所有被测子系统的远程服务器,那将会是一个费时、繁重且成本很大的测试方法。

1.1.2 论文的意义

该论文项目 MSS 数据一致性自动化测试系统,具有较高的可配置性和拓展性,能够代替人工完成一些特定的操作,总体来说具有以下意义:
(1)可代替工程数据测试中依靠动态的执行依赖数据的功能场景的测试方法,节省时间,方便快捷。
(2)可以代替人工比对数据的方式,节省人力成本,提高工作效率。
(3)可以代替人工录入测试数据的方式,避免因为人工而产生的各种数据错误等问题。
(4)系统具有较高的拓展性和可配置性,能够适应不同的需求,测试人员可根据被测的子系统自行配置参数,从而使该系统能运用于测试多个不同子系统的 MSS 数据的一致性。
(5)该系统提供了一个独立的动态库,即测试数据读取模块,在该模块的通用版本基础上,开发人员可以进行二次开发,将需要特殊处理的部分单独编写实现,使该系统具有更加广泛、强大的功能,从而解决更多的实际问题。
综上,首先,从技术层面,该项目可以完善公司系统的工程测试,配合已有的系统可构成全面的解决方案;其次,从商业层面,可以更加快速的定位数据问题,在公司项目越来越多,测试工作压力越来越大,测试人员要完成的数据测试工作越来越繁重的大环境下,以更少的人力投入,更快更有效更正确的实现数据的自动化测试。其与传统的手工测试相比较有很多突出的优点,包括缩短了测试的时间、能够完成手工测试所不能完成或者难以达到要求的测试情境、具有很大程度上的一致性和可重复性、最后便是能更好更合理的利用各种资源,包括人力资源或者物力资源[2],因此,数据一致性自动化测试系统的设计开发与实现有着很大的战略意义,即是开发数据一致性自动化测试系统能给我们带来的意义。

1.2 论文的难点与特色

本节内容将介绍该论文项目在设计和开发过程中的难点,以及该论文项目所具有的特色。

1.2.1 论文的难点

该论文项目的难点主要如下:
(1)通信连接:为了代替工程数据测试中依靠动态的执行依赖数据的功能场景的测试方法,项目需要实现代替各个子系统与 MSS 之间的通信,这其中包含着多种通信协议的实现,同时还要实现与 MSS 比对工具的通信。所以通信连接是该项目的重要组成部分之一,需要设计并保证其有效实现。
(2)动态库的实现:为了最大化的实现自动化测试,那么在实现动态库即测试数据加载模块,需要我们制定一个能覆盖最多数据的规则。测试数据的加载中,除了通用的加载方法,我们在实际测试情况下,很可能遇到一些特殊的情境,例如,由于被测子系统的不一样,或者是工程线路的特殊性,某些数据的加载不再适合通用版本,这时候就需要能够在系统整体改动不大的情况下实现特殊处理。因此我们设计将数据加载模块,即动态库模块独立出来,单独开发与封装,并在项目主体中引用,实现了项目的可拓展性和模块的相对独立性。
(3)数据比对:MSS 比对工具最终会将得到的解析前后的两个版本的数据进行比对,从而得出数据是否一致的结论,也即是我们前面做了那么多工作之后所想呈现出的最终结果。
(4)模块的独立性与可拓展性:系统在开发时需要尽量避免各个模块功能的耦合,细化每一个模块的功能,为后期开发线上平台做准备。

1.2.2 论文的特色

该论文项目的特色主要如下:
(1)具有较高的可配置性,能够根据测试人员的配置文件设定运用于不同子系统的 MSS 数据一致性测试。测试人员在使用过程中可以自行对配置文件进行配置,配置过程需要组织学习后才能掌握。
(2)该项目的整个框架由开发人员独立开发,没有使用现有的框架。该项目中的各个模块满足“低耦合、高内聚”的特点,具有较好的独立性。
(3)项目具有较好的可拓展性。例如,当项目加载 excel 中的数据转化为可测试数据的时,其功能并不局限于已编写好的加载方法,对不适用于通用模式需要特殊处理的数据的加载,可在独立出来的动态库模块进行相关特殊处理的修改与拓展。

1.3 论文的主要工作

MSS 数据一致性自动化测试系统包括两个主要部分:MSS 发报机以及 MSS 比对工具。论文作者完成了 MSS 数据一致性自动化测试系统的需求分析和架构设计,完成了
MSS 发报机部分的概要设计、详细设计和编码实现部分,完成了 MSS 比对工具部分的数据比对功能,最后对系统进行了功能性测试和非功能性测试,即性能测试。

1.4 论文组织结构

本文共分为七章,具体结构如下:
第 1 章为引言,包括论文项目的背景、论文项目的开发意义、论文项目的重点以及论文项目的特色,阐明了论文作者在此毕业设计项目中的主要工作,并且说明了该论文整体的组织结构。
第 2 章为系统开发中所用到的关键技术的介绍,其中包括对 C++的概述、Socket 的概述、Excel com 组件的概述以及动态链接库的相关概述。
第 3 章为 MSS 数据一致性自动化测试系统的需求分析,包括功能性需求和非功能性需求。划分了系统的功能模块,并介绍说明了各部分功能模块的需求。
第 4 章从 MSS 数据一致性自动化测试系统的整体架构设计以及功能设计两方面对系统进行了概要设计。
第 5 章为 MSS 数据一致性自动化测试系统的详细设计与实现。通过类图以及相关界面的设计原型图重点介绍了系统各个模块的设计与实现。
第 6 章为 MSS 数据一致性自动化测试系统的系统测试,通过典型的测试用例,对系统进行了功能性测试和非功能性测试,最后,对测试结果进行了分析和说明。
第 7 章为结论部分,对全文进行总结并对系统的进一步完善提出展望。

1.5 本章小结

本章首先对论文项目的相关信息进行了介绍,包括论文项目的背景、论文项目的意义、论文项目的难点和特色,其次介绍了论文作者所参与的工作,最后对本论文的组织结结构进行了详细的介绍说明。

2 系统相关技术介绍

本章将介绍 MSS 数据一致性自动化测试系统在整个开发过程中所采用到的主要相关技术,包括 C++语言、Socket 技术、Excel com 组件以及动态链接库等相关技术。本章将对上述技术的概念、使用范围、发展过程、以及基本的的使用方法进行介绍说明。

2.1 C++概述

从本质上分析,可发现 C++是一种在 C 语言基础上所开发出来的面向对象编程语言,它与 C 语言兼容,应用十分广泛;在与 C 的比较中,得知它们之间最大的差别就是编程思想上的不同。C 是一种面向过程的结构化编程语言,其强调程序的功能,以函数或者是功能为中心;而 C++是一种面向对象的编程语言,它支持多种编程范式--泛型编程、过程化编程和面向对象编程,其将程序设计与日常的生活经历联系起来,更为人性化和智能化。在面向过程程序设计方法中,C++继承了 C 语言提供的绝大部分功能和语法规定,并在此基础上作了不少扩充,例如 C++除了支持基本数据类型外还支持一些高级数据结构,如 C++的输入输出、字符串和向量、有默认参数的函数字符串变量、函数原型声明、内联函数等。基于对象的程序设计是以对象和类为基础的,并在此基础上利用继承机制和多态性,面向对象的程序设计的操作就是围绕着对象进行的。并且为了实现通用编程,用模板进行编程使算法独立于数据类型的这一思想广泛应用在标准模板库中[3]。最新的正式标准 C++在 2014 年 8 月 18 日发布。
C++有如下的特点:
(1) C++设计为静态类型、与 C 同样高效并且为可移植的“混合体”程序设计语言;
(2) C++设计广泛支持多种程序设计风格,例如,面向对象程序设计、资料抽象化、泛型程序设计、程序化程序设计;
(3) C++设计不需要复杂的程序设计相关环境;
(4) C++语言比较灵活,具有结构化控制语句、运算符的数据结构丰富、程序执行效率高,并且同时具有高级语言以及汇编语言的优点,相比较于其他语言,它可以直接访问物理地址,而在与汇编语言进行比较时又具有良好的可移植性与可读性;
综上所述,C++语言的主要特点表现在两个方面,一个方面是兼容 C,另一个方面是支持面向对象的编程方法。它保留了 C 的高效、简洁的类似汇编语言等的特点,对 C的类型系统进行了改革的扩充,也即是既可以进行 C 语言时期所广为流行的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,并且还可以以继承和多态为特点进行面向对象程序设计,且能完善以模板为特点的泛型程序设计,所以 C++

是一种混合型的程序设计语言,它更为应用广泛,可以采用不同的程序设计方法,达到各种编程目的,C++的编译系统能检查出更多的类型错误,且比 C 更为安全。

2.2 Socket 概述

Socket 是由传输层所提供的网络进程通信接口。它封装了通信协议族系的不同、同一族系传输层不同协议的差别。用户通过为 Socket 机制选取不一样的参数,使 Socket 机制支持不同族系的通信协议或者同族通信协议中不同质量要求的协议,比方说 UDP 或者 TCP[4]。Socket 又被称为"套接字",英文中的原意是“插座”,它是进程之间通信的抽象连接点,是一个通信链的句柄,用于描述 IP 地址和端口,并用来实现不同计算机或虚拟机之间的通信。就如同它的英文原意“插座”一样生动,现实生活中的电话就是 Socket在计算应用中一个很形象的例子,人们通过两部电话就可以实现彼此间的联系,在计算机中,正是通过 Socket 使两个程序间达成通信,而一个 Socket 就如同一部电话。
Socket 是 Internet 网络编程通用的 API,在不同的操作系统下对应有相应的实现版本,也许会存在细节上的差异,但 Socket 通讯模型基本是一致的。Socket 是应用层与
TCP/IP 协议族通信的中间软件抽象层,是一组接口。Socket 和 ServerSocket 类中封装了实现 Socket 通信的主要方法, 通信过程中有两个关键方法 getInputStream() 以及
getOutputStream(),前者得到一个输入流,后者得到一个输出流。客户与服务器可调用各自的 getInputStream()和 getOutputStream()方法,实现服务器与客户端一对一的流式传输
[5]。
根据连接启动的方式以及本地套接字要连接的目标,套接字之间的连接过程可以分为三个步骤:服务器监听,客户端请求,连接确认。
(1)服务器监听:是服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态。
(2)客户端请求:是指由客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址和端口号,然后就向服务器端套接字提出连接请求。
(3)连接确认:是指当服务器端套接字监听到或者说接收到客户端套接字的连接请求,它就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给客户端,一旦客户端确认了此描述,连接就建立好了。而服务器端套接字继续处于监听状态,继续接收其他客户端套接字的连接请求。
接下来将具体介绍用 Socket 实现基于 TCP 和 UDP 的原理。Socket 有两种主要的操作方式:一种是面向连接的,另一种是无连接的。面向连接的 Socket 操作就相当于日常生活中用到的电话,当两个人通话时两者之间必须建立一个连接,所有的事件在到达时

的顺序与它们出发时的顺序是一样的,面向连接的 BSD UNIX Socket 的工作流程如图 2-
1 所示。
图 2-1 面向连接的客户机/服务器工作流程图
使用哪种操作模式应由应用程序的需要来决定。假如可靠性更为重要的话,用面向连接的操作会更好一些。比如文件服务器需要它们数据的正确性和有序性,假如一些数据丢失了,系统的有序性就会丢失。还有一些服务器它们间歇性地发送数据块,如果数据丢了的话,服务器并不想再重新发送一次,因为当数据到达的时候,它很可能已经过时了,也即是丢失了有序性。同时确保数据的正确性和有序性需要额外的内存消耗,额外的费用也将会导致系统回应效率的降低。
相反,无连接的 Socket 操作就像是一个邮件投递,多个邮件可能到达的顺序与出发时的顺序不一样。无连接的操作使用数据报协议。一个数据报是一个独立的单元,它包含了一次将要投递的所有信息。可以把它想象成一个信封,它有要发送的内容和目的地址。这个模式下的 Socket 不需要连接一个目的的 Socket,它仅仅只是简单地投出数据报。无连接的操作是高效且快速的,但是顾此失彼,它的数据的安全性却不佳。面向无连接的 BSD UNIX Socket 工作流程如图 2-2 所示。


图 2-2 面向无连接的客户机/服务器工作流程图
SOCKET 技术的方便实用,不仅可运行在 Windows 系统中,也可运行在 Unix 系统中,为不同平台间的应用程序间通信提供了良好的技术保障。一般,在 Internet 上的主机运行了多个服务软件,并且同时提供几种服务,每种服务分别都打开一个 Socket,并绑定到一个端口上,不同的端口对应于不同的服务。客户软件通过使用不同的端口号,就可以得到不同的服务。

2.3 Excel com 组件概述

Excel com 是微软提供的用以实现对 excel 文件进行相关操控的组件。其大致可以有如下优点:提供了完整的 Excel 操控能力。可以方便的进行复杂操作;提供了对 Excel 文件的底层操作,工作效率高;和 VBA 方式相比可以脱离特定的 Excel 文件进行使用。
微软的 Excel 对象模型包括了 128 个不同的对象,从矩形,文本框等简单的对象到透视表,图表等复杂的对象。Excel 的对象模型是层次组织结构[6],集合作为对象的容器,是一组属于同一类型的对象或者相关对象的集,如图 2-3 所示。


图 2-3 Excel 对象模型图
下面简单介绍一下其中最重要,也是用得最多的四个对象。
(1) Application 对象:
Excel Application 对象表示 Excel 应用程序本身。Application 对象公开了大量有关正在运行的应用程序、应用于该实例的选项以及在该实例中打开的当前用户的对象的信息。
(2) Workbook 对象:
Workbook 类表示 Excel 应用程序中的单个工作簿。Visual Studio Tools for Office 通过提供 Workbook 类(使用该类可以访问 Workbooks 集合的所有成员)以及数据绑定功能和附加事件来扩展 Workbook 类。
(3) Worksheet 对象:
Worksheet 对象包含于 Workbook 对象,表示一个 Excel 工作表。
Excel 提供 Sheets 集合作为 Workbook 对象的属性,但是 Excel 中没有 Sheet 类。相反,Sheets 集合的每个成员都是一个 Worksheet 对象,或者是一个 Chart 对象。Visual Studio Tools for Office 提供 Worksheet 宿主项,并在创建项目时创建三个实例:Sheet1、
Sheet2 和 Sheet3。对其中任何工作表的访问都可以通过 Globals 引用进行。Visual Studio Tools for Office 通过提供 Worksheet 宿主项来扩展 Worksheet 对象。
Range 对象:
Range 对象是 Excel 应用程序中最常用的对象。在能够处理 Excel 内的任何范围之前,必须将它表示为 Range 对象,并处理该对象的方法和属性。Range 对象表示一

个单元格、一行、一列、包含一个或多个单元格块(可以连续,也可以不连续)的单元格选定范围,甚至多个工作表中的一组单元格。
使用的基本流程:建立一个 Excel 进程;设置进程的界面是否可见;建立或打开一个 Workbook 对象;生成一个 Sheet 对象;设置访问区域;保存操作过程;对于要处理多个 Excel 文件的程序还需要关闭 book1 并保存修改数据;关闭 Excel 进程。

2.4 动态链接库概述

动态链接库(Dynamic Link Library 或者 Dynamic-link Library,缩写为 DLL),是微软公司在微软 Windows 操作系统中,实现共享函数库概念的一种方式,是一个包含可由多个程序同时使用的代码和数据的库[7]。这些库函数的扩展名是.dll、.drv(旧式的系统驱动程序)或者.ocx(包含 ActiveX 控制的库)。在 Windows 中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,放置于系统中,即 DLL文件。当我们执行某个程序时,相对应的 DLL 文件就会被调用。一个应用程序可包含多个 DLL 文件,一个 DLL 文件也能被几个应用程序所共同使用。它是 Windows 系统的核心,也是组建对象模型(component object model,COM)技术的基础。
DLL 里面的函数不是可执行程序的一部分,是根据执行需要按需载入,DLL 是通过导出函数来实现代码共享,被导出函数和变量要在 DLL 模块头文件导出表中登记,实现了基于二进制的代码复用[8],因而在软件开发的过程中使用 DLL 具有多方面的优势:DLL 的编制与具体的编程语言和编译器无关;有助于节省内存;有助于资源共享和应用程序的本地化;有助于促进模块式应用程序的开发;扩展应用程序的特性;有助于解决平台之间的差异。动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一个 DLL 文件中,该 DLL 包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。DLL 还有助于共享数据和资源。多个应用程序可同时访问内存中单个 DLL 副本的内容。
在 VC 中进行基于 DLL 的混合编程时需要遵守变量和过程的命名约定、堆栈的调用约定、不同语言生成的子程序之间参数传递的约定,这三种约定构成了在 VC 中进行
DLL 编程的规范。VC 支持生成与调用 3 种 DLL,它们分别是 Non-MFC DLL (非 MFC
DLL)、MFC Regular DLL (MFC 规则 DLL)、MFC Extension DLL (MFC 扩展 DLL)。其各自特点如表 2-1 所示。

表 2-1 VC 支持的 DLL 类型与特点
DLL 类型 特点

Non-MFC DLL 不采用 MFC 类库结构,其导出函数为标准的 C 接口,能被一般程序所调用
MFC Regular DLL DLL 的内部使用 MFC,但是其与应用程序的接口不能是 MFC
相关的类型
MFC Extension DLL DLL 的内部使用 MFC,与应用程序的接口可以是 MFC,但只能被使用 MFC 的应用程序所调用
在 VC 中有两种 DLL 的调用方式,可针对不同情况使用,第一种为静态调用或者隐式调用,在编译和链接应用程序时提供头文件和导入库文件,这样链接器将向系统提供加载 DLL 所需的信息,并在加载时解析需要调用的 DLL 函数的位置。应用程序像调用本地函数一样对 DLL 中的函数进行调用;另外一种则为动态调用或者显式调用,应用程序调用 LoadLibrary 函数或 LoadLibraryEx 函数以在程序运行时加载 DLL。成功加载 DLL 后使用 GetProcAddress 函数获得要调用的 DLL 函数地址。在使用动态调用时,无需使用导入库文件[9]。使用动态链接库可以更为容易地将更新应用于各个模块,而不会影响该程序的其他部分。
综上,其有以下的优点,扩展了应用程序的特性、简化了软件项目的管理、有助于节省内存、可以用许多种编程语言来编写、有助于解决平台差异、有助于资源共享、有助于应用程序的本地化、可以用于一些特殊的目的。Windows 使得某些特性只能为 DLL所用。

2.5 本章小结

本章主要介绍了该系统在开发过程中使用的关键技术。系统主要采用 C++语言开发,运用了 Socket、excel com、动态链接库等相关技术。本章对这些技术的基本概念、使用场景进行了介绍。

3 MSS 数据一致性自动化测试系统的需求分析

本章将通过分析系统的构成和功能,从而得到系统的整体需求,并对系统的工作流程进行说明。然后将根据系统的整体业务流程划分系统的功能模块,并对作者所参与的系统的模块进行详细的功能性需求分析,最后对其的非功能性需求进行分析。

3.1 系统构成

MSS 数据一致性自动化测试系统在设计之初就划分为了两个部分,一个部分是MSS发报机,负责配置数据、加载数据、通信连接、发送数据等功能;另一个部分是 MSS 比对工具,负责将接收到的解析前后的数据进行比对,得出结果,其系统构成如图 3-1 所示。

图 3-1 系统构成图

3.1.1 MSS 发报机

MSS 发报机主要负责 MSS 数据一致性系统的前期准备工作,包括数据配置、数据加载、通信连接以及数据发送等。用以减轻之前工程测试中繁重耗时、成本高的远程通信方式,同时减少人工对每次数据的录入,用以实现自动化测试。

3.1.2 MSS 比对工具

MSS 比对工具则用于实现最为直接的比对功能,用以验证数据的一致性的问题。

3.2 系统整体功能概述

该系统为 MSS 数据一致性自动化测试系统,其主要功能为将准备好的数据加载为可测试数据,并将指定的可测试数据发送到 MSS,经解析后回收,对比解析前后数据一致性,得出最终测试结果。其适用的场景如下:
(1)数据准备人员按照开发人员制定好的 excel 配置说明配置好数据;
(2) MSS 发报机将 excel 数据加载为可测试数据;
(3) MSS 比对工具要求 MSS 发报机发送指定数据;
(4) MSS 发报机将指定数据同时发送到 MSS 比对工具以及 MSS;
(5) MSS 比对工具回收经 MSS 解析后的数据,将解析前后数据比对得出结论。其功能流程描述如图 3-2 所示。

图 3-2 功能流程描述图
该系统在得到解析前后数据后,除了进行比对、得出结论等功能外,还需要支持功能的拓展,即可以在系统上线后按照测试人员的测试需求对系统的功能进行添加。该系统在启动后,无需测试人员干预,将自动运行。测试人员与系统的交互主要体现在系统的配置上,测试人员可以通过设置端口或者改变相应的配置文件以符合对不同数据的测试需求,该部分的用例图如图 3-3 所示。



图 3-3 系统配置用例图


3.3 系统功能性需求

随着信息技术的发展,当前软件的规模正在急剧增长,这使得软件需求工程技术越发重要,好的需求分析要求需求分析要正式,迅速和自动,避免工程师和用户之间的误解,并节省大量的时间和人力[10]。
根据系统的结构、整体功能和业务流程,将该系统划分了如下功能点,分别是 Excel接口配置、可测试数据加载、通信连接、数据发送、数据比对、系统管理以及产品配置。本节将详细介绍各个功能点的功能性需求。


[url=http://www.biye114.com/html/1478.html][B]MSS数据一致性自动化测试系统的设计与实现[/B][/url]
Copyright © 2007-2013 完美毕业网. All Rights Reserved .
页面执行时间:62.50000 毫秒
Powered by:完美毕业网 http://www.biye114.com