(计算机应用技术专业论文)规则驱动的自动化测试框架研究与实现.pdf_第1页
(计算机应用技术专业论文)规则驱动的自动化测试框架研究与实现.pdf_第2页
(计算机应用技术专业论文)规则驱动的自动化测试框架研究与实现.pdf_第3页
(计算机应用技术专业论文)规则驱动的自动化测试框架研究与实现.pdf_第4页
(计算机应用技术专业论文)规则驱动的自动化测试框架研究与实现.pdf_第5页
已阅读5页,还剩54页未读 继续免费阅读

(计算机应用技术专业论文)规则驱动的自动化测试框架研究与实现.pdf.pdf 免费下载

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

文档简介

摘要 规则驱动的自动化测试框架研究与实现 作者简介:秦大勇,男,1 9 7 9 年0 2 月生,师从成都理工大学罗省贤教授, 二零零八年五月毕业于成都理工大学计算机应用技术专业,获得工学硕士学位。 摘要 当今的银行交易业务系统规模和复杂性与同俱增,业务的上线要求却越来 越严格、急迫,一旦出错将造成不可估量的损失,目前业内普遍情况是采用手 工测试,当上线时间急迫时测试质量与测试覆盖率都得不到保证。传统的自动 化测试案例的执行和凋试成本很高,可能在每次软件变更后,对测试案例需要 进行大量的维护以维持其可用性,这类维护工作要求测试人员不但要懂业务, 还要懂得程序代码才可以胜任。传统的手工测试、录制与回放技术、甚至包括 自动测试工具的引入与使用,依旧不能满足企业对产品测试时间与质量的需求。 本文研究的规则驱动的自动化测试框架技术方法,以银行业务系统测试为 背景,采用积累库的概念,使行业经验成为一个可高度重用的财富,并且建立 一定的标准,测试的深度与完善度不再受测试者的经验限制,同时考虑第三方 测试工具的松散集成。使用该测试框架不要求测试人员掌握高深的计算机编程 技术,只要少量的业务专家对系统进行分析,在逐步的测试过程中积累资料、 相同的业务不必反复分析,就可进行深入地测试,并且很好的解决了回归测试 的问题。目前自动测试框架领域在规则积累方面的研究与开发还处在探索阶段, 本文通过对自动化测试框架与银行系统特点的技术研究,提出对特定领域的项 目的测试方法,对于最终提高测试效率与测试质量,提高系统的可靠性与可维 护性等具有重要意义。 本文研究内容包括以下几点:建立一套银行交易系统的模拟系统以及特 殊硬件的模拟信号,这是这类自动测试系统面向对象框架的基础体系结构。采 用更高层面的测试策略,解决功能测试自动化中的新问题,开辟新的测试思路, 使测试的自动化程度更高。使用基于领域分析的丌发方法,丌发了一个自动 化测试框架来实现自动化测试项目,采用一套逐级生成的机制完成测试设计到 测试数据的转换。框架应用,使用以上提到的测试框架开发一个测试平台, 并对该平台的界面与操作进行了展示,使用实际项目的数据做测试,验证了框 架的可彳亍性。 关键词:测试框架自动化测试测试策略测试质量回归测试 成都理t 大学硕士学位论文 r u l e sd r i v e nt e s tf r a m e w o r k i n t r o d u c t i o no f t h ea u t h o r :d a y o n gq i n ,m a l e ,w a sb o mi nf e b r u a m1 9 7 9w h o s et u t o r w a sp m f e s s o rs h e n g x i a nl u o h eg r a d u a t e df r o mc h e n g d uu n i v e r s j t yo f l l e c h n 0 1 0 9 yi n c o m p u t e rap p l i ca i j o nt e c h n o l o g ym a j o ra n dw a sg r a n t e dt h em 硼t e rd e g r c ei nj u n e ,2 0 0 8 a b s t r a c t t o d a yt h eb a n k i n gb u s i n e s ss y s t e mg r o w sm o r ec o m p l e x i t y ,o nt h eo t h e rs i d e n l er c q u i r e m e n to fr u n n i n gb u s i n e s sd e m a n d sm o r ea n dm o r es t r i n g e n ta j l du r g e m o n c et h eb u s i n e s ss y s t e mr u n se r r o r s ,i tw o u l dl e a di n c a l c u l a b l el o s s e s m a n u a lt c s t i su s e di nm o s ts i t u a t i o n s b u tb o mt h eq u a l i t ya t l dt e s t c o v e r a g ec a nn o tb e g u a r a n t e e dw h e nt h e1 1 l n n i n gt i n l ei sn o te n o u g h t h ee x e c u t i o na n dd e b u g g i n go f t r a d i t i o n a la u t o m a t e dt e s tc o s th i 曲,a 1 1 ds u b s t a m i a lm a i n t e n a n c ew o r km a yn e e d e v e r y t i m ea n e rs o r w a r eu p g r a d e t h e s em a i m e n a n c ew o r kr e q u i r et e s tp r o f e s s i o n a l s 1 1 1 et r a d i t i o n a lm a n u a lt e s t ,r e c o r 折印l a yt c c l l l l o l o g y ,e v e ni n c l u d i n gt h ei n 廿o d u c e a n du s eo fa u t o m a t e dt e s t i n g t 0 0 1 s ,c o u l dn o tm e e tt 1 1 er e q u i r e m e mo ft e s t i n gt i m c a n dq u a l i t y r u l e s d r i v e na u t o m a t e dt e s t 行锄e w o r ku s et h eb a c k g r o u n do fm eb a i l k i n g s y s t e mt e s t i n g ,u s i n gt h ea c c u m u l a t i o no ft h ec o n c e p to fi n d u s 仃ye x p e r i e n c et o b e c o m eah i g hd e g r e eo f r e u s eo f t l l ew e a l t ha n de s t a b l i s hac e n a i ns t a n d a r d s ,t e s t i n g a 1 1 di m p r o v e m e n to ft h ed e p t ho ft h et e s ta r en ol o n g e rs u b j e c tt ot h ee x p e r i e n c eo f r e s t r i c t i o n s ,t a k i n gi n t oa c c o u m 血et h i r d - p a r t yt e s t i n gt o o l sl o o s e l yi n t e g r a t e d u s e o ft h et e s t行a m e w o r kd o e sn o t r e q u i r et e s t i i l g s t a f ! fi na d v a n c e dc o m p u t e r p r o g r a m m i n g ,a s1 0 n ga sas m a l lb u s i n e s sc x p e r ta n a l y s i so ft h es y s t e m ,伊a d u a l l y a c c u m u l a t e di nt h ec o u r s eo ft h et e s td a t a t 1 1 es 眦eb u s i n e s sd on o th a v et o r e p e a t e d l ya n a l y s i sc a nb ec o n d u c t e di n - d e p t ht e s t i n g ,a i l dv e r yg o o da tr e 铲e s s i o n t e s t i n g a tp r e s e n ti nt h ef i e l do fa u t o m a t i ct e s tf 锄e w o r ko fr u l e sa c c u m u l a t e d r e s e a r c ha n dd e v e l o p m e mi ss t i l li nt h ee x p l o r a t o r ys t a g e ,t h ep 印e rt h r o u 曲t h e a u t o m a t e dt e s tf a m e w o f ko fm eb a l l k i n gs y s t e ma n dt h ec h a r a c t e r i s t i c so ft h e t e c h n j c a ls t u d i e so ns p e c i f i cp r o p o s e dp r o j e c t si nt h en e l do f t e s t i n gm e t h o d s k e y w o r d s :t e s tf r a m e w o r k ,a l i t o m a t e dt e 巩t e s ts t r a t e g y ,t e s tq u a 】i t y ,r e g r e s s i o nt e s t 独创- 性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的 研究成果。据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其 他人已经发表或撰写过的研冤成果,电不包含为获得盛壑理王太堂或其他教 育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何 贡献均己在论文中作了明确的说明并表示谢意。 籼姗繇秦煳 鼬辟撕帅 学位论文版权使用授权书 本学位论文作者完全了解盛壑堡兰太堂有关保留、使用学位论文的规定, 有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允许论文被查阅和 借阅。本人授权盛壑堡王盍堂可以将学位论文的全部或部分内容编入有关数 据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权书) 上理 学位论文作者签名:氰火弼 靴做储剔醛氢渤噔 og 年 og 月 第1 章绪论 第l 章绪论 1 1 功能测试自动化历史背景及意义 1 1 1 软件测试与功能测试 什么是软件测试( s o f h v a r et e s t ) ? i e e e 在1 9 8 3 年将软件测试定义为“使 用人工或自动手段运行或测定某个系统的过程,其目的在于检验它是否满足规 定的需求或是弄清预期结果与实际结果之问的差别”,该定义明确地提出了软件 测试以检验是否满足需求为目标。m ”r s 则认为软件测试“是为了发现错误 而执行程序的过程”,明确提出了“寻找错误”是测试目的。从软件质量保证的 角度看,软件测试是一种重要的软件质量保证活动,其动机是通过些经济、 高效的方法,捕捉软件巾的错误,从而达到保证软件内在质量的目的。软件测 试的目的是为了保证软件的最终质量。但是测试只能证明软件程序有错,而不 能保证软件程序没有错。测试是保证质量的手段,质量是测试的目的。 软件测试从测试特性上可归结为两大类:白盒测试( w h i t e - b o xt e s t i n g ) 和黑 盒测试( b l a c k - b o xt e s t i n g ) 。白盒测试,测试人员直接在软件的源程序上进行测 试、修改、复测。测试过程可以直接接触源程序,这类测试包括语句测试、分 支测试、路径测试、条件测试、目测等。白盒测试技术包括基本路径测试与渐 进式测试,还有静念测试( 指测试不运行的部分,只是检查和审核) 。黑盒测试, 测试人员不必深入了解软件的内部设计,只是从一个终端用户的角度,根据产 品说明书的指标,从外部测试软件的各项功能及性能。这类测试主要是功能测 试,分为功能测试与非功能测试两大类。还有一类被称为灰盒测试的,介于白 盒测试和黑盒测试之问,是两者的结合,但是否涉及对源代码的修改并没有明 确的界限。从开发过程分类,可以归为单元测试、集成测试、系统测试、用户 验收测试、回归测试等。从对软件测试的不同要求划分,则有基本功能测试、 全面测试、基准测试等。 什么是功能测试? 除了前面所述之外,功能测试的定义是以软件规格说明 书及用户手册等为依据,对软件的每一功能及组合进行测试,并将测试过程中 软件的表现及其结果与其在规格说明或用户手册中的相关描述进行对比,不相 符者,应将结果及时报告【2 。如果测试数据来源于描述模块行为的文档,程序 测试就是功能性的。功能测试主要针对软件的各项功能及它们的组合,主要包 括等价区间测试、边界值测试、随机测试和状态转换测试。 成都理t 大学硕十学位论文 1 1 2 功能测试的现状 毫无疑问,严格的功能测试是成功丌发应用的关键。丌发人员、测试小组 和管理人员所面临的挑战是,如何加速测试流程和提高测试的精确性和完备性, 同时还不能增加己然很紧张的预算口j 。 很多部门和企业都在尝试将功能测试自动化,并且取得了一些成就,比如 m e r c u r y ,i b m 等等。通过将功能测试的关键环节自动化,可以满足有挑战性 的发布时间安排,测试得更加全面和可靠,检验业务过程功能的正确性,从而 从上线的运营中获得极高的产值和客户满意度。然而,功能测试的自动化会产 生一些新的顾虑:测试过程自动化的成本是多少? 其投资回报率( r o i ) 是什 么? 哪些应用过程适合做自动化测试,哪些不合适? 是否需要新的培训,这将 对当前的开发计划安排产生怎样的影响? 自动化测试的正确的方法论是什么? 自动化测试时涉及到哪些情况? 在自动化测试产品时,哪些功能最重要? 在自 动化测试项目开始之前,以上和其他一些问题应当得到全面地调查和了解。 1 1 3 功能测试的流程 通常的功能测试工作流程可以划分为三个阶段:测试计划、设计与丌发, 测试的执行及管理,过程评估及改进4 1 ,图1 1 是自动化测试生命周期图示。 图1 1 自动化测试生命周期 简单地说,以上流程就是测试设计、测试实施与测试评估这几个阶段,整 个测试过程中的测试依据主要是产品系统的需求规格说明书、各种规范、标准 和协议等。在测试过程中,首先需要对需求规格进行充分地分析,分解出各种 类型的需求( 功能性需求、性能要求、其他需求等) ,在此基础之上才可以开始 2 第1 章绪论 测试设计工作,而测试设计又是整个测试过程中非常重要的一个环节,测试设 计的输出结果是测试执行活动依赖的执行标准,测试设计的充分性决定了整个 系统过程的测试质量。因此,为了保证系统测试质量,必须在测试设计阶段就 对系统进行严密的测试设计。测试设计包括业务分析,包括业务流程描述和 交易规则的提取,开业零点和初始布景的设计。 1 2 自动化测试框架存在的困难 1 2 1 目标软件实现形式复杂 应用软件的实现形式多种多样,基本的差别有字符终端和图形工作站这样 的形式:实现语言不尽相同,有c + + 、j a 、,a 、d e l p h i 等等:载体也各种各样, 电脑、手机、p a d 与各种仪器等等。这些都使要抽象出一个目标软件元模型的 工作变得困难重重,而对不同行业间的软件也难进行f 确地分析和设计,因此 需要提出一个可以自动化测试这些软件的方案,这对测试工作提出了极大的挑 战。 1 2 2 自动测试策略存在的问题 由于大部分测试工作都是繁重的重复操作,不断填表填数据,产生了录制 与回放的自动化测试技术,它在一定程度上减轻了测试人员的枯燥重复的工作 负担。但这样生成的测试用例可同归性不够好,经常是一个按钮的位置变化就 导致需要重新录制脚本,而且这样的例子多不胜数,于是有了对象捕捉技术与 数据驱动的测试框架技术,这又一次极大的提高了测试的自动化程度与用例的 可回归性。 但是,并非所有的测试都可以用自动测试来实现,测试的三大阶段中可自 动化实现的部分也都是属于自动化测试阶段中的测试实施阶段。测试分析与测 试评定在测试过程中所占的总时间比例没有人仔细地统计过,但其实它们是至 关重要的,至少会占用一半以上的时间,而且随着测试实施的自动化程度越高, 这个比例所占的数值越大。另一方面,测试实施阶段的自动化代码只是执行测 试程序的指令,而不会去发掘其他缺陷存在的可能性,并且这些项目都受到具 体项目资源的限制,如人力及时问、资金预算、还要对测试工程师进行培训。 总之,目前的测试技术都有一定的缺陷,在实际应用中总有这样那样的不 合适的地方,这就要求建立一个新的更高层次的测试策略与测试方法来应付这 样的局面。 3 成都理工大学硕士学位论文 1 3 本文研究目标和方法 目前自动测试框架是测试实践与府用最广泛的工具,在测试实施中也做得 最好,但自动测试框架领域在规则积累方面的研究与开发还处在探索阶段,本 文研究的目的在于通过对自动化测试框架与银行系统特点的技术研究,提出对 特定领域的项目的测试方法。本文采用了基于领域分析的丌发方法,首先对框 架的问题域进领域分祈,尽可能识别领域中的共性,并在这个基础上丌发框架 的初始版本,然后基于这个初始框架丌发一个具体领域的应用进行测试,根据 测试结果对框架进行修改或重新设计,基于新框架再丌发新的应用并对框架进 行测试,形成了框架开发的迭代过型5 1 。 研究思路,本文从自动化测试设计方面着手,至力于提高整体测试过程的 自动化程度。各种目标软件形念虽然千差万别,但抓住其本质,每个系统都是 由若干个小系统构成,小系统又由一个个有独立功能或者意义的部分组成。以 银行系统为例,这个体系是由各种各样的交易构成的,交易又由交易要素( 有 独立含意) 组成,所以可以将一个系统按这样的方式分解,以供下一步的测试 设计与分析使用。在以上的研究基础上建立要素库,提取要素规则与测试意图, 依据测试意图产生测试用例至最后完成整个测试过程的自动化。应用程序实现 代码采用了h i b e m a t e + s t r u t s 的框架结构,用w 曲方式直观地表现目标系统的 交易与要素,要素与规则都存储在o r a c l e 数据库中,部分需要动态生成的库表 以纯文本方式存储和提取。 1 4 本文研究内容及创新点 本文研究内容包括以下几点:建立一套银行交易系统的模拟系统以及特 殊硬件的模拟信号,我们称之为终端仿真工具,它可以模拟系统的交易过程与 输入输出信号,既使银行方面不至于机密信息泄露又方便了测试人员的调试工 作,这是这类自动测试系统面向对象框架的基础体系结构。使用一套逐级生 成机制产生一系列有测试意图的测试数据。有了基础体系结构,首先需要建立 一个要素表及描述要素的规则库,要素表只和被测系统有关,而规则库是一个 不断积累不断添加的库,每条规则将产生出各自的测试要点,测试要点被情节 所描述,情节最终生成测试用例。这是一个逐级生成的过程,根据这一过程涉 及到的内容,本文设计出规则驱动的测试框架并且实现之。进行框架测试。 基于领域分析的丌发方法,整个丌发活动是一个反复递增的过程,重复上两步 直到正确识别所有目标框架的热点并得到灵活的设计和实现,这是一个长期的 过程。 4 第1 章绪论 本文提出的新测试框架为当前银行系统测试提供了一个崭新的解决思路与 指导原则,有助于新项目的快速测试与各类项目变更的回归测试,对于最终提 高测试效率与测试质量,提高系统的可靠性与可维护性等具有重要意义。 5 成都理工大学硕士学位论文 第2 章自动化测试技术与r d f 的提出 现在流行的自动化测试工具的本质都是采用了一定的测试策略并围绕着这 些策略所定制的,所以策略的高低决定了这些测试工具解决问题的能力大小, 分析了为什么要采用测试框架的技术实现测试过程的自动化并提出r d f 自动 化测试框架技术,阐述本技术所依赖的策略,是测试技术发展的哪个阶段,共 分三个小节。 2 1 自动化测试的方法与策略 2 1 1 功能测试的自动化 黑盒测试的自动化测试就是通过编写一些程序,让这些程序在执行的过程 中模仿于动测试的过程,并且通过原先设定的标准来检验并报告测试的结果1 2 j 。 自动化测试是利用策略、工具以及产出等,减少人工介入到非技术性、重复性、 冗长的测试活动早,从而达到无人监守完成测试,并自动产生测试报告,分析 测试结果等一系列活动。自动化测试的目标是对被测试系统进行自动测试。总 的来说,自动化测试的目的就是用较少的开销,获得彻底的测试,并保证产品 的质量。 为什么要自动化功能测试? 现在,i t 部门的压力越来越大。管理部门希望 i t 部门通过软件可以交付新功能,抓住新的商业机会和提供有竞争力的优势。 这就意味着需要完成更多的业务应用开发项目,而时间会很紧迫,并不是都有 更多的预算或资源。同时,管理部门越来越意识到软件和销售额的重要关系。 w 曲s e r v i c e s ,联机事务处理和e r p 应用不仅是非常关键的,而且它们直接关 系到公司的产值能力。现在企业非常依赖非常复杂的计算机基础设施。一个典 型的企业可能依靠多个应用,运行在不同的系统上,使用几种不同的前端客户 端,涉及到大量的业务过程并且与很多种数据集交互。可能的组合是高度复杂, 需要成百上千的测试场景。当软件出现故障时,其代价是非常大的,包括销售 额下降、员工的低效率、客户的不满、开发和o a 人员的士气低落。在软件开 发周期中,缺欠发现的越晚其代价越高。上线后发现的缺欠的改正成本可能比 在设计阶段发现的高ml o o 倍。自动化是提高软件测试过程的速度、精确度和 灵活性的关键,使公司可以更早发现和改正缺欠【3 】。 自动化测试的优点:一旦积累了一套自动化测试的程序,日后的测试就 6 筇2 章 j 动化测试技术与r i ) f 的提山 可以节省大量的时间和资源;自动化测试没有时问限制;u ,以反复执行; 可以保证测试执行过程的致性及准确性; 可以有较高的功能测试覆盖率; u 以模拟人量的朋户同时和相继登录,进行各种备样的数据传输。 自动化测试的缺点:并非所有的测试都叮以i | _ | j 自动测试来实现:自动 化测试没有创造性,它只是执行测试程序的指令,j f i j 不会出发拥其他缺陷存药: 的可能性;受具体项目资源的限制,如人力及时m j 、资金预算、还要对测试 程帅进行培训。 所以自动化测试不能完全取代手工测试,自动化测试的适用面:叫归测试, 涉及大量不同数据输入的功能测试,手测完成难度较人的性能测试、负荷测试 与强度测试等。 自动化测试技术发展过程中出现了儿个经典的实用工具,按照丌发工具所 依照的不同策略划分为几大类:手工测试阶段,这个阶段的测试工作完全是 手_ t 做的,不存在什么效率问题,但值得注意的是手工测试到现今也仍然是不 可代管的,自动化测试只是将手t 测试的某些方i f j 自动化了。基于脚本录制 的策略所延伸出来的r 具,比如w i n r u n n e r ,它使用录制2j 川放技术,解决了 很火一部分的手工的重复t 作,f 句自动化测试迈进了一大步。基丁对象识别 的策略延伸出来的工具,代表性的有q t p ,它不冉会巨i 为界面的微小改动就得 重新录制脚本,增加了所录制脚本的灵活件。基j :人粒度的软件复用思想策 略延伸h 来的工具,代表性的是各种测试框架,这是现今最先进的测试策略, 也被应用得最多。所谓站得越高看得越远,这些工具所依赖的策略有高下之分, 所以能解决的问题也有高低之分。如图2 1 所示。 拥 二二= 匿雯匠三习 图2 - l 自动化测试阶段 本文提出的基于规则驱动的自动化测试框架( r u l e sd r i v e nf r a m e w o r k ) , 简称r d f 测试框架,处丁图2 一i 叶1 自动化测试的第四个阶段。r d f 技术从业务 分析出发,产生的脚本对测试人员来说是二i f = 可见的,他们只要分析业务,而小 用再懂得计算机编程技术就能实施自动化测试。下文介绍= i 类典型的测试j 二具 及其采用的策略。 仃 冒 成都理1 :大学硕十学位论文 2 1 2 基于录制回放策略的工具 以w i nr u n n e r 为代表的一类测试工具,既可以录制用户操作进行回放,也 可以通过修改脚本完成断点设置、单步进行等操作,它是基于录制回放策略的 工具旱最优秀的代表,功能十分强大。 w i n r u n n e r 是m e r c u r vi n t e r a c t i v e 公司开发的一种自动化功能测试工具,最 主要的功能是自动重复执行某一固定的测试过程,它以脚本的形式记录下手工 测试的一系列操作,在环境相同的情况下重放,检查其在相同的环境中有无异 常的现象或与实际结果不符的地方。可以减少由于人为因素造成结果错误,同 时也可以节省测试人员大量测试时间和精力来做别的事情。在一次测试执行过 程中,w i n r u l l l l e r 记录所有必须的操作,设置检查点考察应用程序的各个对象, 把过程保存为脚本。应用程序更新后,通过对脚本的运行,重复先前的操作, 检查错误是否己被修改、是否有新错误被引入等【6 】。 2 1 1 3 基于对象捕捉策略的工具 q t p ,全称为q u i c kt e s tp r o f e s s i o n a l ,它是基于对象捕捉策略的工具中的 优秀代表,与w i n r u n e r 同为m e r c u r yi n t e r a c t i v e 公司丌发的功能强大的功能测 试工具,是新一代自动化测试解决方案,采用了关键词驱动( k e y w o r d d r i v e n ) 测试的理念,能完全简化测试的创建和维护工作。它是w i n r u n n e r 的后续产品, 具有w i n r u n n e r 的所有功能,并且还有一些独有的特性,0 t p 对j 2 e e ,n e t 架构的应用程序支持得比w i n r u n n e r 更好1 7 】oq u i c k t e s t 关键词驱动方式独到之 处在于,测试自动化专家可以通过一个整合的脚本和纠错环境,拥有对基础测 试脚本和对象属性的完全访问权限,这些脚本和纠错环境与关键词视图 ( k e y w o r dv i e w ) 可以互为同步俐。 q t p 的工作原理: ( 1 ) 录制的时候,o t p 将测试时操作过的所有对象都记录下来,保存在 对象库o b j e c tr c p o s i t o r y 中,记录的形式是一个逻辑名加上若干识别属性。 ( 2 ) 运行脚本时,q t p 分析该脚本要执行哪个对象的操作,然后根据该 对象中的逻辑名,在对象库中查找该对象的详细记录,在运行真实的软件中按 图索骥,找到需要操作的对象,把规定的操作施加在该对象上。施加的主要动 作就是把操作的相关消息时间放入到浚对象窗口的消息循环队列中。 所以,一个完整的脚本测试应该包括两部分:测试脚本的代码和对象库。 8 第2 章自动化测试技术与r d f 的提出 2 1 4 基于软件复用策略的工具 自动化测试框架是由软件复用的思路想法所产生的新的解决方案,是实现 大粒度软件复用的有效途径。 测试框架属于领域框架的内容,近年来发展得很快,各种类型的自动化测 试框架中,最具有代表性的是数据驱动的自动化测试框架和关键字驱动的自动 化测试框架。c a r ln a g l e 的数据驱动引擎技术( d d e ) 运用到自动化测试框架形成 了数据驱动测试框架。这种框架从某个数据文件( 例如o d b c 源文件、e x c e l 文 件、c s v 文件、a d o 刈象文件等) 中读取输入、输出的测试数据,然后通过变 量传入事先录制好的或手工编写的测试脚本中【9 。在这个过程当中,数据文件 的读取、测试状态和所有测试信息都被编写进测试脚本里:测试数据只包含在数 据文件中,而不是脚本罩,测试脚本只是一个“驱动”,或者说是一个传送数据 的机制,数据驱动的自动化测试框架现在已经被大量的在测试工程中应用到。 关键字驱动自动化测试框架是一种截然不同的思想,它把传统测试脚本中 变化的与不变的部分进行了分离,这种分离使得分工更明确,并且避免了它们 相互之问的影响。使用关键字驱动自动化的思想,测试人员可以轻易地实现对 测试的修改和定制,以及对测试脚本的维护,提高了测试用例的重用性,这种 测试框架是目前最先进的测试技术,当然在实际测试过程中,这些测试框架都 是混合使用的。 2 2 软件复用及相关技术 3 1 1 什么是软件复用 软件复用是指重复使用“为了复用目的而设计的软件”的过程。可复用软 件是指为了复用目的而设计的软件。重复使用软件的行为还可能是重复使用“并 非为了复用目的而设计的软件”的过程,或在一个应用系统的不同版本问重复 使用代码的过程,这两类行为都不属于严格意义上的软件复用】。 3 1 2 软件复用的相关技术 软件复用的相关技术有:软件构件技术、软件构架、领域工程、开放系统、 软件再工程、软件过程、c a s e ( c o m p u t e r a i d e ds o n w a r ce n g i n e e r i n g ) 技术等 1 4 1 。构件是指应用系统中可以明确辨识的构成成分,而可复用构件是指具有相 9 成都理上人学硕士学位论文 对独立的功能和可复用价值的构件。 软件构件技术是支持软件复用的核心技术,是近几年来迅速发展并受到高 度重视的一个学科分支。其主要研究内容包括有构件获取,有目的的构件生产 和从己有系统中挖掘提取构件;构件模型,研究构件的本质特征及构件间的关系; 构件描述语言,以构件模型为基础,解决构件的精确描述、理解及组装u j 题; 构件分类与检索,研究构件分类策略、组织模式及检索策略,建二构件库系统, 支持构件的有效管理;构件复合组装,在构件模型的基础上研究构件组装机制, 包括源代码级的组装和基于构件对象互操作性的运行级组装;标准化,构件模型 的标准化和构件库系统的标准化。 软件构架是对系统整体结构设计的刻画,包括全局组织与控制结构,构件 间通讯、同步和数据访问的协议,设计元素间的功能分配,物理分布,设计元 素集成,伸缩性和性能,设计选择等。软件构架研究如何快速、可靠地从可复 用构件构造系统的方式,着重于软件系统自身的整体结构和构件间的互联。其 中丰要包括:软件构架原理和风格,软件构架的描述和规约,特定领域软件构架, 构件向软件构架的集成机制等。 其它的软件复用技术不再一一介绍,不过它们也都很重要,共同影响软件 复用的实现,软件复用技术将促进软件产业的变革,使软件产业真j 下走上工程 化、工业化的发展轨道。软件复用将造成软件产业的合理分工,专业化的构件 生产将成为独立的产业而存在,软件系统的开发将由软件系统集成商通过购买 商用构件,集成组装而成。软件复用所引起的产业变革将会带来更多的商业契 机,形成新的增长点【1 6 】【1 5 】。软件复用是软件工程发展的必然,框架是当前软 件复用的最有效方式,是一种基于体系结构的软件复用技术,它定义了应用程 序的骨架,并提供了用于实现的标准用户界面。运用框架进行应用系统开发既 可以获得构件复用,又可以获得系统体系结构与开发过程的复用,这将有效地 降低开发成本j 。 2 3 采用测试框架做自动化测试 框架是面向对象系统获得最大软件复用的方式之一,目前已有一些成熟的 框架技术应用于相应的领域,帮助应用开发人员快速开发各种领域应用软件, 并提高了软件的质量和可维护性。 2 2 1 测试框架的优点 概括起来使用测试框架做测试的项目具有以下一些优点【1o 】,【1 2 1 : 1 0 第2 章自动化测试技术与r d f 的提出 ( 1 ) 减少代码的编写量,框架提供了领域应用的核心体系结构和热点的抽 象设计及缺省的实现代码; ( 2 ) 大粒度的软件复用,框架不仅提供了代码复用,而且实现了所有领域 应用的体系结构设计复用,从而减轻领域应用开发中的具有重要意义的软件设 计工作量: ( 3 ) 良好的扩展性和应用性,利用框架中定义的良好结构,特别是热点的 灵活设计,通过扩展和特例化这些热点可以方便地建立各种具体的领域应用; ( 4 ) 高可靠性,框架设计中往往利用各种设计模式等来解决特定的设计问 题,这些设计都是经过实际验证的成功经验; ( 5 ) 可维护性,基于框架丌发领域应用不仅效率高,而且这些应用都具有 一致的体系结构,使得维护变得容易。 2 2 2 测试框架在回归测试上的优势 一个好的测试框架,将会有良好的可回归性。通常测试用例在回归测试中 不可重用的原因可以归为两类:环境的变化;u i 的变化。所谓环境的变化 是特定软件的运行前置与后置条件变化,当用例的运行以系统环境( 数据库或 时间) 为条件时,该用例被称为环境依赖的,必须为它的运行假设出适当的环 境。当环境不满足时会导致测试用例运行失败或无法达到预期目的。u i 的变化 例如业务要素有增减、按钮的位置有移动等。只有适合的框架才可以很好地完 成回归测试。 2 2 3 自动化测试的发展趋势 自动化测试的发展方向在于:让没有任何开发经验的测试人员能够进行自 动化测试、更简单的测试脚本语言、更低的测试脚奉维护成本、和商业工具的 无缝集成。现在的自动化测试框架正在朝这个方向不断努力中。 现在开发的自动化测试的方法与策略基本都是基于从前的字符终端系统与 现有面向对象软件所做的努力,针对未来软件的新形态网构软件【】3 j 建立一 套适合于i n t e m e t 开放、动态和多变环境的新型软件测试理论、方法和技术体 系也是一种新的挑战。 成都理t 大学硕士学位论文 2 4 框架的概念与应用类别 2 4 1 框架的概念 框架是构成一类特定软件可复用设计的一组相互协作的类,它阐明了整个 设计、类问依赖和成员类的责仟分布。这此类通常是抽象类,实现细节放在具 体子类中,构成一个抽象设计,不同的子类构成对设计的不同实现。它是一个 不完全的系统,是一个特定领域内的应用程序的部分设计和实现;它能够被裁 剪,从而创造一个完性的应用程序,可以减少建立应用程序的工作量 l8 j - i ”】。 从领域工程来看,框架是实例化的d s s a ( d o m a i ns p e c m cs o f h v a r e a r c h i t e c t u r e ,特定于领域的软件体系结构1 ,它反映了个软件系统族的体系结构, 并且提供了创建后者的基本构造单元,同时定义了针对特定的功能需要在何处 进行调整和修改,即扩展点( h o ts p o t s ) 【2 0 。软件框架有助于实现领域内体系结 构层次较大粒度的设计复用,提高应用开发中复用的比例,从而保证复用活动 的成功率,降低应用开发的成本【l ”。 2 4 2 框架的特征 2 0 世纪8 0 年代以来,许多学者围绕框架的定义、开发、实例化进行了大 量研究,综合各种对于软件框架的定义和描述,可以发现框架具有以下几个特 点:( 1 ) 框架是面向特定领域的,它构成了软件产品线的核心资产;( 2 ) 框架是 d s s a 的实例,具有部分实现的特性,它反映了产品线中应用的体系结构;( 3 ) 框架由一组协作的成分构成;( 4 ) 利用框架开发应用系统是通过扩展点的实例化 过程实现的”。 可重用和扩展是框架的两个重要特征,可重用是框架的设计出发点,扩展 是框架与其它重用设计相比较的优点。 重用着重于提高研发速度,并尽可能减小扩展设计在测试周期中的比重。 自动化则是着重于提高执行部分在测试周期中的比重。虽然每个产品测试周期 不同,一般而言,多数人的测试时问都花在执行上,其次才是研发,设计,规 划,分析或审查。通过改进我们的重用和自动化,花费在测试周期中的大部分 的努力是我们可以正确影响的地方【2 ”。 框架利用一系列的对象和它们之间的接口来对应静态和具有固定结构的端 口,并能通过框架提供的界面使用户能够很容易地完成变化的剩余部分的设计 而得到一个新应用系统i l ”。 1 2 第2 章自动化测试技术与r d f 的提出 2 4 3 框架的分类 框架具有领域性,根据所面向的问题领域不同,框架主要分为三类:应用框 架、领域框架、支持框架一【2 3 】。 应用框架( a p p l i c a t i o nf m m e w o r k ) :应用框架封装了各种专门的技术或功能 并可应用于不同领域的应用开发,例如e t + + 图形用户界面框架【2 ,微软基本 类库( m f c ) 以及j a v a 基本类库( j f c ) 睇“。领域框架( d o m a i nf r 锄e w o r k ) :领域框 架为某个特定问题域的实现提供了专门的解决方案和功能,如各种生产控制系 统框架、银行或报警系统框架、通信服务系统框架,等等。领域框架的使用将 最大限度地复用已有的设计经验与解决方案,降低开发成本与丌发时间,并且 可以提高系统的可靠性和可维护性等性能。支持框架( s u p p o r tf r a m e w o r k ) :支持 框架提供一些与计算机底层相关的特殊服务,如内存与文件系统的管理、设备 驱动、分布式计算支持服务等。 领域框架( d o m a i nf r a m e 、o r k ) :领域框架为某个特定问题域的实现提供了 专门的解决方案和功能,如各种生产控制系统框架、银行或报警系统框架、通 信服务系统框架,等等。很多领域应用软件是为某个部门或厂家定制的,开发 往往是从头开始,而领域框架的使用将最大限度地复用己有的设计经验与解决 方案,降低开发成本与开发时问,并且可以提高系统的可靠性和可维护性等性 能。 支持框架( s u p p o r tf r a m e w o r l 0 :支持框架提供一些与计算机底层相关的特殊 服务,如内存与文件系统的管理、设备驱动、分布式计算支持服务等【2 ”。 这三类框架都可以为应用开发者提供相应的设计复用,减轻代码的编写与 维护工作。我们通常是丌发某个特殊领域的面向对象框架,以致力于提高领域 应用的开发效率。为了开发灵活的、可复用的软件系统,面向对象设计方法主 要运用两种基本的复用机制,即继承( i n h e r i t a n c e ) 和组合( c o m p o s i t i o n ) 。根据框 架实际应用中运用这两种机制的差别,框架一般可分为以下三类:白盒 ( w h i t e - b o x ) 框架、黑盒( b l a c k - b o x ) 框架和两者的混合框架。 测试框架是属于领域框架类,它为测试的自动化实现提供解决方案和功能, 使用自动化测试框架将可能最大限度地复用已有的设计经验与解决方案,降低 开发成本与开发时间,并且可以提高系统的可靠性和可维护性等性能。 测试框架广泛应用于各行各业,具体应用系统相互之间存在较大的差别, 并涉及不同测试仪器等物理设备的操作与控制,因此领域知识非常复杂。测试 框架针对不同的系统测试可分为机电系统测试框架,自动化系统测试框架,软 件系统界面测试框架等。 1 3 成都理一火学硕十学位论文 图2 2 软件夏用发展圉m 测试框架依据其策略不同可分为c o d e l c s s 与c o d e b a s e d 两大类,c o d e b a s e d 的实现需要测试人员编写测试脚奉代码,对人的要求较高,c o d e l e s s 则力争对 测试人员屏蔽代码实现过程,前者的典型代表有模块化测试框架、测试库框架 与数据驱动的测试框架,后者的代表是关键字驱动的测试框架。 规则驱动的测试框架也是尽力对测试人员屏蔽脚本代码,它不同于关键字 驱动的地方在于建立在更高级别的测试策略上,它要对测试意图的产生做自动 化的处理。 图2 2 展示了i m f 在这一系列发展进程中所处的地位。 2 4 4 框架的设计 相对于具体应用程序的开发,框架的设计与开发难度比较大,但是框架开 发人员也积累了不少框架设计开发的经验,并总结了一些如下的公认的原则 【2 2 】: ( 1 ) 保持问题域的建模独立于用户界而和平台,尽量使用设计摸式。 ( 2 ) 尽量参考和采用领域应用的一些设计标准要求。 ( 3 ) 清楚地表达哪些内容或步骤是由框架提供的以及哪些是必须由框架使 用者来完成,即显式地标明哪些类必须被子类化或不能被继承,哪些操作必须 用户定义或不能被重载。 ( 4 ) 接口与实现相分离。这将极大地减少子系统实现之问的相互依赖关系, 而转化为重用性更好的接口依赖,从而客户无须知道他们所使用的对象是具体 什么类,而只须知道定义接口的抽象类( 或j a v a 中的接口) ,还可以方便地替换 1 4 第2 章自动化测试技术与r d f 的提山 具有相同接口的类或构件。 ( 5 ) 接口应该而向角色,即接口在特定应用场景中所充当的角色。 ( 6 ) 框架巾尽量限制多重继承的使用,便于用户对框架的理解和使用。 ( 7 ) 优先使用对象组合,而不是类继承。利用对象组合技术的设计具有更 好的复用性并且使用简单。 ( 8 ) 应浚利用重要的视图来描述框架中的类与应用中的类之间的交互,比 如,当框架调用具体应用中的类方法或具体应用调用框架中的类方法时的对象 创建情况。 ( 9 ) 为了降低框架开发的复杂程度,可以将框架划分为若干个小的单元。 上面提到的一些框架设计原则,虽然都具有重要的作用和意义,但在具体 实施过程中尚存在一些困难。 框架开发是一个迭代的递增的积累过程,这个过程需要综合运用领域知识 和软件设计两方面的专家知识与技术。目前,框架开发缺乏系统化的开发指导 准则,积累的成熟技术也不多。总的来说,框架开发方法大体上可分为以卜三 类:实例驱动的开发方法、基于领域分析的开发方法、逐步泛化的开发方法 2 2 】。 这些方法各有优点,

温馨提示

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

评论

0/150

提交评论