基于词法分析的超链接自动测试技术与实现

2010-06-22 03:41黄茂生杨春晖
现代电子技术 2009年22期
关键词:实现设计

黄茂生 杨春晖

摘 要:为应对B/S构架应用系统和三层构架应用系统的链接测试需求,基于词法分析设计实现超文本链接自动测试,解决手工测试的不足和引进国外自动化测试工具对中文支持的局限性。通过分析超文本词法的特点,探讨超文本链接测试自动化的可行性,介绍利用该技术实现自动测试工具的总体设计、功能设计、流程设计与实现。通过在实际项目的使用和验证表明,该技术不仅可以有效提高超链接测试的覆盖率,而且有效提高了测试验证的效率和准确性,降低超文本链接的测试验证工作量。

关键词:超链接;词法分析;自动测试工具;设计;实现

中图分类号:TP393

0 引 言

随着互联网的高速发展,B/S构架特别是三层构架以其易于部署和维护性,成为绝大部分软件应用系统的首选,B/S构架应用系统和三层构架应用系统有一个共同的特点就是客户端的浏览器负责解释超文本文件,最终生成访问者看到的页面形式。页面使用的表现语言都是超文本标记语言(Hyper Text Markup Language,HTML)语言,或称为“多媒体文件语言”,超文本页面内嵌的图片、页面内的相互引用以及超文本之间的跳转等都是通过超链接来实现,这使得超文本链接数量非常庞大,也是出现Bug最多的地方,比如链接目标对象不存在、引用绝对路径链接、内嵌文件过多导致HTML文件过大下载性能下降等,因此验证链接的正确性是B/S构架应用系统开发测试的重要工作之一。

目前,常用的超链接测试技术包括手工点击测试和引进国外测试工具进行自动测试等,这些手段和技术在实际工作中都存在着不足:采用人工点击测试验证链接的正确性,其工作量巨大,且难于保证100%的覆盖,对一些因漏点击而遗留的Bug,利用人工再测试也很难100%发现。而引进和使用国外的软件测试工具实施自动测试,则存在汉字兼容等问题,这些测试工具因是国外公司开发,对中文文件名、中文标签等的支持不十分完善,容易出现漏报和误报等现象,未能很好解决超文本页面开发设计面临的测试验证问题。

1 超文本词法特点及自动化测试技术

1.1 超文本词法特点分析

B/S构架应用系统和三层构架应用系统都是由客户端的浏览器负责解释超文本文件,最终生成页面形式,如图1所示。它的表现语言HTML 是一种描述文档结构而不描述实际的语言,用HTML语言书写的页面是普通的文本文档(ASCII),不含任何与平台和程序相关的信息,可以被任何文本编辑器读取,文字和图形可以同时在同一页面中显示,在Internet/ Intranet上,客户端的浏览器负责解释这些超文本,最终生成访问者看到的页面形式。HTML文档包含两种信息:一是页面本身的文本;二是表示页面元素、结构、格式和其他超文本链接的HTML标记,是基于标准通用标记语言(SGML)而开发的,它通过各种各样的“标记”向浏览器说明页面外观、文字格式、超级链接目标、图片属性等内容。在HTML词法中,其标记按照实现的功能大致上可以分为:框架标记、分隔标记、排版标记、链接标记等,如表1所示。

通过对HTML语言标记进行分析和分类,与链接相关的标记主要包括两大类:

(1) 链接类。主要实现网站链接、FTP链接、News链接、BBS链接、电子邮件链接、标签链接等功能,其使用的标记主要是href;

(2) 应用类。主要实现图像引用与嵌套、页面嵌套引用、文字应用等,包括插入图像、背景图像、文字引用等,其使用的标记主要包括src,background和cite。

标记类别标记功能

架构标记设定同一个窗口页面由多个网页一起组成

分隔标记设定水平分隔线

排版标记网页版面编排,文字置左、置中、置右等

字体标记设定标题标签、设定字体大小标签、字型变化标签、文字颜色设定。

[BHDWG4.5mm]文字标记设定文字字型设定、特殊字元、设定文字内定值大小等

[BH]影像标记设定在网页中插入图像,设定图像显示属性等

[BH]背景标记设定网页背景颜色或是背景图像

[BHDWG8mm]链接标记设定超链接,如网站链接、电子邮件链接、ftp链接、news链接、gopher链接、bbs链接等

