测试试述一种用于自动化测试的脚本语言的设计与实现

vps测试脚本  时间:2021-05-03  阅读:()

试述一种用于自动化测试的脚本语言的设计与实现

文档信息

目录

1脚本语言cript的特色

11语法风格严谨、简便

12高度动态化的面向对象技术

13与被测试程序的无缝交互

14多任务、高并发的协程机制

15支持库依赖程度低、可跨平台

2嵌入式测试脚本语言cript的实现

21预处理

22字节码编译

23主控程序与被测系统交互

24解释执行

31被测试系统简介

32测试任务

正文

摘要对软件进行经常性、规范的测试是保证软件质量的重要手段灵活地使用脚本技术能够使软件测试更加的自动化软件测试的脚本化在大大的减少测试人员的工作量的同时使整个测试项目更易被维

护测试用的脚本语言具有较好的可移植性使脚本代码具有很强的复用性与通用性所以设计实现了一种自动化测试的脚本语言cript并对该语言的设计思路、实现及其应用加以阐述

关键字 自动测试脚本语言编译器

0引言

近年来软件行业蓬勃发展软件的规模急剧增大对软件的测试所需要的工作量越来越大操作也越来越繁琐因此建立一种易维护、可复用、高度自动化的测试策略的需求也越来越迫切

在测试中使用脚本技术是实现软件测试的自动化的有效手段以脚本代码的形式描述测试用例、测试步骤较之测试人员手动实现更为规范、精确脚本语言的宿主虚拟机能够反复地、高速地执行脚本代码极大的减少了测试人员的繁冗操作提高了测试工作的复用性与可维护性

目前市场出现了多种具有脚本技术的软件自动化测试框架或平台但是所附带的脚本语言体系简单特性单一该文将对作者所设计的一种具有丰富特性的脚本语言加以阐述

1脚本语言cript的特色

11语法风格严谨、简便

cript语法风格接近C/C++但是比其二者语法要求更加规范严谨同时充分的考虑到了测试人员在编写代码时对于简便快捷的要求增加了譬如foreach  quote之类的“语法糖” 这些“语法糖”仅存在于预处理期之前故而在提高便携性的同时不会降低脚本的执行效率

12高度动态化的面向对象技术

大部分现代化高级编程语言都实现了OO object oriented特性 OO技术能够提供对代码非常好的组织能力 cript语言为了方便测试人员组织测试项目 同样加入了OO特性但没有照搬模仿诸如J AVA 、 C++的O O实现方式 JAV A、 C++等高级语言在编译阶段就已确定类型的结构及继承体系而cript的面向对象是高度动态的在编译阶段仅仅确定了对象成员的元数据但是并没有对类型以及操作方式做任何推断所以测试人员非常自然的在编程时享受多态、函数闭包的好处

13与被测试程序的无缝交互cript脚本引擎会在测试开始之前建立一个通信管道同时建立一个被测试程序的接口映射表能够将被测试程序的接口符号绑定到测试脚本之中可以不通过其他渠道直接驱动被测试软件

14多任务、高并发的协程机制

为了实现测试操作的多任务性 引入了协程机制协程不同于一般的例程或者是函数它能够被人为的制约执行流程或挂起在cript中加入了yield关键字来挂起当前的任务执行后续的任务

15支持库依赖程度低、可跨平台

为了方便测试不同的操作系统下的软件脚本引擎本身被设计为高度跨平台其具体实现使用遵循的AI -C 89标准的C语言编码完成cript仅仅依赖与少量的标准库这使脚本语言引擎本身可以在绝大部分部分的平台上能够顺利编译成功目前 已经windows xp或者更高版本 、 linux kernel26以上 、 Mac OS X测试编译通过执行情况良好

2嵌入式测试脚本语言cript的实现cript脚本引擎对脚本代码执行的操作总体而言分为四个步骤“预处理+字节码编译+主控程序与被测系统的交互+解释执行” 每个步骤都使用了一个或几个模块 以下将阐述全部步骤以及所使用的模块的实现细节

21预处理

预处理是在程序源代码被编译之前 由预处理器Preprocessor对程序源代码进行处理这个过程并不对程序的源代码一种用于自动化测试的脚本语言的设计与实现相关范文由写论文的好帮手http: 转载

请保留 .进行剖析但它把源代码分割或处理成为特定的符号用来支持宏调用

首先 bufferloader模块将脚本代码读入缓存并将缓存的地址传给preprocessor模块该模块负责对代码文本进行预处理把不会被执行的注释消除并完成宏展开、以及将一些“语法糖”转换成规范的形式紧接着压缩空白符的数量提高接下来的词法分析速度

22字节码编译

Preprocessor将处理的结果提交给lexer_analyzer模块负责分析词法lexer_analyzer本质是一个字符串扫描器扫描器的游标不断向后扫描并获得一个子串与内置的一个词法单元类型的hash表I中的模式串进行字符串全匹配把匹配的结果以及该子串提交给语法分析器

23主控程序与被测系统交互

