




已阅读5页,还剩47页未读, 继续免费阅读
(计算机软件与理论专业论文)可视化建模工具的trichotomy测试方法.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
山东大学硕士学位论文 可视化建模工具的t r i c h o t o m y 测试方法 摘要 软件测试是为了发现错误而执行程序的过程。它是软件工程的重要组成 部分,是软件开发的重要环节即只有通过测试的软件才能够提供质量上的 保证;而从软件工程角度看,测试是验证软件是否能达到设计和期望目标的 唯一有效的方法。 软件测试伴随着软件工程概念的提出,已经经历了数十年的发展历程。 其间,软件测试方法也随着软件工程开发方法的发展不断向前发展,并出现 了诸多的研究分支,如传统的测试方法,面向对象的测试方法,面向w e b 应 用的测试方法等而这些测试方法的提出都是伴随着某一开发方法的。 目前,基于面向对象理论的软件建模方法是研究者们争相研究的热点 例如,国外r a t i o n a l 公司推出了支持u m l 的r a t i o n a lr o s e 工具软件;在国 内有,北航软件研究所的u m l d e s i g n e r 和北大计算机系的青鸟j b 0 0 3 0 , 及本实验室自主开发的支持用户界面自动生成的可视化建模工具a u i 以上所列举的都是对建模方法提供支持的软件工程工具因此,对此类 软件的质量保证是软件测试的重要工作但是目前文献中所介绍的测试方法 却并不适合可视化建模工具软件的测试从其自身的特点考虑,有:特定的 输入,其输入为用户根据需求所建模型;特定的输出,其输出为依据模型所 生成的程序代码;程序修改的多方面影响性,其不单是来自程序的本身设计, 还有更多的是来自建模方法的修改而在测试时,其最大的特点是:实例测 试最主要的目的是为了验证与检查建模方法的正确性、充分性等鉴于以上 的情况,本文提出了可视化建模工具软件的t r i c h o t o m y 测试方法 本文的主要工作包括: 文献总结通过查阅文献,发现现有的测试方法并不能支持可视化建 模工具软件的测试在传统测试中,白盒法检验结构,黑盒法测试软件的设 山东大学硕士学位论文 计功能;面向对象的测试中对类、类簇的测试是主要的测试内容;对于w e b 应用的测试,其测试内容是面向网络应用的;对g u ! 测试,其主要测试界面 控件的功能。 提出t r i c h o t o m y 测试方法。其以定义形式给出该方法中模型检查、 界面功能测试、支持建模的功能测试三部分划分的理论依据;对于该方法提 出了完整的测试过程,并具体、分步骤的进行了叙述;在测试结果分析部分, 给出了测试分析的表格模扳。再者,本文通过实例测试的总结提出了一些在 此类软件测试中用到的测试内容与测试原贝f j 。 总结了大量实例测试的结果。对软件a u i 在功能模型、对象模型、交 互模型、界面模板四个方面分别进行测试。通过2 0 0 多个界面的实例测试, 从运用模型的对需求建模到最终v b 代码的实现,其不但运用t r i c h o t o m y 测试方法对实验室自主研制的软件a u i 进行测试评估;而且,在另一方面, a u i 测试也验证了该测试方法对此类工具软件测试的有效性 关键字:软件测试,t r i c h o t o m y 测试方法,建模方法,u m l ,g u i ,面向 对象,软件工程 u 山东大学硕士学位论文 t h r i c o t o m yt e s t i n gm e t h o do fv i s u a lm o d e l i n g t o o l s a b s t r a c t s o f t w a r et e s ti se x e c u t i n gp r o c e s si no r d e rt of i n dm i s t a k e i ti si m p o r t a n t p a r ti ns o f t w a r ee n g i n e e r i n g ,w h i l es o f t w a r ed e v e l o p m e n t i no t h e rw o r d ,t h e s o f t w a r et e s t e da n dt e s t i f i e dc a ne n s u r ea n dv a l i d a t eq u a l i t y a n di ns o f t w a r e e n g i n e e r i n g ,s o f t w a r et e s t i so n l ye f f e c t i v em e t h o df o rv a l i d a t i n gs o f t w a r e d e s i g nt oa c c o r dw i t he x p e c tt a r g e t s o f t w a r et e s th a sb e e nt e n sy e a r sw h i l et h ec o n c e p to fs o f t w a r ee n g i n e e r i n g i nc o u r s eo f , g o i n gw i t hs o f t w a r ed e v e l o p m e n tm e t h o d ,t h em e t h o do ft e s t s o f t w a r eh a sb e e nd e v e l o p i n ga n dg o i n gu p w h i l i n gi t ,s o f t w a r et e s th a sb e e n d i v i d e di n t om a n ys t u d yf i e l d s ,c o n v e n t i o n a lt e s tm e t h o d s ,o b j c o t - o r i e n t e dt e s t m e t h o d ,o r i e n t e dw e ba p p l i c a t i o nt e s tm e t h o d ,c g b u tak i n do ft e s tm e t h o d o r i e n t sd e v e l o p m e n tm e t h o d r e c e n t l y ,b a s e do no b j e c t - o r i e n t e ds o f t w a r em o d e l i n gm e t h o dh a sb e c o m ea s t u d yr e s p e c ti ns c h o l a r s o v e r s e a sc o r a t i o n a lh a v ed e v e l o p e dr a t i o n a lr o s e t o o l ss o f t w a r eh o l d i n go u tu m l i n t e r n a lr e s e a r c hi n s t i t u t i o ne g b e i j i n g u n i v e r s i t y o fa e r o n a u t i c s& a s t r o n a u t i c ss o f t w a r e g r a d u a t e s c h o o l s u m l d e s i g n e ra n dp e k i n gu n i v e r s i t yc o m p u t e rd e p a r t m e n t sj b 0 0 3 0 i n t ot h e b a r g a i n ,o u rl a bi n d e p e n d e n c ed e v e l o p e ds u s t a i n i n g u s e ri n t e r f a c ea u t o m a t i c m a k ea u ib a s e do nv i s u a lm o d e l i n g b yt h i sn a r r a t e ,w ec a nk n o w ,t h ea c t i v i t yd e v e l o p i n gs u s t a i n i n gm o d e l i n g t o o l sh a sb e e ne x p a n d i n g ,a l s om o d e l i n gm e t h o d s os o f t w a r et e s ti si m p o r t a n c e w o r kf o rv a l i d a t i n gq u a l i t y b u tt h e s et e s tm e t h o d sa r e n ti ns u i tw i t ht e s t i n g v i s u a l m o d e l i n g s o f t w a r en o w ,f o rc h a r a c t e r i s t i c so nm o d e l i n gt o o l s e g i i i 山东大学硕士学位论文 i m p o r ts p e c i f i c a l l y ,t h e i m p o r t i st h em o d e lb u i l tf o r d e m a n d ;e x p o r t s p e c i f i c a l l y ,t h ee x p o r ti sp r o g r a mc o d ef o rm o d e l ;m u l t i d i m e n s i o n a la f f e c to f p r o g r a mm o d i f i c a t i o n ,c g p r o g r a md e s i g n ,a m e n d i n gm o d e l i n gm e t h o d a n d i t i st h em o s ti m p o r t a n c ep e c u l i a r i t yt h a ti n s t a n c et e s t i n gi si no r d e rf o rv e r i f ya n d v a l i d a t em o d e l i n gm e t h o d sc o r r e c t n e s sa n ds u f f i c i e n c y t h i n k i n go ft h e s e i n s t a n c e s ,t h i sp a p e rp u tf o r w a r dat r i c h o t o m yt e s t i n gm e t h o df o r v i s u a lm o d e l i n gs o f t w a r e t h em a i nw o r ko ft h i sp a p e ri n c l u d e sf o l l o w i n g l i t e r a t u r e s u m m a r i z i n g i tf o u n d t h a tt e s tm e t h o di sn o ts u i to f s u s t a i n i n g v i s u a lm o d e l i n gt o o l sb yr e f e r r i n gl i t e r a t u r e i nt r a d i t i o n a lt e s t , w h i t eb o xm e t h o dv e r i f i e ss t r u c t u r e ;b l a c kb o xm e t h o dt e s t ss o f t w a r ed e s i g n e d f u n c t i o n i ti si m p o r t a n tt e s t i n gc o n t e n tf o rt e s t i n gc l a s sa n dc l a s sc l u s t e ri n o b j e c t o r i e n t e dt e s t f o rw e ba p p l i c a t i o nt e s t ,t e s t i n gi m p o r t a n c eo r i e n t sn e t a p p l i c a t i o n f o rg u it e s t i n g ,i tt e s t su s e ri n t e r f a c ew i d g e tm o s t l y p r o p o s i n gt r i c h o t o m yt e s t i n gm e t h o d i ti n c l u d e d f i r s t t h e t h e o r yo fm o d e l i n gs o f t w a r ed i v i s i o nf o rm o d e lc h e c ka n dg u it e s t i n ga n dt h e f u n c t i o ns u s t a i n i n gm o d e l i n g ,t h er e p r e s e n t a t i o ni sd e f i n i t i o n ,s e c o n d ,p r o p o s e w h o l et e s tp r o c e s s ,a n de m b o d i e di t ,t h i r d ,t h ep a p e rg i v et e s ta n a l y z i n gr e p o r t t e m p l a t e ,a n dp r o p o s et e s tm a t t e ra n dt e s tp r i n c i p l ef o rm o d e l i n gs o f t w a r e s u m m a r i z i n gam a s so fr e s u l to fi n s t a n c et e s t i tt e s t e da u ii nf u n c t i o n m o d e l i n g ,o b j e c tm o d e l i n g ,i n t e r a c t i o nm o d e l i n g ,u s e ri n t e r f a c et e m p l a t e ,b y b e y o n d2 0 0u s e ri n t e r f a c ei n s t a n c et e s tf r o mc o m m a n dm o d e l i n g a ta u it o c r e a t i n gc o d e ,t h ep a p e rg a v ea u ie o l l i g a t i o nt e s te v a l u a t i o nv i at r i c h o t o m y t e s t i n gm e t h o d i no t h e rs i d e ,p a p e rg i v ev a l i d i t yo ft h i sm e t h o dv i at e s ta u i b a s e do nt h em e t h o d k e y w o r d s :s o f t w a r et e s t ,t r i c h o t o m yt e s t i n gm e t h o d ,m o d e l i n gm e t h o d ,u m l , g u i ,o b j e e l - o r i e n t e d ,s o f t w a r ee n g i n e e r i n g i v 山东大学硕士学位论文 原创性声明和关于论文使用授权的说明 原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下, 独立进行研究所取得的成果。除文中已经注明引用的内容外,本 论文不包含任何其他个人或集体已经发表或撰写过的科研成果。 对本文的研究作出重要贡献的个人和集体,均已在文中以明确方 式标明。本声明的法律责任由本人承担。 论文作者签名:剑日期:伊歹c ,歹 关于学位论文使用授权的声明 本人完全了解山东大学有关保留、使用学位论文的规定,同意学校保 留或向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅 和借阅;本人授权山东大学可以将本学位论文的全部或部分内容编入有关 数据库进行检索,可以采用影印、缩印或其他复制手段保存论文和汇编本 学位论文。 ( 保密论文在解密后应遵守此规定) 论文作者签名:幽导师签名:曼盘 日期:哆p r 山东大学硕士学位论文 1 前言 1 1 问题提出的背景 随着软件工程概念的提出,软件开发方法就一直是人们研究的熟点; 而与之相应的软件测试方法也在随之不断的向前发展,并出现了诸多的研 究分支。在近十年里,基于模型驱动的软件开发方法和面向对象的软件建 模方法已成为目前研究的热点,并一度出现了方法大战 1 1 。在这其中,u m l ( u n i f i e d m o d e l i n g l a n g u a g e ) 在强大的设计阵容的支持下脱颖而出,并成 为o m g 的标准;同时,r a t i o n a l 公司推出了支持u m l 的r a t i o n a lr o s e 工 具软件。在这之后,国内也出现了支持软件代码自动生成的软件建模工具 和环境的研究,可用成果有,北航软件研究所的u m ld e s i g n e r 和北大计 算机系的青鸟j b 0 0 3 0 2 1 。 u m l ,统一建模语言,适用于系统设计建模,己被大多数的软件设计 和开发人员所接受,因而成为软件建模方法中讨论和研究的重点,并不断 地从各个方面对其进行补充。本实验室在万建成教授提出的支持用户界面 自动生成的f m p ( f u n c t i o n m o d e l p r e s e n t a t i o n ) 界面模型【3 】的指导下,对 u m l 中界面建模的支持不足进行了扩充,并开发了支持用户界面自动生成 的可视化建模工具a u i ( a u t o m a t i cu s e ri n t e r f a c e ) 。 从软件工程角度出发,为了检验和验证a u i 的正确性,则有必要建立 相应的测试方案,对其进行测试和评估。但是通过查阅大量的国内外文献, 发现现有的测试方法并不适应可视化建模工具软件的测试。因此在理论研 究和对a u i 测试归纳的基础上,本文提出了适应此类软件的测试方法,手 段,并具体提出了针对此类软件的t r i c h o t o m y 测试方法。 1 2 软件测试的基本问题与主要任务 软件测试是使用为发现错误所选择的输入和状态的组合而执行代码的 过程【4 】。对于一个应用系统的测试,有两种不同的角度:开发人员希望提 供足够的证据来证明软件系统的功能是可行的,这便是基于规格说明的测 试;而用户则希望知道系统的缺陷,即找到错误。作为测试人员则要从这 山东大学硕士学位论文 两个角度同时考虑,既要对系统已实现的功能提供证据,同时还要找出系 统不能做什么。一般而言,软件测试包含以下基本问题:( 1 ) 如何对一个 应用系统选择测试用例( 2 ) 依据怎样的准则对所选择的测试用例的覆盖 程度进行评判。( 3 ) 当系统有改动时,如何进行有效的测试用例修订 软件测试一般分为计划阶段、设计阶段,开发阶段、实现阶段和评估 阶段1 5 1 。其中设计阶段和评估阶段是关键。根据各个阶段目标的不同,软 件测试的主要任务有:( 1 ) 设计阶段:通过对系统的整体分析,提出针对 性的策略和规范,对系统输入空间进行合理的划分,据此来写出足够的、 具体的测试用例。( 2 ) 开发阶段:由于系统的规模庞大,测试用例的多样 化,在执行时要考虑效率问题,所以需要开发必要的工具,在测试用例的 选择、修订和完善上尽可能采用自动化的方式( 3 ) 实现阶段:代码完成 后产品达到可靠性和稳定性阶段,也是产品的a b 版阶段。产品的质量将 由该阶段测试实现程度来决定。( 4 ) 评估阶段:根据设计阶段提出的准则 对测试用例的覆盖程度进行评判,对测试的有效性及结果的可信性提供量 化的依据 为了支持基于建模方法的软件工程工具的研究、开发,则测试工作是 必须要做的工作,而且应有理论及方法的支持。其重要作用在于:测试工 作的展开必将是对此类软件工程工具发展的重要支持,而且也是对建模方 法的发展与完善的重要支持。即它不但检验和验证了工具的正确性:而且 也检验和验证了建模方法的正确性为此,本文提出了支持可视化建模工 具软件的t r i c h o t o m y 测试方法。对于该方法,提出将此类工具软件进 行模型部分、界面部分和支持建模的功能部分的三部分划分,并给出了划 分的理论依据。其细节将在第4 章做具体叙述。其主要包括:( 1 ) 全面、 完整的t r i c h o t o m y 测试方法;( 2 ) 以定义形式给出的该方法中各个部 分的划分的理论依据;( 3 ) 对于该方法的完整测试过程,并分步骤做了详 细叙述。 1 3 本文的研究意义 由于面向对象的分析与设计( 0 0 a o o d ) 方法的重要性日益突出,人们 对它的研究、开发和应用的热情也在不断升高在1 9 8 9 年,以专著、论文 或技术报告等形式提出的o o a o o d 方法或o o 建模语言有近l o 种到 第2 页 山东大学硕士学位论文 1 9 9 4 年,其数量增加到5 0 种以上。这一切不但表明了面向对象的方法与 技术已得到广泛的认可并成为当前的主流,而且出现了各种各样的基于上 述方法的建模工具软件。其中有r a t i o n a l 公司的基于u m l 的r a t i o n a lr o s e 工具软件,其是在提出统一建模语言( u m l ) 并获得了o m g 的承认后而 开发出来的。而国内的此类工具软件也有所研究,如前面提到的 u m l - d e s i g n e r 和j b 0 0 3 0 ,及a u i 通过以上可以看出随着近年来面向对象领域建模方法的增多。以及支 持其方法的软件工程工具的出现,则对此类软件工程工具的测试研究应成 为测试领域中研究的重要分支。然而,对于此类可视化建模平台的测试目 前却处于起始阶段。究其原因是多方面的;( 1 ) 是面向对象的开发方法提 出是在上个世纪的8 0 年代末,而对可视亿建模工具的研究,却是近十年的 事情( 2 ) 目前人关注的热点是建模方法的本身,而对具体的软件工程实 现工具却研究的不多,既而对其的测试也就少之又少( 3 ) 此类工具由于 在模型指导思想上尚存在着种种的缺陷与不足,所以在设计中改动频繁, 而这对测试工作增加了难度 困难虽然存在,但是为了支持基于建模方法的软件工程工具的研究、 开发。所以测试工作是必须要傲的工作,而且应有理论及方法的支持。其 重要意义在于:测试工作的展开必将是对此类软件工程工具的发展提供重 要的质量保证与支持,而且也将对建模方法发展与完善提供重要的实例应 用支持。即它不但检验和验证了工具的正确性;更重要的是,它也检验和 验证了建模方法的正确性。 1 4 文章的组织结构 本文共分七个部分,第一部分前言主要说明课题研究的背景、关于软 件开发方法的研究现状,及软件测试的基本问题、内容和应用分支,并给 出了测试建模平台的研究意义;第二部分对相关研究进行文献综述;第三 部介绍了被测试客体a u l 的设计思想;第四部分详细介绍了可视化建模平 台的t r i c h o t o m y 测试方法;其包括t r i c h o t o m y 测试方法和该方法 中三部分划分的原则,基于该方法的测试过程,及测试内容、测试原则和 测试结果分析的方法;第五部分通过运用t r i c h o t o m y 测试方法,给出 山东大学硕士学位论文 被测试软件a u 的测试评估,及具体的测试示例;第六部分对 t r i c h o t o m y 测试方法做出评估;第七部分为文章的结束语,总结了本 文所做的工作和下一步应当做的工作。 2 国内外相关研究 2 1 软件开发方法的研究 自软件工程的概念提出以来,软件开发方法就一直是人们研究和讨论 的热点从上个世纪7 0 年代以来,现已经历了3 次重大的变革。它们分别 是:结构化的软件开发方法、面向对象的软件开发方法、基于建模驱动的 软件开发方法,如基于u m l 的r a t i o n a lr o s e 。 结构化软件开发方法包括结构化分析方法、结构化设计方法、结构化 编程方法在此方法中最大的特点就是设计、编码中的模块化。模块是软 件功能的划分,模块间是自项向下,逐步细化的关系在这一方法中,根 据软件工程分析的侧重点不同又划分成:面向数据流的结构化开发方法和 面向数据结构的结构化开发方法( 1 ) 面向数据流的结构化开发方法是运 用数据流图来表达,根据软件内部数据的传递和变换关系,自顶向下的逐 层分解,描绘出满足功能需求的软件模型( 逻辑模型) ,在设计阶段依据模 块的独立性准则、软件结构准则,将数据流图转换为软件的体系结构,用 软件结构图来建立系统的物理模型,实现系统的概要设计( 2 ) 面向数据 结构的结构化开发方法,是通过描述问题的输入,输出数据结构,分析其对 应性,然后推出相应的程序结构,并给出问题的软件过程描述。该方法是 以数据结构为驱动的,适应小规模的软件开发 随着面向对象的编程,面向对象的设计和面向对象的分析的发展,其 最终促成了面向对象的软件开发方法这是一种自底向上和自项向下相结 合的开发方法,该方法强调从问题域的概念分析到软件程序和界面的直接 映射。其基本思想是:以对象建模为基础,不但考虑了输入输出的数据结 构,而且也包含了所有对象的数据结构 6 1 。通过对阅题空间进行自然分割, 以更接近人类思维的方式,建立问题域模型,并对客观实体进行结构模拟 山东大学硕士学位论文 和行为模拟,从而使设计出的软件尽可能直接的描述现实世界,构造出模 块化的、可重用的软件。面向对象方法中对象作为描述信息实体的统一概 念,把数据和对数据的操作融为一体。通过方法、消息、类、继承、封装、 实例等机制构造软件( 系统) ,并为软件重用提供了强有力的支持。面向对 象的编程语言( 如c + + ,j a v a ,v b ,d e l p h i 等) 和面向对象的数据库技术 的发展,使得面向对象的分析和设计能够平滑的过渡到实现。可视化 ( v i s u a l ) 编程和基于部件( c o m p o n e n t b a s e d ) 编程技术( 如a c t i v e x 和 c o m d c o m 技术) 也使得面向对象的方法在软件工程中更炙手可热。 在软件开发方法发展到o o 方法之后,在面向对象的分析和设计中兴起 一种将设计和与其相对应表示符号融为一体的方法随后,这种方法和语 言被广泛的接纳,使其成为目前研究较多的软件开发方法统一建模语言 u m l ( u n i f i e dm o d e l i n gl a n g u a g e ) 是由r a t i o n a l 公司的知名专家g r a y b o o c h ,i v a rj a c o b o s o n 和j i mr u m b a u g h 联合开发的第三代面向对象 ( o b j e c t - o r i e n t e d ,简称0 0 ) 的建模语言,它采纳和扩展b o o c h 标记法、 o m t ( o b j e c t - o r i e n t e dm o d e l i n ga n dd e s i g n ) 标记法和o o s e 标记法,还吸取 了面向对象技术中其它流派的长处,其中也包括非0 0 方法的影响。同时, u m l 在演变过程中也提出了一些新的诸如模板、职责、扩展机制、线程、 过程、分布式、并发、模式、合作、活动图等新概念,并清晰地区分类型、 类、实例、细化、接口和部件等概念。u m l 适用于以o o 技术来描述任何 类型的系统,而且适用于系统开发的不同阶段,从需求规格描述直至系统 完成后的测试和维护1 7 。作为一种建模语言,u m l 的定义包括u m l 语义和 u m l 表示法其中u m l 语义是基于u m l 的精确元模型,并支持对元模型的 扩展定义;u m l 表示法是定义u m l 符号的表示法,是为使用这些图形符号 和文本语法进行系统建模提供标准1 7 】【引。u m l 的主要内容可由下列5 类图 ( 共9 种图形) 定义:( 1 ) 使用实例图。从用户角度描述系统功能,并指出 各功能的操作者。( 2 ) 静态图。包括类图、对象图和包图其中类图描述 系统中类的静态结构;对象图是类图的实例;包图用于描述系统的分层结 构,由包和类组成,表示包与包之间的关系。( 3 ) 行为图。分为状态图和 活动图,用于描述系统的动态模型和组成对象问的交互关系。其中状态图 是对类图的补充,仅为那些有多个状态其行为受外界环境影响且发生改变 的类所作;而活动图描述的是满足实例要求所要进行的活动和活动间的约 山东大学硕士学位论文 束关系,以有利于识别并行活动。( 4 ) 交互图。分为顺序图和合作图,用于 描述对象间的交互关系。其中顺序图表示的是对象间的动态合作关系,显 示的是对象间消息发送顺序和对象之间的交互,强调的是事件和顺序;而 合作图描述的是对象间的协作关系,显示的是对象间的动态合作关系,强 调的是上下级的关系。( 5 ) 实现图分为部件图和配置图。部件图描述的 是代码部件的物理结构及各部件之间的依赖关系,有助于分析和理解部件 之问的相互依赖程度;配置图则是定义系统中软硬件的物理体系结构,用 来显示实际的计算机和设备( 用节点表示) 以及它们之间的连接关系,或 者显示连接的类型及部件之间的依赖性【8 】 就开发方法而言,可以把u m l 归结为静态建模机制和动态建模机制两 大类1 7 1 从应用角度看,当采用0 0 技术设计系统时,首先是描述系统的需 求;其次是根据需求建立系统的静态模型,以构造系统的结构;然后是描述 系统的行为。其中所建立的模型是静态的,包括使用实例图、类图( 包括包) 、 对象图、部件图和配置图等5 种图形,是u m l 的静态建模机制。而表示执 行时的时序状态或交互关系,包括状态图、活动图,顺序图和合作图4 种 图形,是u m l 的动态建模机制 2 2 软件测试方法的研究 2 2 1 传统软件的测试方法 对于以传统方法开发的软件,总的说来可以应用白盒测试( 结构测试) 和黑盒测试( 功能测试) 测试方法来进行测试基于源代码的测试称为白 盒测试,其主要考虑系统的内部结构,所以对于以传统方法开发的软件是 主要的测试方法,究其优点在于结构测试比较容易明确被测对象的集合( 如 语句集合、分支集合、路径集合) 而黑盒测试研究的则大多以数值计算为 主其输入域和输出主要是数值;其不考虑系统的内部结构,只按照规格 说明测试系统拟定的功能 白盒测试主要测试系统的结构,其主要方法有程序结构分析、逻辑覆 盖、基本路径测试等;它根据程序的控制结构设计测试用例,其测试用例 的选择主要看能否达到对系统内部结构的覆盖白盒测试方法将全面了解 第6 页 山东大学硕士学位论文 程序内部逻辑结构、对所有逻辑路径进行测试,是一种穷举路径的测试方 法。另外,在使用这种方法时,也产生了许多的覆盖准则,如:语句覆盖、 判定覆盖、条件覆盖、判定条件覆盖和路径覆盖等。 黑盒测试由于主要测试系统的功能,所以其重点在于如何在输入域中 选择合适的测试用例。黑盒测试方法只着眼于程序的外部结构,不考虑程 序内部逻辑结构,主要针对软件界面、软件功能、外部数据库访问及软件 初始化等方面进行测试。该方法的特点是:穷举输入测试,只有把所有可 能的输入都作为测试情况使用,才能以这种方法查出程序中所有的错误。 黑盒测试的一般方法有:等价类划分法( 包括有效等价类和无效等价类) , 边界值分析法( 包括有效边界值和无效边界值) ,判定表( 系统输入输出 的有效组合) ,因果图( 系统输入输出的制约关系图) 。 2 2 2 面向对象开发方法的软件测试 面向对象技术是一个非常实用且强有力的软件开发方法。它具有许多 特色:( 1 ) 方法的唯一性,即方法是对软件开发过程所有阶段进行综合考 虑而得到的( 2 ) 从生存期的一个阶段到下一个阶段的高度连续性,即生 存期后一阶段的成果只是前一阶段成果的补充和修改( 3 ) 把面向对象分 析( o o a ,o b j e c t o r i e n t e d a n a l y s i s ) 、面向对象设计( o o d ,o b j e c t - o r i e n t e d d e s i g n ) 和面向对象程序设计( o o p ,o b j e c t - o r i e n t e dp r o g r a m m i n g ) 集成到 生存期的相应阶段 9 1 面向对象技术独有的多态、继承、封装等新特点, 则产生了许多在传统语言的设计中所不可能存在的错误例如:在传统的 面向过程的程序中,对于函数y = f u n c t i o n ( x ) ,只需要考虑一个函数 ( f u n c t i o n ( ) ) 的行为特点而在面向对象程序中,还得考虑基类函数 ( b a s e :f u n c t i o n ( ) ) 的行为和继承类函数( d e r i v e d :f u n c t i o n ( ) ) 的行为。 再者,面向对象程序的结构不再是传统的功能模块结构,作为一个整 体,原有集成测试所要求的逐步将开发的模块搭建在一起进行测试的方法 己不再可能而且,面向对象软件抛弃了传统的开发模式,每个开发阶段 都有同以往不同的要求和结果,已经不可能用功能细化的观点来检测面向 对象分析和设计的结果因此,传统的测试模型对面向对象软件已经不再 适用。针对面向对象软件的开发特点,应该有一种新的测试模型。 山东大学硕士学位论文 面向对象的开发分为面向对象分析( o o a ) ,面向对象设计( o o d ) 和面 向对象编程( o o p ) - - 个阶段【9 】。在分析阶段产生整个问题空间的抽象描述, 在此基础上,进而归纳出适用于面向对象编程语言的类和类结构,最终形 成代码。面向对象分析测试和面向对象设计测试是对分析结果和设计结果 的测试,主要是对分析设计时产生的文本进行,是软件开发前期的关键性 测试。面向对象编程测试主要针对编程风格和程序代码的实现进行测试, 其主要的测试内容将在面向对象单元测试和面向对象集成测试中体现。面 向对象单元测试是对程序内部具体单一的功能模块测试。面向对象单元测 试是进行面向对象集成测试的基础面向对象的集成测试主要是对系统内 部的相互服务进行测试,如成员函数间的相互作用,类问的消息传递等。 以上各阶段的测试构成了面向对象方法开发软件的一个相互作用的测试整 体【1 0 】【1 1 1 ,但具体到测试的主体和方法时又各有不同。 ( 1 ) 对面向对象的分析( o o a ) 阶段的测试分为5 个方面:对认定 对象的测试;对认定结构的测试;对认定主题的测试:对定义的属性和实 例关联的测试;对定义的服务和消息关联的测试。 ( 2 ) 对面向对象的设计( o o d ) 的测试,应针对功能的实现和重用 以及对o o a 结果的拓展,有3 个主要方面:对所认定的类的测试、对构 造的类层次结构的测试和对类库的支持的测试 ( 3 ) 在面向对象的编程( o o p ) 阶段,忽略类功能的实现细则,将测 试集中在类功能的实现和相应的面向对象程序风格其主要体现为以下两 个方面:a 、数据成员是否满足数据封装的要求;b 、类是否切实实现了所 要求的功能 另外在具体测试时,还要注意以下几点; ( 1 ) 面向对象编程的特性使得对成员函数的测试,不完全等同于传统 的函数或过程测试尤其是继承特性和多态特性1 2 j ,使子类继承或重载的 父类成员函数出现了传统测试中从未遇到的问题。多态虽然使成员函数的 参数可以有多种类型,但增加了测试的难度。对具有多态的成员函数测试 时,需要在原有的测试分析和基础上扩大测试用例中对输入数据类型的考 虑 ( 2 ) 对于葱向对象程序,相互调用的功能分布在程序的不同类中,类 通过消息相互作用申请和提供服务类相互依赖极其紧密,根本无法在编 山东大学硕士学位论文 译不完全的程序上对类进行测试。所以,面向对象的集成测试通常需要在 整个程序编译完成后进行。此外,面向对象程序具有动态特性,程序的控 制流无法确定,因此只能对编译后的程序做基于黑盒的集成测试。 ( 3 ) 面向对象的集成测试能够检测出相对独立的单元测试无法检测出 的那些类相互作用时才会产生的错误。基于单元测试对成员函数行为正确 性的保证,集成测试则关注系统的结构和内部的相互作用。 ( 4 ) 通过单元测试和集成测试,仅仅能保证软件开发的功能得以实现 但不能确认在实际运行时,它是否能够满足用户的需要。因此,对完成开 发的软件必须经过规范的系统测试。系统测试的具体内容包括:功能测试、 强度测试、性能测试、安全测试以及可用性测试。 ( 5 ) 在实际测试类成员函数时,一些传统测试方法在面向对象的单元 测试中也可以使用。如等价类划分法、因果图法、边界值分析法、逻辑覆 盖法、路径覆盖法等。 2 2 3 面向w e b 应用的软件测试 w e b 应用测试是测试中的一个重要分支分析w e b 自身的特点有:( 1 ) w e b 应用程序所处的环境要比主机、独立的台式机或典型的客户服务器环 境复杂得多。继而,如果应用程序失效,问题可能出在应用程序的代码上, 应用程序于其他系统组件的兼容上,或是应用程序开发者根本无法控制的 组件间的交互上。( 2 ) 如何考察w e b 应用中的属于第三方的产品。例如, 在客户端安装有浏览器、j a v a 解释器以及一些图形显示和声音回放工具。 ( 3 ) 由于数据库服务器和w e b 服务器不属于大多数应用程序的一部分而 给测试带来的困难即如果我们不打算将自己的应用程序和用户提供的第 三方组件加以区分的话,就会面临很大的风险。( 4 ) 由于w e b 应用程序是 由很多通信组件构成,所以对信息的检查和检测要比传统测试具有更大的 困难。因此,综合以上要考虑的测试因素,可以说w e b 测试是w e b 开发 中的关键任务与必要任务,没有测试的w e b 是无法提供保证质量的 对基于w e b 应用的测试,它既传承了传统的测试方法,同时又有自己 的创新。就传统方面,他将结构测试、黑盒测试、白盒测试等,测试方法 进行扩展,并应用到w e b 中来:例如:将结构测试应用到w e b 应用程序 山东大学硕士学位论文 的导航结构检查中,将黑盒测试与w e b 的实例测试相结合检察w e b 应用 程序的预期输出是否和实际输出相符,以确定其功能的正确性等等。就扩 展方面,w e b 测试人员针对w e b 的独有的特性,提出了很多针对w e b 应 用的特殊的测试方法。例如:将面向对象的方法应用到该测试中来,即将 w e b 页面看成对象,将页面的变化看成是对象之间的调用;再有,就新技 术方面,将m a r k o v 链分析方法应用到导航结构有用性分析中来,即利用 日恚文件将导航频率转换成概率以优化导航结构。下面我分几部分做一下 简单的描述: 近几年来,随着面向对象研究的深入和其观点( 对象无处不在和任何 事物都和看成对象) 的不断扩展,对于w e b 应用的测试也同样的将面向对 象的观点也引入了其中,尤其是将w e b 应用分解成一个个的对象来看待和 以对象的观点考察对同一w e b 页的不同用户的并发使用在文章 1 1 3 1 1 4 】【1 5 】【1 6 】1 1 7 】【1 8 1 中都提到了以对象的观点来分析w e b 应用。首先在文章【1 。】 中,在分析和看待w e b 页和在不同的并发用户使用w e b 页的过程中采用了 对象和对象簇的概念:文章 1 3 l 是w e b 应用的基于对象的数据流测试;文章 i ”1 【16 1 【1 7 】是提出了针对w e b 应用测试的面向对象的测试模型。 就w e b 的异种性、并发往、分布性、展示的多样性、状态转换的不确 定性等特性而言,传统的测试方法与工具已不能适应w e b 应用的特殊要求。 具体说有3 个大方面 2 0 l 。( 1 ) 在w e b 应用中代码和数据经常会被修改可 执行的代码能够被嵌入到数据中。在另一方面,信息,例如:文本,图像, 声音,也可以被展现出来。这些都要求软件测试工具在传统的动态测试和 静态分析方法间架起沟通的桥梁。( 2 ) 多样化的信息格式和执行平台要求 软件工具能够支持其宽范围的信息格式和平台所以要求有更灵活的软件 环境来管理和集成针对变化的程序和语言的广范围变化的工具。( 3 ) 随着 基于w e b 应用开发的不断增加和已经出现的新的技术都要求一个可以方便 扩展的环境和整合第3 方工具于系统融入其中综合以上问题,在【2 0 】中提 出通过多级代理来解决以上各个问题。在【饽中也应用代理的方式。其目的 较口o j 更为明确。其是因为由于在开发过程中,开发人员不能正确的了解用 户,既不能正确了解用户对什么样的信息感兴趣以及对各个信息感兴趣的 程度;也不能正确了解用户对信息标题的理解,即用户所以为的标题与所 应该展现的内容的匹配性。所以,在1 2 0 1 中提出希望能够自动收集数据来分 山东大学硕士学位论文 析用户对导航的理解。即在1 2 0 1 中提出以代理的方式自动收集数据来提供远 程的导航测试。 可用性测试是w e b 测试中的一项重要内容。因为就w e b 的使
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新材料研发及应用推广策略研究报告
- 网络教育平台资源整合及利用策略研究
- (2025年标准)雇车免责协议书
- 2026届湖南省衡阳四中化学高二上期中考试试题含解析
- 信息化平台下危急值报告制度及流程
- 窗帘维修项目施工进度追踪计划
- 2026届山东省青岛市黄岛区致远中学化学高一上期中联考试题含解析
- 市场营销策略与执行实战手册
- 2025年电信行业物业消防监控员考试全真模拟卷
- 2026届山东省青岛市58中高二化学第一学期期中检测模拟试题含解析
- 2025中国医药集团有限公司二级子公司及重点三级子公司高管岗位选聘笔试历年参考题库附带答案详解
- 幼儿园开学食品安全厨房培训
- 地面工程基础知识概要课件
- 陪诊培训课件
- 村两委内部管理制度
- 工业管道的定期检查与维护措施
- 林业发展“十五五”发展规划
- 过氧化氢低温等离子灭菌器规范
- 2024年四川公安厅招聘警务辅助人员笔试真题
- 彩钢顶翻新施工方案
- 2022标准化数据中心机房建设项目设计方案
评论
0/150
提交评论