[BHDWG4.5mm]表格标记在网页中如何运用和设定表格格式

[BH]序列标记设定文字序列或图形序列

[BH]表单标记制作可填写用的表单

[BH]其他技巧实现其他的功能[HJ][HT5SS]

与链接相关的HTML标记分类及其典型用法见表2所示。

1.2 链接自动化测试的实现原理

HTML文档是纯文本文档,超文本文档的组成源码具有开放性,对用户是透明的,可以由网页编辑器以及其他文本编辑软件创建。通过对超文本词法特点分析可知,超文本语言与链接相关标记的标识关键词主要为href,src,background和cite,可以通过分析HTML文件源码,查找与链接(src,href等)相关的标记,再分析提取链接标记对应的链接对象信息,然后对链接对象进行定位和分析,可以直接验证页面链接的有效性,并可以利用链接分析的信息,对页面的大小进行统计并与设定值比较,确定在特定带宽下浏览该页面所需的时间等性能指标。此外,还可以通过页面的链接关系,确定Web应用目录路径下未使用的冗余文件。因而,具备利用超文本源代码静态分析进行链接自动测试,分析其性能指标,查找冗余文件,优化Web应用服务器文件结构的可行性。

框架页面ひ用

在页面げ迦胪枷

2 链接自动测试工具的设计与实现

2.1 总体设计

基于词法分析的超文本自动测试工具由四部分组成:预处理器、链接分析器、数据库和报告生成器,如┩2所示。

(1) 预处理器。主要进行Web所在目录的目录分析、调用关系分析、词法分析和绝对[CD*2]相对路径转换。目录分析主要分析Web所在目录的目录结构和文件分析。通过目录分析得到Web所在目录的目录结构信息、各个目录的文件清单以及超文本文件清单;调用关系分析和词法主要根据超文本的词法和关键词,分析查找超文本文件的链接类和应用类链接关键词,确定超文本的调用关系;绝对[CD*2]相对路径转换主要将调用关系分析得到的调用关系路径进行“相对路径[CD*2]绝对路径”的相互转换,最后,将该阶段的预处理信息和分析结果写入数据库,作为链接分析器的输入。

(2) 链接分析器。首先,对上一阶段分析出来并经“相对路径[CD*2]绝对路径”转换的调用关系进行进一步分析,根据表2所示的HTML语言链接标记分类法,对超文本调用关系进行分类‐[11]。其次,对每个类别链接内的链接逐一进行分析,确认其链接对象是否存在,并将默认网页首页、被链接和调用文件以外的文件标记为冗余文件;最后,将分析结果写入数据库。

(3) 数据库。主要存储预处理器、链接分析器的分析和处理结果,包括Web所在目录的目录结构信息、文件清单、超文本调用关系、链接分析信息、链接缺陷标识、网页大小统计信息和冗余文件信息等。

(4) 报告生成器。分析报告生成模块从数据提取链接分析结果,按照选定的报告类型和设定的报告格式生成分析报告和打印。

2.2 功能设计

基于词法分析的超文本自动测试工具包括三个主要的功能模块:分析参数设置、超文本词法分析和分析报告生成。如图3所示。分析参数设置模块主要完成自动分析测试前的参数设置,如Web应用默认首页指定、Web应用所在的默认目录设置、设定分析所需的参数(如页面大小告警上限值、链接调用关系上限值等);超文本词法分析模块主要完成href链接、src链接、cite链接和background链接分析,并将分析结果存储到数据库中;分析报告生成模块则从数据提取链接分析结果,按照选定的报告类型和设定的报告格式生成分析报告和打印、输出。

2.3 流程设计与实现

WebSiteTest工作流程设计框图如图4所示,首先实现对用户设定参数、Web首页和根目录等进行输入和存储;然后对对设定的目录进行分析处理,列出根目录下的文件和目录结构,并对目录下的HTML文件进行词法分析;接着对分析后的链接标记进行分类,对分类后的链接标记进行字符解析、转换等预处理,然后进行链接的分析预验证,最后进行页面文件大小统计和生成不同的分析报告。

3 使用与验证

