(计算机应用技术专业论文)中文linux标准符合性测试方法的研究.pdf_第1页
(计算机应用技术专业论文)中文linux标准符合性测试方法的研究.pdf_第2页
(计算机应用技术专业论文)中文linux标准符合性测试方法的研究.pdf_第3页
(计算机应用技术专业论文)中文linux标准符合性测试方法的研究.pdf_第4页
(计算机应用技术专业论文)中文linux标准符合性测试方法的研究.pdf_第5页
已阅读5页,还剩50页未读 继续免费阅读

(计算机应用技术专业论文)中文linux标准符合性测试方法的研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 摘要 目前,软件测试技术的研究领域虽然取得了一些成果,但在具体的开发环 境下开发的特定领域的软件系统应采用怎样的测试方法对其进行全面的、完整 的测试,仍没有具体的标准可以遵循。软件的标准符合性测试和基本的软件测 试又有某些不同,软件的标准符合性测试注重的是被测试的软件是否实现了标 准所要求的功能并达到了规定的性能指标,而且以采用黑盒子测试为主,一般 在整个软件开发过程完成之后由第三方进行的测试。 课题研究的目的在于根据软件测试中的基本方法,提出在面向l i n u x 系统 的具体可行的系统测试方法,提供软件测试理论在实际测试中应用方法和测试 用例。 本项研究的主要贡献在于:1 ) 基于中文l i n u x 系统标准,提出了制定检测 规范的基本原则与方法。2 ) 通过分析t e t w a r e 测试框架,在上面实现针对中文 l i n u x 标准中中文处理函数的测试用例,这种方法可以用于大规模开发测试用 例,减轻测试用例的开发难度,保证测试的完整性。3 ) 实现了一套中文输入法 的测试工具,通过双向模拟被测试模块的运行环境的方法,为被测试模块的运 行提供了完整的运行环境,从而为复杂应用程序的测试提出一种可行的方法, 保证了测试的完整性。 关键词:符合性测试;l i n u x ;标准;输入法;中文处理函数 a b s t r a c t a b s t r a c t a tt h ep r e s e n tt i m e ,w eh a v eb e e na c q u i r e ds o m ea c h i e v e m e n to n t e c h n o l o g yo fs o f t w a r et e s t i n g ,b u ta b o u td e v e l o ps p e c i f i cf i e l ds o f t w a r e s y s t e mi n c o n c r e t ed e v e l o p e ds e t t i n g ,w h a tm e t h o ds h o u l db eu s e dt o c o m p l e t e l ya n dw h o l l yt e s ts o f t w a r es y s t e m ,t h e r ei s n ts p e c i f i ci d e a t of o l l o w s p e c i f i c a t i o nc o m p li a n tt e s td i f f e r e n tf r o mb a s e ds o f t w a r et e s t , s p e c i f i c a t i o nc o m p h a n tt e s te m p h a s i z e sp e r f o r m a n c ea n di tu s eb l a c kb o x t e s ti nc h i e f i tw i l lb et e s tb yt h et h i r dp a r t ya f t e rc o m p l e t ew h o l e d e v e l o p m e n t ,s oi ti ss i m il a rt os y s t e mt e s t t h eg o a lo fo u rt a s ki s ,b a s e do nb a s i cm e t h o do fs o f t w a r et e s t ,b r i n g u pt h es p e c i f i ca n dp r a c t i c a b l em e t h o do fs y s t e mt e s to nl i n u xs y s t e m , a n dp r o v i d ea p p l i c a t em e t h o da n dt e s tc a s eo np r a c t i c a lt e s tb a s et e s t t h e o r y a c h i e v e m e n t st h a tt h i s t a s kh a sg o ta r e :1 ) b a s eo nc h i n e s el i n u x s y s t e ms t a n d a r d ,t h i sp a p e rp r o p o s e sb a s i cp r i n c i p l e sa n dm e t h o dt o e s t a b l i s ht e s tp o l i c y 2 ) b ya n a l y z n gt h et e s tf r a m eo ft e t w a r e ,i tm a k e s t e s tc a s eo fc h i n e s ep r o c e s sf u n c t i o no nc h i n e s el i n u xs t a n d a r d t h i s i n t r o d u c e sam e t h o do fl a r g es c a l ed e v e l o pt e s tc a s et ol i g h t e n d e v e l o p m e n to ft e s tc a s e ,b u ta l s ot h i sc a ne n s u r et e s t i n gi n t e g r i t y 3 ) t e s tt o o lo fc h i n e s ei n p u tm e t h o dp r o v i d e sa n o t h e rw a yf o rt h e d e v e l o p m e n to ft e s t i n gt 0 0 1 b yt w o - w a ys i m u l a t i o nt e s t e dm o d u l er u n n i n g e n v i r o n m e n t ,i tp r o v i d e sw h o l er u n n i n ge n v i r o n m e n tf o rt e s t e dm o d u l et o e n s u r et e s ti n t e g r l t y k e yw o r d s :c o n f o r m a n c et e s t :l i n u x :s t a n d a r d :i n p u tm e t h o d :c h i n e s e p r o c e s s i n gf u n c t i o n 学位论文版权使用授权书 y 9 5 6 3 5 2 本人完全了解北京机械工业学院关于收集、保存、使用学位论文 的规定,同意如下各项内容:按照学校要求提交学位论文的印刷本和 电子版本;学校有权保存学位论文的印刷本和电子版,并采用影印、 缩印、扫描、数字化或其它手段保存论文:学校有权提供目录检索以 及提供本学位论文全文或者部分的阅览服务:学校有权按有关规定向 国家有关部门或者机构送交论文的复印件和电子版;在不以赢利为目 的的前提下,学校可以适当复制论文的部分或全部内容用于学术活 动。 学位论文作者签名:囱占。蠹 卅年工月,? 日 硕士学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师指导下,进行 研究工作所取得的成果。除文中已经注明引用的内容外,本学位论文 的研究成果不包含任何它人创作的、已公开发表或者没有公开发表的 作品的内容。对本论文所涉及的研究工作做出贡献的其它个人和集 体,均已在文中以明确方式标明。本学位论文原创性声明的法律责任 由本人承担。 签名:徊t 袁 寥口口f 年 。月t 日 第1 章引言 1 1 概述 第1 章引言 l i n u x 走向成功的最大威胁是可能不得不面临的分裂。在1 9 6 9 年,u n i x 操 作系统只是一个操作系统,但是在八十年代末,由于硬件公司的原因开始走向 分裂,最后形成了六个主要的相互竞争的操作系统:s u ns o l a r i s 、h p u x 、i b m a i x 、s g ii r i x 、d i g i t a lu n i x 和s c ou n i x w a r e ,这种分裂极大的增加了提供 商和用户程序开发、部署和系统维护等方面的费用,从而在一定的程度上减缓 了u n i x 的发展“1 。 随着l i n u x 操作系统的逐渐流行、发展,产生了许多具有不同特色的发行 版本,如果任由这种多样化的发展将导致l i n u x 市场出现类似u n i x 市场的分裂, 从而削弱l i n u x 世界的发展实力。因此l l n u x 开始考虑制作自己的标准,使所 有遵守这一标准的l i n u x 发行版本和其上的应用程序,可以相互间的移植。儿”。 1 2l i n u x 标准的国际背景 目的,国际上存在最基本的操作系统a p i 标准是p o s i x ( p o r t a b l e o p e r a t i n gs y s t e m ) 标准。p o s i x 是由i e e e 和i s o i e c 开发的标准系统。该标 准是基于现有的u n i x 实践和经验,描述了操作系统的调用服务接口,用于保证 编制的应用程序可以在源代码一级上在多种操作系统上移植运行。p o s i x 目前的 最新标准是i e e e1 0 0 3 1 - 2 0 0 1 。l i n u x 在发展初期就想实现与p o s i x 的兼容。 从l l n u x 的发展进程也可以看出,l i n u x 的成长一直有p o s i x 标准的辅佐,没 有p o s i x 的指导,就不会有l i n u x 的今天。 l l n u x 标准化规范和工作组一l s b ( l 1 n u xs t a n d a r db a s e ) 工作组是f r e e s t a n d a r d sg r o u p 的成员工作组。l s b 是l i n u x 领域重要和有影响的标准化组织。 l s b 工作组以达成“s t a n d a r d i z i n gt h ep e n g u i n ”为目标,制定最基本的标准, 如公众命令集和文件传输的格式等,为应用之间的兼容奠定基础。它致力于开 发和推广一系列的标准。提高不同l i n u x 发行版本的兼容性,使得软件应用得 第1 章引言 以运行在各种符合l s b 标准的系统中,同时也帮助协调软件开发商向l i n u x 移 植和开发产品。目前国际上流行的l i n u x 版本基本都遵循l s b 标准,该规范是 l i n u x 世界统一的重要力量,可以说是l i n u x 的工业标准。在l s b 的发展历程中 较为重要版本是v 1 3 “1 ,目前最新版本是2 0 0 5 年1 0 月份所推出的l s bv 3 0 , 在v l3 的基础上增加了对c + + 的支持。而且l s bv 3 0 已经提交到i s o ( 国际标 准化组织) ,在不久就将会以国际标准的形式正式公布。 0 p e n l l 8 n ( o p e ni n t e r n a t i o n a l i z a t i o ni n i t i a t i v e ) 致力于增强国际化背 景下的软件应用的可移植陛和互操作性,提供一个通用的开放源码环境,使得 全球不同文化、语言的应用程序可以正确地运行和正确地表达。o p e n l l 8 n 也制 定相关的标准并开发验证和测试工具包。符合o p e n i1 8 n 标准的前提条件是符合 对应的l s b 标准。 1 3 中文l i n u x 标准的背景 l i n u x 标准化的问题同样是国内l i n u x 厂商和用户关心问题。当然,国际 l l n u x 组织制定的l i n u x 标准可以作为国内l i n u x 产品的标准,但是国际l i n u x 组织关心更多的毕竟是西方用户的需求和应用环境,对于中国用户对标准的需 求,特别是中文h n u x 标准的需求关注不够。因此,需要中国尽快针对中文l i n u x 的特点,制定相关的中文l l n u x 标准。在国务院信息化工作办公室、信息产业 部、国家标准化管理委员会、科技部等部门的支持下,我国l l n u x 标准化工作 已取得了很大进展”1 。 科技部“8 6 3 ”计划资助了l i n u x 相关标准与规范的研究。2 0 0 3 年科技部通 过了中文l i n u x 和办公软件相关标准与规范( 2 0 0 3 从1 2 2 0 1 0 ) 、中文l i n u x 应用 编程界面( a p i ) 规范( 2 0 0 3 2 2 6 8 一t - 3 3 9 ) 以及中文l i n u x 系统技术要求规范 ( 2 0 0 3 2 2 6 2 一t - 3 3 9 ) 的立项,由中国电子技术标准化研究所牵头承担。中文 l i n u x 标准体系研究报告、中文l 1 n u x 应用编程界面( a p i ) 规范、中文l i n u x 桌面系统技术要求规范、中文l i n u x 服务器系统技术要求规范和中文l i n u x 用户界面规范的起草工作已经完成,即将报批。 2 第1 章引言 1 4 中文l i n u x 系列标准简介 中文l i n u x 系列标准总共包含四个部分:中文l i n u x 应用编程界面( a p i ) 规范、中文l l n u x 桌面系统技术要求规范m 、中文l i n u x 服务器系统技 术要求规范嘲和中文l 1 n u x 用户界面规范9 1 它们分别在不同的层次上对l i n u x 操作系统进行了约定。 图i 1 中文l i n u x 系列标准层次结构图 l 、中文l i n u x 应用编程界面( a p i ) 规范 它的目的是约束基本平台整体功能,提供可移植编程接口。主要引用l s b , 另外,补充了中文支持方面的要求,包括了:中文处理特有的函数库界面、输 入法模块界面、中文l o c a l e 支持等。 根据与国际标准兼容的基本原贝u ,这个标准的主要内容都来自于l s b2 0 、 o p e n l 8 n1 3 、p o s i x 等国际标准。同时,针对中文l i n u x 的特点,它还保留了 国标g b t1 6 6 8 1 1 9 9 6 开放系统中文界面规范的部分扩展内容“”。针对中文 l i n u x 的特点,它主要在中文输入法和中文输出等方面做了扩展。 l s b2 0 的标准分为两大部分:a p i 和a b i ,分别解决源代码级兼容和目标 码级兼容的问题。本标准只采用了l s b2 0 的a p i 部分“。 2 、中文l t n u x 用户配置界面规范 它的主要目的是规范基本操作,使操作用户切换到不同发布版本不需要过 多的学习时间。通过l i n u x 界面标准和规范来确保l i n u x 各版本间的兼容和相 对统一。要使l 1 n u x 真正成为一个统一、易用的开放系统。同时吸收国际开源 社区已有的界面设计经验,结合我国用户的实际使用特点对l i n u x 操作系统的 图形用户界面进行规范,提高l 1 n u x 系统间的界面统一性“”。 3 蔓! 至! ! 童 3 、中文l i n u x 桌面操作系统技术要求规范 这个规范主要规定了基于l i n u x 的桌面操作系统的一般要求,其内容包括 系统的中文要求、系统安装、硬件适配、系统操作、图形用户界面、桌面应用、 桌面系统安全、辅助工具等。它的目的是建立一套用于l i n u x 桌面操作系统的 技术规范,从而来规范中文l i n u x 桌面操作系统的实现者,满足用户对桌面系 统的实际运行需求。 4 、中文l * n u x 服务器系统技术要求 中文l i n u x 服务器系统技术要求标准制定的目的是建立一套l i n u x 服 务器操作系统的技术规范,满足用户服务器运行环境的实际运行需求,适用于 l i n u x 服务器操作系统实现厂商、应用程序开发厂商等。这个规范所规定的是基 于l i n u x 操作系统在作为服务器运行环境时所必须满足的条件,包括系统核心、 运行库、使用工具以及作为服务器系统所应具有的可扩展性、可用性、适用性、 可管理性、安全性以及性能要求等“加”。 4 第2 章中文l i n u x 系列标准测试方法分析 第2 章中文l i n u x 系列标准测试方法分析 2 1 软件测试 在开发大型软件系统的过程中,软件生命周期的每个阶段都不可避免地产 生错误。人们力求在每个阶段结束之前通过严格的技术审查,尽可能早地发现 并纠正差错,但经验表明审查并不能发现所有的错误。从建模的角度看,测试 的目标是设计实验找到系统中的缺陷并揭示问题,这个活动与软件开发中的所 有活动都是相反的:交流、协商、分析、设计、实现是构造活动“”;而测试是 分解活动。测试是通过分析系统或系统组件以检测规定的行为和观测的行为之 间的差异的过程。遗憾的是,由于测试的不确定性以及事件和预算的限制,要 彻底的测试一个复杂系统是不可能的。这种理想和现实间的差距使许多软件测 试技术应运而生。 2 1 1 常用软件测试方法 根据测试的方法、测试的目的、测试的对象以及测试的形式通常使用的坝4 试方法有:黑盒测试、白盒测试、单元测试、集成测试、增量型的集成测试、 功能测试、端到端测试、理智测试、回归测试“”、可接受性测试、负荷测试、 压力测试、性能测试、安装和反安装测试、恢复测试、安全性测试、兼容性测 试、a l p h a 测试、b e t a 测试“”等等。根据需要,可能用到的测试方法主要包括 下面几种: 1 、黑盒测试 着眼于程序外部结构,不考虑内部逻辑结构,针对软件界面和软件功能进 行的测试“。黑盒删试也称为数据驱动测试它在已知产品应具有的功能的条件 下,通过测试来检测每个功能是否都能正常使用“。在测试时,把程序看作一个 不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,测试者在 程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使 用,程序是否能适当地接收输入数据而产生正确的输出信息,并且保持外部信 5 第2 章中文l i n u x 系列标准测试方法分析 息( 如数据库或文件) 的完整性。 2 、功能测试 功能测试指测试软件各个功能模块是否正确,逻辑是否正确的测试。功能测 试的目标是核实数据的接收、处理和检索是否正确,以及业务规则的实施是否 恰当o ”。此类测试基于黑盒技术,该技术通过图形用户界面( g u i ) 与应用程序进 行交互,并对交互的输出或结果进行分析,以此来核实应用程序及其内部进程。 功能测试的主要参考为类似于功能说明书之类的文档。 3 、边界测试 边界测试是等价测试的特例,主要考虑等价类的边界条件。边界测试不是在 等价类中选择任何元素,而是要求从等价类的边缘选择元素。提出边界条件时, 一定要测试临近边界的合法数据,即测试最后一个可能的合法数据以及刚超过 边界的非法数据。 2 2 中文l i n u x 标准符合性测试方法分析 2 2 1 测试中采用的测试方法 对于中文l l n u x 标准符合性测试: 1 、测试的对象是:中文l z n u x 操作系统; 2 、测试的根据是:中文l i n u x 系列标准; 3 、测试的目的是:验证中文l i n u x 操作系统是否符合中文l i n u x 标准。 这些限制了在测试过程中所能采用的测试方法,对于l i n u x 操作系统,不 可能也没有必要基于源码进行测试的,所以就不得不采用黑盒测试的方法;测 试依据的是中文l i n u x 系统标准,所以只要是符合标准就可以了,不应该作进 一步额外的要求,从这个方面来说,进行的是功能测试;在测试过程中,所面 对的是一个集成的系统,所以进行的测试又可以说是一个集成测试。 但这个测试仅仅是标准符合性测试,即仅仅检测它在功能、性能等方面是 否能够满足标准的要求,对于标准中没有提到的部分不在检测的范围之内。比 如:在中文l i n u x 标准中没有提到性能、负载方面的要求,因此在测试过程中 就不必作这方面的测试,即使它在这个方面表现的很差,如果其它的方面都符 6 第2 章中文l l n u x 系列标准测试方法分析 合标准,也应当认为它通过了测试“。 2 2 2 测试中的基本原则 一个完整的l l n u x 系统包含着大量的技术点,在测试的时候,应该首先把 整个系统细分为相互间独立的技术点,然后针对每一个技术点在进行必要的测 试,这是测试的第一步。 由于目前的l i n u x 发行版不仅仅是一个单一的操作系统,它还包括大量的 第三方应用软件,而且这是一个发展的趋势,因此在制定标准的过程中加入了 对第三方应用软件的要求。在测试中,不可能针对每一个应用软件做详细的测 试,那样的测试工作量是任何人都无法承受的。另外,由于标准规定的第三方 应用软件的功能,目前都存在若干个主流软件,这些主流软件基本上都可以满 足标准规定的功能,并且每个l i n u x 发行版基本上都是采用主流的第三方应用 软件,所以在测试的过程中,可以仅仅检测它所使用第三方应用软件的名称和 版本就可以了“”。 为了减少测试过程中的主观因素,应该最大化自动化测试的范围。中文 l i n u x 应用编程界面( a p i ) 规范主要规定的是系统编程接口的标准,里面的内 容完全可以实现自动化测试,通过编写捌试工具和测试用例完全可以实现对系 统完整的测试。针对中文l t n u x 服务器操作系统技术要求的删试中也包含 了部分可以使用测试工具实现的部分,对于这些部分,应当尽可能的把它们提 取出来,编写成统一格式的测试工具,实现自动化坝4 试1 。对于编写测试工具 使用的框架,也应尽可能的采用与l s b 测试兼容的t e t w a r e 的测试框架,它可 以提高测试用例的开发效率,并且最大的保证测试的完整性。 对于中文l i n u x 桌面操作系统技术要求和中文l i n u x 用户界面规范 这两个规范,基本上是在人机交互界面上定义的标准,对于这两个规范不可能 实现自动化测试。但是,针对它们可以制定基本的测试过程,这个测试过程首 先能方便测试者,减少手工测试人员的操作过程:第二、能最大可能的发现可 能存在的错误。 7 第2 章中文l i n u x 系列标准测试方法分析 2 3 具体测试方法应用 中文l i n u x 应用编程界面( a p i ) 规范中规定的技术要点可以分为三个部 分嘲: 1 、与l s b 兼容的部分o “,对于这部分的测试,可以完全采用由o p e n g r o u p 开发的用于l s b 认证的测试套件,这也就说明要通过中文l i n u x 应用 编程界面( a p i ) 规范的测试首先要能通过l s b 测试套件的测试; 2 、g b t1 6 6 8 1 - 1 9 9 6 开放系统中文界面规范的扩展内容,这部分扩展的 内容主要是对中文处理函数的扩展,针对这部分的测试采用的是在 t e t w a r e 测试框架下开发测试用例的方法,这保证了测试过程与上面l s b 测试过程的统一; 3 、中文输入法部分,这部分定义了中文输入法服务器和输入法引擎的接口 标准,由于这部分的测试属于模块测试,且在测试的过程中需要手工干 预,因此没有采用t e t w a r e 的测试框架,而是开发了独立的测试工具, 可以分别针对输入法服务器和输入法引擎进行测试。 中文l i n u x 服务器操作系统技术要求的技术点要求比较散,必须分别 针对每一个技术点进行测试。对于这一部分,只能尽可能的抽取可以使用测试 工具实现自动化测试部分。可以使用测试工具实现的测试有: 1 、文件系统的测试部分; 2 、网络协议相关的测试部分; 3 、裸设备测试程序。 对于这部分采用的测试方式是采用编写s h e l l 测试程序的方式嘲,利用 l i n u x 强大的s h e l l 功能,简单快速的实现测试。 中文l i n u x 桌面操作系统技术要求和中文l i n u x 用户界面规范这 两个规范基本是和用户交互相关的约定m 叫,对于这部分的测试最好的方法是, 编写好的测试规范,制定严谨的测试流程,进行人工测试。 因此,在中文l i n u x 系列标准的测试中有两个关键的技术点,一个是中文 处理函数,一个是中文输入法接口标准。本文将通过两个不同的技术分别实现 对这两个关键技术点的测试。 8 第3 章中文处理函数的测试 第3 章中文处理函数的测试 在中文处理的函数的测试中,作者引入了一个测试用例开发环境t e t w a r e 。 t e t w a r e 是由o p e n g r o u p 组织维护的一个自动化测试工具,它是一个功能强大的 l i n u x 下的免费测试用例的开发、运行环境。目前许多的l l n u x 下测试用例都是 使用它来开发的,包括现在事实上的l t n u x 工业标准一l s b ( l i n u xs t a r n d a r d b a s e ) 标准的测试用例。早期制作t e t w a r e 的目的是为测试开发人员提供一 个可以满足目前和将来测试需求的测试驱动程序。为了达到这个目的,从测试 开发人员那里引用了大量的测试用例,用于开发t e t w a r e 的功能和函数接口。 它通过对测试各个功能模块合理的组织分配,使测试用例开发人员可以专注于 功能测试模块的开发。 3 1t e t w a r e 整体结构 t e t w a r e 控制器是整个测试过程的管理中心,也是测试过程的入口。它根据 提供的测试过程配置文件,配置测试用例运行的测试环境,并依次调用测试用 例。 测试用例是实现测试内容的核心,它实现了全部的删试内容。对于测试过 程中结果和日志输出都是通过调用t e t w a r e 提供的一组函数库来实现的,另外 它还提供了一组函数,它可以根据当前的测试用例的测试结果判断是否继续运 行后继测试中的某些测试用例。 t c m ( t e s tc a s tm a n a g e r ) 并不是一个独立的应用程序,而是通过a p i 库 和用户提供的测试代码一起链接产生一个可执行的测试用例嘲“。如果一个测 试用例使用了t e t w a r ea p i ,那么它的执行就会完全在测试用例管理器( t e s t c a s em a n a g e r ) 的管理下。它是测试用例和t e t w a r e 控制器直接通讯的接口, 通过对这组接口的调用可以大大的简化测试用例的编写过程,它把和测试内容 无关的功能全部封装起来,由这组函数库来统一完成。 测试过程的配置文件包括两个部分:一部分定义了测试用例运行时的环境 变量,它决定了测试用例在运行过程中的运行方式;另外一部分也叫做场景文 9 第3 章中文处理函数的测试 件,它规定了t e t w a r e 管理器调用测试用例的次序和方式,根据配置文件,测 试管理器可以以多种方式调用同一个测试用例,比如:循环调用、随机调用、 并行调用等等。 图3 1t e t w a r e 基本结构 3 2t e t w a r e 测试过程分析 t e t w a r e 分为单机版( 免费版本) 和分布式网络版( 商业版本) 。t e t w a r e - l 1 t e 是单机版本,它在单机系统中自己处理所有的操作。在分布式版本的t e t w a r e 中,而是把所需的操作请求发送给每一个运行测试用例系统的服务进程,由这 个服务进程完成所需的操作嘲。每一个系统在完成一个测试用例后都要进行同 步操作,等待所有的系统完成测试,然后把测试结果进行汇总,传递给本地系 统,最后开始下一个测试用例的运行。 t c c 是测试用例的控制程序,也就是整个t e t w a r e 的主程序啪1 。 t c m 则是由测试用例源码和t e t w a r e 接口函数库共同编译、链接生成的测试 用例 1 0 第3 章中文处理函数的测试 图3 2t e t w a r e l l t e 处理流程 : t c c d 一测试用例控制器服务端 t e t s y n c d - - 同步服务端 t e t x r e s d - - 执行结果服务端 图3 3 分布式t e t w a r e 处理流程 第3 章中文处理函数的测试 3 3 一个测试用例的处理过程 t c c 按照指定场景中的指示器执行测试用例。在分布式t e t w a r e 中,可以在 多个系统中同时执行一个非分布式的测试用例,也可以在多个系统中协同处理 一个分布式的测试用例。”。 1 、t c c 在日志文件中写入开始测试信息。 2 、t c c 在测试用例的执行目录获得一个锁,如果 t e t e x e c - i n p l a c e 为假,这个锁是共享的,否则这个锁是独占 的。在分布式t e t w a r e 中在每一个系统中都要获取一个这样的 锁。 3 、 如果t e te x e c i n p l a c e 为假,t c c 将建立一个临时目录,并把 执行目录结构复制到这个临时文件夹。在分布式系统中要在每 一个系统中建立临时文件夹并复制测试用例到这个文件夹。 4 、如果t e t - e x e c _ i n p l a c e 为假,t c c 释放获得的锁。在分布式系 统中在每一个系统中释放锁。 5 、 如果t e t _ a p i c o m p l i a n t 为假,t c c 在日志文件中写入t c m 、i c 、 t p 的开始信息。 6 、 如果定义了t e t _ e x e c _ t o o l ,t c c 执行t e t _ e x e c j o o l 中定义的 执行工具,并把删试用例的名称和模块的编号作为参数传递给 它;否则,t c c 以测试模块的编号为参数直接执行这个测试用例。 如果t e t - e x e c i n p l a c e 为真,在测试用例的执行目录里执行, 否则在临时目录里面执行。如果t e t _ o u t p u t _ c a p t u r e 为真,开 启输出捕获模式。在分布式系统中,在每一个指定的系统中都 要执行这个过程。 7 、 如果开启了输出捕获模式,t c c 保存捕获的输出信息到日志文 件。如果t e t a p i c o m p l i a n t 为真,t c c 对结果文件重新排序再 存储到日志文件中,如果有的测试函数没有产生测试结果,t c c 指定结果为n o r e s u l t 。如果t e t a p i c o m p l i a n t 为假,t c c 根 据测试函数的返回值产生测试函数的测试结果,然后共同组成 测试模块的测试结果。在分布式t e t w a r e 中,每一个系统中的 捕获文件和结果文件归总到本地系统的日志文件中。当使用分 第3 章中文处理函数的测试 8 、 9 、 1 0 、 1 l 、 布式t e t w a r e 在多个系统中运行一个非分布式测试用例时,分 布在每一个系统中的测试结果将被重新排序汇总到日志文件 中。在分布式t e t w a r e 上执行一个a p i 一致的分布式测试用例 时,测试结果不经过排序直接整块存储到日志中。 t c c 把在t c c _ _ s a 、r e f i e l s 中指定的文件复制到保存文件的目录。 分布式t e t w a r e 中,如果t e t _ t r a n s f e r _ s a v e _ f i l e s 为假,文 件被保存在每一个系统相应的目录中。在任何系统中,如果 t e t j r a n s f e r _ s a v e _ f i l e s 为真,指定的文件都将复制到本地系 统中。可以在每个远程系统中指定不同 t e t _ t r a n s f e r s a v e - f i l e s 值。 如果t e t _ e x e c j n p l a c e 为真,t c c 释放获得的锁。 如果t e t - e x e c - i n p l a c e 为假,t c c 删除临时的执行目录。 t c c 在日志中写入测试结束的信息。 3 4 场景配置文件 场景文件是t e t w a r e 中最重要的配置文件,它描述着测试用例运行的过程 和方式。编写完整、细致的场景文件,是保证测试完整性的一个重要方面。每 个测试用例的场景文件包含一个或多个场景。测试场景是测试单元中一个或多 个测试组件的列表。场景文件中通常包含一个称为a l l 的场景,这个场景只是 简单的包含所有的测试组件。t c c 根据测试场景文件中的指示器来处理测试用例 乜4 】 o 在运行t c c 时,可以使用场景的名字作为一个参数,如果不知道这个参数, t c c 将默认处理a l l 这个场景。另外,也可以使用一l 命令行选择项指定其它任 意的场景文件。 3 4 1 场景文件的格式 s c e n a r i o - n a m ee l e m e n t1e l e m e n t 2 或 “i n f o r m a t i o nl i n e ” 1 3 第3 章中文处理函数的测试 s c e n a r i o - n a m e e l e m e n t l e l e m e n t 2 在两个“:”之间的元素为指示器。在两个“”之间的字符串是场景信息, 当t c c 处理一个场景信息行时,它只是简单的在日志中写入这条字符串。一条 场景信息被作为一个元素,因此它不能分成多行。场景信息行是唯一一个可以 在中间使用空格的元素。 3 4 2 测试用例的名称 一个测试用例的名称可以直接显示也可以和一个指示器绑定,当直接用一 个名称表示这个测试用例时,它必须以“”开始。例如t e s t c a s e - n a m e ,当 一个测试用例和一个指示器绑定时,它必须以“ ”开始。例 如: :d i r e c t i v e : t e s t c a s e n a m e 。一个测试用例可以包含一个可选的模块 列表( i cl i s t ) 。在测试用例名称的后面“ ”之间指定这个列表。例如: t e s t c a s e n a m e i c l i s t 。一个模块列表可以包含一个或多个数字或者是一 个数字范围,它们之间用“,”分开,例如:t e s t c a s e n a m ef 2 ,4 ,7 - 1 0 3 4 3 场景指示器 场景指示器可以指定t c c 对一定范围内的元素的处理方法。 r e p e a t , 重复执行场景元素一定的次数; t i m e _ l o o p :在一定的时间段内重复执行场景元素; r a n d o m , 随机选择一个测试用例进行执行; p a r a l l e l :并行处理场景元素; r e m o t e :在远程系统上处理一个测试用例; i n c l u d e :处理场景元素列表中的引用文件。 指示器组:多个指示器可以组成指示器组,对测试用例可以同时进行多种 方法的处理。 :d l r e c t i v e 】d i r e c t i r e 2 : 1 4 第3 章中文处理函数的测试 组合 :e n d d i r e c t i r e 2 :e n d d i r e c t i v e l : 但是并非所有的指示器都可以嵌套处理,下面的列表描述了可能的指示器 内层外层指示器 指示器tl m e l o o pr e p e a tr a n o o m p a r a l l e l r e m o t ei n c l u d e t i m e l o o p r e p e a t r a n d o m p a r a l l e l r e m o t e i n c l u d e 3 5 中文处理函数接口定义 中文l i n u x 标准规定,符合中文l i n u x 应用编程界面( a p i ) 规范的l i n u x 发行版本应提供以下专门用于中文处理的函数0 1 : a ) 把一个全角字符转换成对应的半角字符 i n tf c t o h c ( i n t 木p c ,c o n s tc h a r 母s ,s i z etn ) : b ) 把一个半角字符转换成对应的全角字符 i n th c t o f c ( c h a r s ,i n tc ) : c ) 检测多字节字符的一个全角字符 i n ti s f u l l c ( c h a r 木p c ,s i z e _ ti i ) ; d )检测多字节字符的一个注音字符 i n tis f p h o n o g r a m ( c h a r 木p c ,s e z e _ tn ) : e ) 检测多字节字符的一个部首字符 i n ti s r a d i c a l ( c h a r 爿cp c ,s i z ejn ) : f ) 检测多字节字符的一个未定义字字符 i n ti s u n d e f c h a r ( c h a r 宰p c ,s i z e tn ) : 1 5 第3 章中文处理函数的测试 3 6 中文处理函数测试方法 对于中文处理函数,因为它们处理的字符集都是基于g b l 8 0 3 0 字符集的。 因此l i n u x 的l o c a l 环境变量应该指定为“z hc n g b l 8 0 3 0 ”,假定所有的测试 用例都是在l o c a l 环境变量为“z h _ c n g b l 8 0 3 0 ”下执行的。 针对每一个函数测试包括下面几个部分: 因为g b l 8 0 3 0 是变长编码,不同的字符的编码长度可能是不相等的, 因此需要保证每一个函数可以正确识别每一个编码,可以对一个缓 冲区中的字符正确识别其长度。需要测试到的情况有: 正确识别所有一个字节的字符,且指定字符缓冲区的长度为l 正确识别所有两个字节的字符,且指定字符缓冲区的长度为2 正确识别所有四个字节的字符,且指定字符缓冲区的长度为4 指定字符缓冲区的长度大于字符缓冲区中首字符的大小,函数应该 能正确识别缓冲区中的首字符,并进行正确的处理 指定字符缓冲区的长度小于字符缓冲区中首字符的大小,函数应该 能给出错误信息,表明使用了错误的字符 对于所有不在g b l 8 0 3 0 字符集中的函数应该返回错误值,表明使用 了错误的字符 对于正确的g b l 8 0 3 0 字符集中的字符,函数应该能正确处理其中的 字符,返回预期的结果。 3 、边界值测试,指定中文处理函数的参数为某些边界值,比如:指定 参数为n u l l ,e o f 、o x f f f f f f f f 或零等,测试中文处理函数是否能 够正确处理边界值。 由于这几个中文字符处理函数在很大程度上都是类似的,因此可以把它们 的测试代码在一定的程度上重用,简化测试代码的开发,提高测试用例的可扩 展性。 3 7 需要实现的t e t w a r e 测试函数 针对每一个中文处理函数,基本上都需要实现的测试函数有: 1 、针对g b l 8 0 3 0 字符集中的每一个字符的一个完整的测试,测试函数 1 6 第3 章中文处理函数的测试 2 、 3 、 名指定为f u l l _ g b l 8 0 3 0 。依次测试中文处理函数对每一个字符的处 理,且字符缓冲区的长度使用测试字符的正确长度。 针对g b l 8 0 3 0 字符集的兼容性测试,测试函数名指定为 l o n g e r _ g b l 8 0 3 0 。测试函数在g b l 8 0 3 0 字符集中任意选取一个字 符,在参数中指定字符缓冲区的长度为:字符大小+ n ( n 0 ) ,测 试中文处理函数是否能够正确识别这个字符大小,并进行正确的处 理。( 这里只是在g b l 8 0 3 0 字符集中随机选取一个字符,是因为 g b l 8 0 3 0 字符集比较庞大,且n 也是一个任意大于零的值,那么应 该测试的情况就变的很大,所以测试只能随机抽取有限种情况进行 测试) 。 针对g b l 8 0 3 0 字符集的容错性测试,测试函数名指定为 s h o r t e rg b l 8 0 3 0 。测试函数在g b l 8 0 3 0 字符集中任意选取一个多 字节的字符,在参数中指定字符缓冲区的长度为:字符大t j 、- n ( n 0 ) ,测试中文处理函数是否能够识别出这不是一个完整的字符, 并返回正确的错误代码。 针对非g b l 8 0 3 0 字符集的容错性测试,测试函数名指定为 n o t g b l 8 0 3 0 。测试函数在非g b l 8 0 3 0 字符集中任意选取一个字符, 测试中文处理函数能否识别出这不是一个合法的字符,并返回正确 的错误的代码。 针对边界参数值的测试,测试函数名指定为b o u n d a r y _ p a r a m e t e r 。 测试函数给中文处理函数的参数指定为特定的边界参数,例如:指 针为n u l l ,字符长度为0 等。测试中文处理函数是否能够正确处理 这些边界值。 3 8 场景文件( t e t s c a n ) 场景文件是t e t w a r e 测试用例中的最重要配置文件,它告诉t e t w a r e 控制 器如何调用我们自己编写的删试用例,这里用函数f c t o h c 的场景配置文件来进 行描述。 a l l 包含下面所有的测试场景 f u

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论