******************************************************************************************
关注凡猫学院:加微信+17031115530,拉测试微信群交流
关注凡猫学院:加微信+17031115530,拉测试微信群交流
*******************************************************************************************
微信+17031115530,拉测试微信群交流
一种高效的跨进程MVC 架构
VcSmith、VcTester、VcAuto 基同于一体系架构,功能层次划分清晰,很好的实现了组件重
用,使用一种跨进程MVC 结构,保证系统具良好的伸缩性,构造出一种软性的、脚本化的
缓冲层,让调测变得很便利而高效。
VcTester 分层架构
一个高效的软件开发系统应有良好的分层架构,使各层能采用最恰当、最高效的语言进行开
发,层之间接口除了要简洁、清晰、便于理解,还应为调试与自动化测试提供便利,良好的
分层架构还需适应经常性软件重构,便于产品功能拓展延伸,并支持大幅度代码重用或组件
重用。
VcSmith、VcTester、VcAuto 软件架构具备上述高效研发系统的特征。在抽象层次理解,它
可以划分4 层:最上层是终端操作层,其下依次是调测接口层、业务实现层、基础库支持层。
VcTester 系列软件采用分布式架构,由多个可执行文件构成一个协调灵活、功能拓展便利的
体系。如下图,在被测系统中驻留一个调测代理(是CSE 脚本系统),然后将被测系统中
的实例映射到调测代理,在调测试代理中可以用脚本自由模拟被测系统的行为,也即:调测
代理具备较完整的产品功能展现能力,以此为基础衍生出各种各样的调测支持功能。
用户操作终端是独立的可执行程序,它与被测系统中的调测代理通过共享内存方式建立连
接。在此连接基础上,我们封装本地过程调用(Local Procedure Call,LPC)系统,之后再
微信+17031115530,拉测试微信群交流
在LPC 之上构造跨进程MVC 系统,使界面操作与底层业务实现分离,并建立柔性互动,
让操作接口具备良好的可扩展性与可测试性。
基于这一架构,VcTester 系列软件可以方便的支持多个用户终端,包括:控制台终端(CON)、
图形界面终端(GUI)、表格驱动终端(TABLE),也能方便的接入一个远程通信代理来支
持远程诊断接入。
在终端操作层与其下业务实现层之间设有调测接口层,这一层是天然的脚本解释执行形式,
调试、测试、诊断都方便的支撑起来,且能快速实现自动化作业。
SRPC 组件接口
VcTester 系列软件的各个进程主要通过共享内存方式实现通信,这是一种端到端、总线式结
构,各个端口都挂接在共享内存总线上,每个端口都用它的注册名标识(比如VcSmith 与
VcTester 的被测系统缺省注册名是CseClient,用户界面注册名是CseWin),各端口在底层
通信层次是对等的,无client、server 之分,而在此之上叠加特定框架结构(比如MVC)后
才有client 与server 之分。
VcTester 采用CSE 提供的共享内存架构,即SRPC 组件(Simple Remote Procedure Call),
之所以称RPC,是因为该组件既支持LPC,也支持RPC,两者基于同一架构,远程通信插
件作用于LPC,就成为RPC,所以统称为RPC。SRPC 提供两类远程调用,一类是exec 调
用,另一类是eval 调用,前者是异步模式,不要求等待返回结果,后者是同步模式,等待
返回结果,除了远程调用,SRPC 还提供建立(或停止)通信连接、查看连接端状态等辅助
功能。
用户可以将CSE 的SRPC 组件引入到自己的产品中,因为CSE 是共享软件,SRPC 组件允
许用于二次发布,另外,SRPC 提供多种接口,包括C/C++、Delphi、CSE、Python、VBA
等,方便接入各个系统,在SRPC 之上还提供一些封装(如跨进程MVC)。
跨进程MVC 结构
将用户操作终端与业务逻辑实现分离到两个进程后,我们构造一种跨进程的MVC 结构,如
下图,其中Module 提供业务逻辑实现,在驻留于被测系统的调测代理中实现,View 与
Controller 在用户界面实现。有关CSE 的跨进程MVC 实现细节可到CSE 官方网站查阅相关
微信+17031115530,拉测试微信群交流
资料。
各个层次重用
因为VcTester 系列软件具备良好框架结构,所以能实现大幅度代码重用或组件重用。高度
重用是我们研发过程的显著特色,它让我们在维持低成本生产的同时,能快速推出产品。
在基础库支持层(在调测代理中),我们重用CSE 脚本语言(这是一款开源的共享软件)、
VC 调测组件接口(既支持映射系统,也支持我们集成界面的单步调试)。
在调测接口层与终端操作层,我们重用了SRPC 与跨进程MVC 组件,在GUI 界面重用了
CVP 插件系统、SynEditV2 控件(用于构造脚本编辑器、C/C++编辑器),我们还重用VC
编译功能,提取编译结果信息来实施更精准、更智能的C/C++语言分析。
当然,重用不限于源码或组件,我们在构筑VcTester 系列工具形成一套技术体系与调测理
念的过程中,方方面面都体现重用思想。被测实体映射到脚本,让脚本系统具备对等的表现
能力,是一种重用;调试驱动脚本与测试驱动分享,调试操作生成测试脚本,也是一种重用;
单元与集成测试、接口测试、自动化测试、诊断测试各阶段工作成果可重用;本系列工具的
IDE 环境提供强大的外部工具集成功能,象Pclint、VSS、VLD、ANT、SourceMonitor、Koders
等工具都能方便集成进来,当然也是一种重用;再如,采用Excel 构造表格驱动,也体现了
一种重用,否则我们要自行开发(Excel 够强大了,没必要重复发明一个轮子,再说,我们
怎么做也超不过Excel)。
就连用户学习CSE 语言,也可以高度重用。CSE 具备良好的表述能力与语言映射能力,CSE
V1.5 将引入兼容Python 的功能,任意Python 扩展模块都可重用到CSE 系统中,会用CSE
意味着你开始敲打掌握超强测试语言的大门。另外,CSE 从V1.6 开始支持混合编程,CSE
脚本能自动转化为C/C++代码,此方式可让编程效率倍升,上述SRPC 与跨进程MVC 也从
该版本开始延伸为一个高效的编程框架,用户可将它重用到自己的产品。再进一步,在CSE
V2 与V3 规划中,语言映射技术将进一步拓展,支持跨平台,支持64 位,展现文档化编程、
可视化编程、扁平化编程等理念。
******************************************************************************************
关注凡猫学院:加微信+17031115530,拉测试微信群交流
关注凡猫学院:加微信+17031115530,拉测试微信群交流
*******************************************************************************************
网友评论