编译阶段完成之后虚拟机VM会与被测试的软件交互API_register模块将会寻找软件导出C/C++的函数接口的地址并与之前syntax_analyzer提供接口的字符串形式使之与编译阶段生成的符号表匹配、绑定完成接口链接VM使用pipe_holder分配一定大小的缓存默认64K来建立字符管道

24解释执行

31被测试系统简介

目标系统是一个简易的制约小车系统通过外部给定的输入制约小车进行直行、旋转、并根据摄像头输入的数据捕捉障碍物、测距使小车能够具有一定的避障能力

32测试任务

测试人员通过脚本输入一组障碍物的数据 同时通过该系统提供的接口函数截获系统所响应的序列并记录使测试人员能在模拟的环境下测试该代码的性能与效果

结束语

该文给出了一个用于程序自动化测试的脚本语言的设计、实现及其实际测试举例现在这个脚本语言已经成为我们工程中的一个重要技术进一步的工作是不断的提供新的调度操控方式并提供可视化的编辑工具方便测试人员使用

参考文献

[1]Alfred V Aho  Monica S lam Ravi Sethi  et alCompile Principles Techniques and Tools Second Edition[M]赵建华郑涛戴新宇译北京机械工业出版社 2009229-273

[2]Newell A Shaw J C Programming the logic theorymachine[C] Proc Western Joint Computer Conference 1957

[3]Ullman J D Fast algorithms for the elimination ofcommon subexpressio Acta Inf 1973 2  191-213

[4] [ZK #]Alfred V Aho Monica S lam Ravi Sethi et alCompile Principles Techniques and Tools Second Edition[M]

[5]Bebenita M brandner F Fahndrich M et al Tillmannand H Venter SPUR a trace-based JIT compiler for CIL[C] InProceedings of ACM conference on Object-Oriented

Programming Systems Languages and Appli cat io OOPSLA

2010

708-725

[6]赵斌飞刘磊测试脚本自动生成器的设计与实现[J]计算机科学 2008 6

[7]Jeremy Siek Philip Wadler Threesomes with andwithout blame In Script to Program Evolution STOP  2009

责任编辑李家云

“试述一种用于自动化测试的脚本语言的设计与实现”文档源于网络本人编辑整理。本着保护作者知识产权的原则仅供学习交流请勿商用。如有侵犯作者

权益请作者留言或者发站内信息联系本人我将尽快删除。谢谢您的阅读与下载

HaBangNet(6.95美元/月)美国vps 5TB流量/德国vps 香港双向CN2 GIA VPS

HaBangNet支持支付宝和微信支付,只是价格偏贵,之前国内用户并不多。这次HaBangNet推出三个特价套餐,其中美国机房和德国机房价格也还可以,但是香港机房虽然是双向CN2 GIA线路,但是还是贵的惊人,需要美国和德国机房的可以参考下。HaBangNet是一家成立于2014年的香港IDC商家,中文译名:哈邦网络公司,主营中国香港、新加坡、澳大利亚、荷兰、美国、德国机房的虚拟主机、vps、专用...

数脉科技8月促销,新客减400港币,BGP、CN2+BGP、阿里云线路低至350元

数脉科技(shuhost)8月促销:香港独立服务器,自营BGP、CN2+BGP、阿里云线路,新客立减400港币/月,老用户按照优惠码减免!香港服务器带宽可选10Mbps、30Mbps、50Mbps、100Mbps带宽,支持中文本Windows、Linux等系统。官方网站:https://www.shuhost.com* 更大带宽可在选购时选择同样享受优惠。* 目前仅提供HKBGP、阿里云产品,香港...

LayerStack$10.04/月(可选中国香港、日本、新加坡和洛杉矶)高性能AMD EPYC (霄龙)云服务器,

LayerStack(成立于2017年),当前正在9折促销旗下的云服务器,LayerStack的云服务器采用第 3 代 AMD EPYC™ (霄龙) 处理器,DDR4内存和企业级 PCIe Gen 4 NVMe SSD。数据中心可选中国香港、日本、新加坡和洛杉矶!其中中国香港、日本和新加坡分为国际线路和CN2线路,如果选择CN2线路,价格每月要+3.2美元,付款支持paypal,支付宝,信用卡等!...

vps测试脚本为你推荐
2019年全省职业院校学生技能大赛santeeset229.254route支持ioseaccelerator使用apmsevr中eAccelerator显示NO是什么问题win10关闭445端口win10家庭版怎么禁用445端口win7关闭135端口win7系统 怎么关闭135 445 端口 修改注册表 创建IP安全策略 也试过 就是关不了 还望高手指教firefoxflash插件安装火狐浏览器后,老是提示安装flash player?联通合约机iphone5联通苹果5合约机套餐费winrar5.0win7 64位在运行winrar安装程序时,提示winrar停止工作。
域名注册信息查询 万网域名解析 域名解析文件 便宜域名 国外php主机 rackspace cloudstack wdcp 湖南服务器托管 789电视 泉州电信 免费吧 cn3 昆明蜗牛家 如何安装服务器系统 支持外链的相册 联通网站 海外空间 web应用服务器 免费个人主页 更多