《电子行业标准全文数据库软件V1.0》(著作产权登记号:2002SR2155)是典型三层构架的B/S数据库应用系统,包含超过一千多个电子行业常用标准全文,数据层用SQL Server存储标准全文文本内容和目录信息。中间层(业务层)利用IIS+ASP提供标准目录信息、标准全文内容查询和标准内容的读取,利用ASP读取数据库内的标准页面内容并转换成浏览器可以显示的HTML文件。应用客户端通用浏览器通过Internet或Intranet访问Web服务器,完成查询信息的提交、查询结果以及标准文本内容的显示等。

《电子行业标准全文数据库软件V1.0》内包含了海量的超文链接。在数据库软件的设计与实现过程中,采用了多种技术手段进行超文本链接验证,包括人工测试和引进国外先进的软件测试工具等,但存在测试覆盖率不全、测试工具漏报、误报等问题,如表3所示。测试实施方法存在的问题[HJ0]

手工测试工作量大,测试工作量占项目工作量约45%;

测试效率低;

测试覆盖不全,存在漏测现象

引进国外的测试すぞ呤凳┎馐怨ぞ叻延冒汗;

对中文文件名、标签名支持不完善,导致测试漏报、误报现象。

为解决上述面临的问题,通过基于超文本词法分析,设计与实现了超文本自动测试工具WebsiteTest V1.0(著作产权登记号:2009SR06358),不仅保证了测试验证的准确性和100%的测试覆盖率,而且大大提高了测试的效率,使超文本链接的测试验证工作量占项目工作量的比例从原来人工测试的40%~45%降低为3%~5%,此外,利用该工具提供的性能分析报告和冗余文件报告(见图6),对数据库系统和Web服务器文件系统进行的性能优化,取得了良好的效果,也为标准数据库的升级和扩充提供了极大的便利。

4 结 语

经过实际项目应用表明,基于超文本词法分析,设计与实现专用超链接测试验证工具是可行和有效的。不仅提高了链接测试的覆盖率,而且有效提高了测试验证的效率和准确性,降低超文本链接的测试验证工作量。此外,超链接测试验证工具的功能进一步拓展后,对基于ASP的网站的测试验证,也可以通过对ASP产[LL]生的浏览器可以浏览的HTML源码文件进行分析验证,具有良好的应用前景。

参 考 文 献

[1][美]罗宾斯.Web设计技术手册(影印版)[M].3版.南京:东南大学出版社,2006.

[2]W3C Recommendation.HTML 4.0 Specification[S].1998.

[3]陈绍英,夏海涛,金成姬.Web性能测试实战/测试实践丛书(测试实践丛书)[M].北京:电子工业出版社,2006.

[4][美]纽恩.Web应用测试/软件工程丛书[M].2版.周志荣,译.北京:电子工业出版社,2006.

[5]叶青.完全手册HTML+CSS+JavaScript实用详解[M].北京:电子工业出版社,2008.

[6][美]肯尼迪.HTML&XHTML;权威指南[M].6版.张洪涛,邢璐,译.北京:清华大学出版社,2007.

[7]张金霞.HTML网页设计参考手册[M].北京:清华大学出版社,2006.

[8]刘智勇.HTML+CSS开发指南[M].北京:人民邮电出版社,2007.

[9]郭敏华,张红,甘志强,等.一种支持多脚本语言的测试数据分离方法[A].国防科技工业软件评测技术交流会论文集[C].2007.

[JP2][10]黄萍,郝建材.用代码静态分析技术提高软件代码质量[A].国防科技工业软件评测技术交流会论文集[C].2007.[JP]

[11]石倩,陈荣,鲁名羽.基于规则归纳的信息抽取技术系统实现[J].计算机工程与应用,2008,44(2):166[CD*2]170.[HJ0][HJ]

作者简介 黄茂生 男,1973年出生,广东肇庆人,高级工程师。主要研究方向为软件测试、软件可靠性。

杨春晖 女,1965年出生,湖南洞口县人,硕士研究生,高级工程师。主要研究方向为软件质量工程、项目管理。

猜你喜欢
实现设计
何为设计的守护之道?
《丰收的喜悦展示设计》
瞒天过海——仿生设计萌到家
设计秀
有种设计叫而专
信息系统安全评价系统设计及实现
高校声像档案数字化管理的实现路径
办公室人员尚需制定个人发展规划
苏州信息学院教务管理系统的设计与实现
浅析铁路通信传输的构成及实现方法