




已阅读5页,还剩35页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 软件测试是保证软件质量的重要手段之一。随着软件开发方法与技术的发展, 软件测试也在不断的发展与完善。软件测试的实施也与具体软件开发方法相关。 受软件复用思想的影响,基 :构件的软件开发方法逐渐成熟。基于构件的软件开 发的特点给软件测试带术了一定的影响。木文主要对基于构仲的软件测试进行了 研究,并j t 发了相应的测试支持t 具。 首先剥软什测试的皋本知u 进行了介绍。 在此基础上,结合基于构件的软件开发的特点,分析了基丁构件的软1 , :丌发 对软件测试的影响,明确了构件质量足保证软什系统质量的基础。接着刘基于构 件的软件测试进行了研究,主要包括测试步骤、测试策略和测试用例设计j 个方 面。提出了基于构件的软r l :测试的相应测试步骤和测试策略。并提出了一种基于 被测软件规格说明转化生成测试模型,以此为基础生成测试用例的黑盒测试方法, , r l j 来提高测试人员的工作效率与质量。 基于构件的软件系统的质量不仅依赖于构件的质量,还依赖于软件测试过程 的质莹和有效性。要提高软什测试过程的质量和有效性,对测试过程进行支持、 控制和管理是十分必要的。因此,需要相应的软件测试支持下台,以提高软件测 试过程质量,保汪基于构件的软件系统的质量。在本文最后,介绍了基于构件开 发的软件测试支持“1 台的设计与实现。 关键词 软件测试;基1 :构什的软件开发;基于构件的软件测试;测试用仞 a b s t r a c t a b s t r a c t s o f t w a r et e s t i n gi so n eo ft h em o s tm e a n st oe n s u r es o f t w a r eq u a l i t yw i t ht h e d e v e l o p m e n to fs o f t w a r cm e t h o d o l o g ya n dt e c h n o l o g y , s o f t w a r et e s t i n gi sd e v e l o p i n g a n dp e r f e c t i n gn o wa n da g a i n a n dt h ea p p l i c a t i o no fs o f t w a r et e s t i n gi sc o r r e l a t e dw i t h s o f t w a r e d e v e l o p m e n tm e t h o d o l o g y u n d e rt h e s o f t w a r er e u s e c o m p o n e n t b a s e d s o f t w a r e d e v e l o p m e n t i s g r a d u a l l yb e c o m i n g m a t u r e t h ec h a r a c t e r s o f c o m p o n e n t b a s e ds o f t w a r ed e v e l o p m e n th a v ei n f l u e n c e ds o f t w a r et e s t i n gs ow em a i n l y s t u d yc o m p o n e n t b a s e ds o f t w a r et e s t i n ga n dd e v e l o pt h er e l e v a n tt e s t i n gt 0 0 1 f i r s t ,t h i sp a p e ri n d u c e st h ef o u n d a t i o nk n o w l e d g eo f s o f t w a r et e s t i n g o nt h eb a s ee 1 1t h i s ,w i t ht h ec h a r a c t e re l c o m p o n e n t b a s e ds o f t w a r ed e v e l o p m e n t a n a l y z et h ei n f l u e n c et h a tc o m p o n e n t b a s e ds o f t w a r ed e v e l o p m e n tb r i n g st os o f t w a r e t e s t i n ga n dc o n l r l t lt h a tt h eq u a l i t yo fc o m p o n e n ti st h eb a s eo ft h eq u a l i t yo fs o f t w a r e s y s t e m t h e ns t u d yc o m p o n e n t b a s e ds o f t w a r et e s t i n g ,f r o m t e s t i n gs t e p 、t e s t i n g s t r a t e g y 、t e s tg a s e sd e s i g n i n g p u t t i n gf o r w a r dt h ef i tt e s t i n gp r o c e s sa n dt e s t i n gs t r a t e g y , a n dp u t t i n gf o r w a r db l a c kt e s t i n gm e t h o dg e n e r a t i n gt e s tc a s e sb yc h a n g i n gt h e s p e c i f i c a t i o no ft e s t e ds o f t w a r ei n t ot e s t i n gm o d e l t h eq u a l i t yo fc o m p o n e n t b a s e ds o f t w a r es y s t e mn o to n l yd e p e n d so nt h eq u a l i t y o fs o f t w a r ec o m p o n e n t sa n db u ta l s od e p e n d so nt h eq u a l i t ya n de f f i c i e n c yo fs o f t w a r e t e s t i n gp r o c e s sf o ri m p r o v i n gt h eq u a l i t ya n de f f i c i e n c yo fs o f t w a r et e s t i n gp r o c e s s ,i t i sn e c e s s a r yt h a ts u p p o r t i n g 、c o n t r o l l i n ga n dm a n a g i n gt h et e s t i n gp r o c e s ss on e e dt h e s o f t w a r et e s t i n gs u p p o r t i n gt o o l ,f o ri m p r o v i n gt h eq u a l i t yo fs o f t w a r et e s t i n gp r o c e s s a n de n s u r i n gt h eq u a l i t yo fc o m p o n e n t b a s e ds o f t w a r es y s t e m a tl a s t ,t h i s p a p e r i n d u c e st h ed e s i g na n di m p l e m e n t a t i o no f t h es o f t w a r et e s t i n gs u p p o s i n gt o o l k e y w o r d s s o f t w a r et e s t i n g :c o m p o n e n t b a s e ds o f t w a r ed e v e l o p m e n t c o m p o n e n t b a s e ds o f t w a r et e s t i n g ;t e s tc a s e s 第1 章绪论 第1 章绪论 随着计算机的飞速发展利其广泛的应用 而软件测试作为软件开发过程的重要环节, 蕈要手段。 软件质量和可靠性越来越受到关注。 是保证软件质量,提高软什可靠性的 数年来,人们一直致力于软件丌发过程和开发方法的研究和改进,每次新的 方法利过程的h 现都对软件测试带来一定的影响,促进软什测试技术或方法的改 进与发展。与此同叫,软件测试本身也i e 逐渐向系统化和觇范化方向发展。基于 构什的软件| = 程( c o m p o n e n t b a s e ds o f t w a r ee n g i n e e r i n g ,c b s e ) 是当令软件丌 发力法中晌研究热点。这种软件丌发方法n 勺吲有特点影响了软件测试。因此,针 刘这种软件丌发方法并绵合软件测试发展的觇f 9 1 - g h 向柬研究相麻的软件测试, 不仪能够提高软件测试的有效性,而目促进软件丌发过程的进展,最终达到提高 基于构件的软件系统的质量和u j 靠性的目的。 1 1 软件测试 随着信息技术的飞速发展,计算机应用已经渗透到人类活动的各个领域,如 航空、通讯、金融、交通等领域。但在实践应用中由于软什质量问题导致系统失 效,造成了重大损失或不辛后果的事例不胜枚举,凼此软件产品的质量和i = i _ i 靠性 需要得到保障。软f l :测试作为保证和提高软件质量和可靠性的手段之一其重要 性逐渐坡人们所认识。 1 1 1 软件测试的发展 早在5 0 年代,人们刚开始 发较大型软什时,就意识到了软件危机的存在, 但测试在软什开发中的作用并没有受到应有的重丰见。直到7 0 午代,测试的意义才 逐渐被人们认u ,软件测试的研究才开始受到重视。 6 0 年代末7 0 年代丰j ,软件的矛盾口益突出,软什工程化的概念逐渐形成。1 9 6 8 年扯北大西洋公约组织( n a t o ) 的学术会议上提出了“软件工程”的概念。把软 件工程分为需求分析、设计、编码、测试和维护几个阶段的软件生命周期的概念 河北大学 一学硕+ 学位论文 被人们广泛接受。7 0 年代中期j b 6 0 0 d e n o u g h 首次提出了软件测试理论,从而把 软件测试这一实践性很强的学科提高到理论的高度,被认为是软件测试技术发展 过程中具有j 旧j 性的工作。此后,像测试过程、测试数据及其生成方法、测试准 则、测试t 具等软件测试晌有关问题都得到了广泛的讨论与研究。与此同时,随 着软什 发的发展以及实践应用,软件测试也逐渐完善,自成体系。软件测试由 仅随在编码之后的阶段,已经成为贯穿软件整个生命刷期的一个系统的过程。软 件测试从软件丌发初期阶段就丌始了。测试的对象也由早期的仅测试可执行代码, 剑现在也明确地扩展到丌发各个阶段产生的阶段产品包括需求和设计文档等。 就目前软件17 程发展的状况而言,软件测试仍然是较为薄弱的一个方面,不 能满足当前软件丌发的实际需求”1 。为此,国际、国内均设立了专i j 的软件测试专 题、列论小组或成立门的软什测试网站对软件洲试进行讨沦、研究。如国际、 田内召丌的幽际、全国软件工程会议都设有软件测试的争题。 1 1 2 软件测试的研究现状 软件质量是软件产业的生命,软什测试是软件开发。p 的重要环节,是保证软 件质量的重要手段。然而软件测试是一项繁琐而复杂的工作,使得软什测试费用 十日当昂贵,通常占到整个软件开发成本的一半左右。1 。近年来,虽然软件测试有了 较大的发展,但仍无法满足当今软件升发的实际需要。因此,创建或改进软件测 试理论、方法,”发一些实用的软件测试j :具,满足软件丌发的实际需要和提高 软件测试的有效性,以确保软件系统的质量,一直是软件测试研究人员所奋斗的 同标。 1 国内研究 我国的软件测试技术起步较晚,人力、物力投入少,与国际先进水平有一定 的筹距。f 日随着国内软件产、j k 的发展,软件质量问题在国内越来越受到重视,软 什测试取得了一些初步的研究成果。匡家的“8 6 3 ”计划中,就拟定,专门提高软 件质_ 量的课题。多年米,北京航空航大人学软件工程研究所一直对如何提高软件 的质量进行研究。他们提出了软件测试过程的基本模型,这一模型突出了一般大 型软件系统和软件产品的测试过程中必需的基本测试活动及其产生的结果。同叫, 北航软件所还丌发了一系列针对不同编程语言的测试t 具,包括“c c + + 测试工 第1 草绪论 具”、“f o r t r a n 语占的测试工具”等。随着面向对象软件丌发的发展与成熟,面向 剥象软件丌发受到了广泛应用,同时面向对象的特性给软件测试带来了很大的影 响,因此国内小少大学对l 氲向对象软件测试理沦或技术方面进行研究。例如:北 京大学计算机科学系进行的面向对象软件测试工具、测试建模和测试数据生成技 术及相关问题的研究等。南京大学软什新技术国家重点实验室则着重研究软件复 杂度分析和动态洲试问题。 2 国外研究 软件测试在国外发展较早,软件测试相对来说比较成熟。国外的丰要研究有: 软件测试技术与方法、软件测试工具、软件过程等多个方面。 在软件测试技术与方法力面,主要集中在针对新的软件开发技术或对某类特 定的软件进行技术和力法的研究。除此还有形式化验证、测试数据牛成、测试自 动化技术等方面的研究。 为了进仃更有效的软件测试,加快软件开发过程,不少公_ j 推出了一系列的 相关的软件测试上具。如测试计划t 具、静态分析t 具、测试数据牛成工具、测 试评估上具、测试管理 一具以及多种工具融为一体的集成化测试系统等。r a t i o n a l 、 s q a 、m a c a b e 、s o f t w a r e r e s e a r c h 等公司都是著名的软件测试上具丌发商。 软件测试包含在软件过程之中,划软什过程的研究促进软什测试过程的发展。 目前软件过千口技术研究领域,上要有三个流派:1 ) i s o9 0 0 0 是由i s o t c l 7 6 负责 制订的软件质量系统系列标准这体系是较为普遍的软件认证方法。2 ) i s o s p i c e 是关于软件过释的纽标准。不仅考虑软件过程,而且考虑人、技术、管 理规程、客j 、支持和质量以及软件j 1 :发和维护规程等问题。3 ) c m m ( c a p a b i l i t y m a t u r i t ym o d e l ,能力成熟度模型) 是另一种认证软件开发过程的方法。它是由美 国e 内基一梅隆大学晌软件工程研究所s e i 提出的,这一模型吸取了硬件的质_ 晕_ 保 证原理和实践经验,把重点放在软件丌发过程中软件质量的提高和控制上。其中 有关删试的成熟度模型也宵很多。在这些软件过程中,很好的结合r 软件测试过 程。 1 2 软件开发方法与软件测试 软件j r 发方法是指导人们开发软件的理沦与方法。为保证软件质量,软件测 1 - k 人学t 学硕= e 学位论文 试是软件丌发方法过程中不川缺少的环节。软什丌发方法所采用的具体理论、方 法、技术都直接影响着软件测试。凶此,新的软件升发方法都给软件测试带来影 响与发展。同时软件测试自身也在不断的发展。软件开发方法的发展与软件测 试的发展两者相互影响、相互促进。 1 2 1 结构化方法与软件测试 结构化分析设计方法是最早形成的软件系统化开发方法,被称之为传统软件 丌发方法。其侧重丁j 功能分解、白顶向下逐步细化、模块化的设计。此阶段是软 件测试理论的初创阶段,软件测试作为编码之后的个独立阶段,分为四个渐进 的测试活动:单元测试、集成测试、确认测试和系统测试。存进行测试时,按照 发计测试用例、执行测试用例、比较结果等简单的测试模型实施。测试的最小单 元是可编译的程序单元( 过程模块) 。根掘程序的特点及人们的需求提出了软件测 试技术:黑盒测试和白盒测试。并针对结构化分析设讣方法设计m 了相关测试 技术的不l 刊的方法。 1 2 2 面向对象方法与软件测试 面向对象分析设计方法经过数年来的发展已经趋于成熟并且成为软件界公 认的主流 发方法i 。住丽向对象分析设计方法中,基本的构成是类和对象。对象 是封装了描述其属性的数据( 对象的状态) 以及可以对这些数据实施的操作( 方 法、行为) 。对象之恻通过发送消息相互咖作。类是一绢相似对象的描述,描述了 该类对象所具有的共同特征。面向对象的程序设计又提供了数掘抽象、继承、多 态和动态绑定等机制。这种软件丌发方法固有的特性,给软件测试理论、技术、 方法等方而带来了巨大的影响,使得传统的软件测试力法以及测试工具已不能为 向对象的软件提供良好的支持i s l 。 存面向对象软件测试中,测试的最小单元的是娄,测试人员对测试类、对象 及对象状念等方面进行了一些技术方法研究。在测试步骤方面,s m i t h 从面向对象 程序的结构m 发,认为而向刘象的程序测试席当分为四个步骤:1 ) 行为级2 ) 类 级3 ) 类簇级4 ) 系统级。j o r g e n s e n 认为面向对象的程序执行,实际上是执行一 个山外部事件驱动的操作序列。根据这一特征,他将面向刈象的测试分为5 个层 笫1 章绪论 次:1 ) j j - j , j n 试2 ) 消息路径测试3 ) 系统基本功能测试4 ) 线程测试5 ) 线程删 相互作用测试。此外,有螳文献涉及了继承及动态绑定对软件测试的影n 向0 在面 向列象分析设计发展时划,软件测试得到迅速的发展,形成,一套较为完整的软 什测试理论体系。测试已经不再是继分析、设计、编码之后的独立阶段了。软件 测试在软件开发的移j 期阶段就丌始进行,成为贯穿软件开发周期的一个系统的过 旱 1 2 3 基于构件的软件开发与软件测试 基于构什的软什开发是利用已经开发的构1 1 和将要开发的构件束组装系统, 以提高软什质量和开发速度,从而使软件开发走上上程化和产业化的道路其软 件丌发至少包括两个过程:一是复用构件刀:发过程( 开发可复用的软件构件) ,二 足心用系统开发过程( 使用构件组装新系统的过程) ,如图1 1 所示。这两个过程 j 以在时i h j 与空削上相分离,因此这两个过程可以并行进行。这d 1 1 # m 酐j 软件开 发过程不同。构件是构成软什系统的基本成分,构什的质量划基丁构件的软件系 统的质量起着决定的作用。因此基于构件的软件= :发! 必然会对软件测试带来极人 的影响与挑战。然而现今,人们的研究重点与研究成果主要集中十基于构件的软 件开发方法和技术及其基础设施的建设等方丽,而基于构件的软件测试的研究没 何得到人们足够的重视,这方而的研究较少。 图1 1 基于构件的软件丌发方法 1 - 3 课题研究内容与意义 1 3 1 研究内容与工作 本实验室研究方l m 为信息系统、软件丁程。近期,侧重于软件复用、基于构 件的软什丌发方面的研究。由丁软件质量是不可忽视的问题,因此小人在此基础 1 进行软f j l :t j l 0 试方【f | _ j 的研究。 小义在研究甚于构件的软件开发的基础上,对基于构件的软件测试进行了研 究,并结合、借鉴大鼍文献资料的情况下,着重研究虬下内容: _ 基丁构件的软件开发是一种新的软件,1 :发方法,其本身具有一定的特点。 本文分析了这种丌发方法给软件测试带来的影响,并对基_ j 构中l :的软件测 试进行研究。 一测试用例是软件测试的重点和难点。本文研究如何对构件生成测试用例, 以提高测试的效率。 _ 软件测试过程是个复杂,繁琐的工作,需要软件测试过程支持工具对其进 行有效的支持,刊能提高测试过程的规范性与有效性。结合列基于构件的 软件测试的研究建寺适应基于构什的软件开发的测试支持工具。 1 3 2 研究的意义 基于构件的软件 发足当今研究的热点。人们一直致力于这种软件开发方法 的过程和技术方面的研究并取得了一定的成绩,但忽略了开发过程中的软件测试 问题。针对基于构件的软件开发的特点,分析这种开发方法给软件测试带来的影 响,研究基于构什的软件测试的相应i j j n 试策略和相应的测试工具,可以提高与 保证基t 构件的软件系统的质量。 1 3 3 论文组织结构 奉艾共分为血章。 第1 章,绪论。介绍了论文研究的背景、意义和内容。 第1 章绪论 第2 章,软件测试。首先对软什测试的一些基础知识进行了介绍。 第3 章,基于构件的软件测试。结合基于构什的软件开发的特点,分析了基 _ r 构件的软件丌发对软件测试的影响,接着对基于构件的软件测试进行了研究, 要包括测试步骤、测试策略和测试用例设计二个方面。 第4 章,软件测试支持平台的设i 与实现。丌发了一个在基于构件的软件开 发过程中,辅助软件测试过程的平台,使得基于构什的软件测试更为有效。 第5 章,结束语。总结所作的研究工作,讨论了今后的发展与相关研究。 河北人学一学硕士学位论文 第2 章软件测试 软件测试足软件丌发过程中的一个重要的环节,是保证软件质量和可靠性的 重要手段。在软什外发的过程l ,软件开发的每个阶段都有可能产生误解或差错。 凶此,要力求通过每个阶段n 勺技术审查、走杳、测试实施等能够尽早、尽量地发 现软什中存存的错误并将其排除。软件测试就是存软件投入运行使用之前,对软 什需求分析、设计规格说明、编码实现的最终复审,贯穿于软件定义与开发的整 个期间【”。 小章介绍了软件测试的基础知识。首先说明了本文对软件测试概念的理解, 其次对软件测试过棍进行了介绍,最后介绍了测试过程中一殷采用的测试技术。 2 1 软件测试定义 随着软件丌发技术的发展,人们对软件测试及其重要性也有所认识。然而, 人们刈软件测试的认识直持有1 ;同的观点。 对于软件测试的定义,许多人都引用g r e n f o r dj m y e r s 在( ( t h ea r to f s o f t w a r e t e s t i n g ) ) 一斗s 中的x r 2 , 点l 8 】: _ 软件测试是为了发现错误而执行程序的过程 _ 测试是为了i f 明程序有错,而小是证明程序兀错误 _ 一个好的测试用例是存于它能发现至今未发现的错误 _ 个成功的测试是发现了至今末发现的错误的测试 这种观点提出了人们测试要以查找错误为中心,而不是为了演示软件的正确 功能。 i e e e 提出的软件l 一程标准术语中软件测试的定义为:“使用人工或自动手段来 运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预 期结果与实际结果之间的差别”。定义包含了两个方面的含义,一是满足规定的需 求,二是是否有差别。明确的提出了软件测试是以检验软件是否满足需求为同标。 上而两个定义从不同的测试目的与角度定义了软件测试的概念。通过对其的 综合理解,在本文中认为软件测试的目的是检验软件是否满足需求目标,同时尽 量查找软件中存舀:的错误。 对软件测试的测试内容方面,人们的理解通常又有狭义和广义之分。狭义的 软什测试是指继软什编码之后,对代码或鞔什体执行的测试。广义的软什测试是 着眼于整个软件生存期,包括丌发各阶段的审查、评估和检测( 注:本文对后面 用“义测试概念处不另加标识) 。由此,广义的软件测试实际是由确认、验证、测 试二个方面纽成。确认:是评估将要开发的软件产品是否是正确无误、可行和有 价值的。比如,将要门:发的软件是否会满足用,l 提山的要求,是甭能在将来的实 际使用州:境中正确稳定的运行,是否存在隐患等。这里包含了对用户需求满足程 度的评价。确认意味着确保个待开发软件是j e 确无误的,是对软件开发构想的 检测。验证:是检测软什丌发的每个阶段、每个步骤的结果是否j 下确无误,是否 与软件开发各阶段的要求或期单的结果相一致。验证意味着确保软件是会i f 确兀 误的实现软件的需求,丌发过程是沿着正确的方向在进行。测试:j 狭义的测试 概念统一。 2 2 软件测试过程 软件测试过稃是指在进行软件测试时一系列相关有序的活动的集合。优质的 软件测试过程能够提高软件测试效:冢、改善软件丌发过程质量,从而带来优质的 软什产品。 传统的软什测试过程是指 继软什编码之后具体测试实施 阶段( 如图2 1 所示) ,包括设 计测试用例、实施测试、分析 结果、修改再测试的筒咩过程。 一般进行旧个测试步骤:单元 图2 1 传统的软件测试过程 删试( u n i tt e s t i n g ) 、集成测试( i n t e g r a t e dt e s t i n g ) 、确认测试( v a l i d a t i o nt e s t i n g ) 、 系统测试( s y s t e r nt e s t i n g ) 。这种测试过程缺少计划性、充分性、文档性、管理性等。 随着软件应用规模的扩大,对软什测试的需求和耍求电逐渐提商,软件测试 己成为贯穿软件整个生命周期的一个系统的过程。软件测试伴随在软件开发过程 之中的每个阶段,与软件丌发过稃相并行。同软件jr 发过程一样,软件测试也具 河北大学工学硕士学位论文 ! ! ! ! ! ! ! ! ! ! ! 皇! ! 皇! ! 皇! ! ! ! ! 曼! ! ! 鼍曼! ! 。;詈! ! 詈! ! ! ! ! ! ! 。皇量毫 有自己的生命周期。一般的软件测试过程( 如图2 2 所示) 中的基本活动有: 图2 2 软件测试过程中与软仲开发过程各阶段的交互图 1 ) 软件审杏 首先对需求分析阶段的产品进行审查,确定此阶段的产品是否符合用户 的需求。审查般使用分析、检查或讨论的方法。软什审查方法的使用可以 贯穿于整个软件丌发过程中。 2 ) 制订软什测试计划 软什测试是一项全面细致、系统而复杂的工作,项局小组负责人必须根 扼项日进展情况,制定详细可行的测试计划,包括测试成员的构成、测试时 问、测试内容、测试方法、测试用例的牛成、测试报告的编q 等。 3 ) 设计和,+ 成测试用例 测试剧例是为某个特殊目标而编制的一组测试输入、执行条件以及预划 结果,以便测试某个程序路径或核实是否满足某个特定需求。 4 ) 实施测试 实施测试即进行编码测试,其测试对象是软什实现,在实施测试过程l j 通常分为四个测试步骤: _ 单c 测试 单冗测试是对构成软件系统的最小单元进行的测试,以确认每个单元能百 第2 章软件洲试 正常工作。最小单儿是软件系统的构成基础,其质量是最基础的保证。 集成测试 集成测试足继甲兀测试之后的阶段,按照设计时做出的结构图,在把软件 单元逐步绢装的过程中,同时有序进行的测试。 _ 确认测试 确认测试又称为功能测试( f u n t j o n f e s t i n g ,是以按照需求规格说明的规 定,枪骑丌发的软件能否满足用户的需求,包括功能和性能的要求。 系统测试 系统测试是把软件、硬件和环境连在一起进行的令曲的测试,检测是甭能 协训工作,是否与需求说明书相符。系统测试包含性能测试、强度测试、 安全测试和恢复测试等多种综合性测试。 5 ) 牛成软件问题报告和结果报告 软什问题报告和结果报告是在列软件实现进行测试的过程r r ,对所出现 的问题及其测试结果进行的记录。 6 ) 对整个测试过程进行有效的管理 刘软件测试实施有效的管理是极为重要的。可以加强测试工作的计划性、 允分性等。 舟软件测试过程l | ,测试计划早在需求分析阶段即应开始制定。其它帕关工 作,包括测试数据的生成、测试工具的选择和开发等也应在实施测试阶段之前进 行。与传统的软什测试过程相比,该软什测试过程具有以下基本特征: 1 ) 计划性:有计划地预测使用人员、时间、设备资源的需求。充分的准备工 作可以有效地克服测试的盲目性,缩短测试周期,提高测试效率。 2 ) 平行性:软什的外发与测试可以同时进行、测试与改错可以同时进行。并 且起到洲试文档与丌发文牛当互查的作用。 3 ) 重用性:测试用例在每轮测试中可以反复使用。 4 ) 周期性:软什测试的实施过程是 _ | 一系列的测试周期纽成的,存每个测试 周期中,软件测试工程师将依据预先准备好的测试用例,对纠l r 了被测软 件的已知错误之后生成的更新版进行再一轮的测试。 5 ) 独立性:测试任务的明确划分保让各项测试之间,以及测试和改错1 j 作之 河北人学工学硕士学位论文 问的相对独立性和并行性。 6 ) 司管理性。软件测试过程的计划性、资料的完整性、任务划分的n x , i 独市 性,以及问题的可追踪性等,为测试工作的合理安排、产品质量及测试本 身质量的评判和控制,以及与丌发人贝之间的通讯和咖调提供了有效的保 证。 2 3 软件测试方法 由于软件测试是贳穿于整个软件生命周期中的,因此测试的内容涉及到软件 丌发巾再个阶段的产物,包括需求规格晚明、设计规格晚明、源程序等众多不同 的对象。不同的刈象有不同的表现形式针对4 l i j 的对象应该有不同的测试方法。 有时根据测试日标( 如:功能测试、性能测试等) 或要求不【一j ,相1 司对象也有不 同的测试方法。因此,软件测试方法有很多,但往往有不同的出发点、不同设计 思路以及不同的实现手段等。本文从以f 几个方而束介绍测试方法。 1 根据程序执行的方式,软什测试方法分为人工测试( m a n u a lt e s t i n g ) 和计算 机测试( a u t o m a t i ct e s t i n g ) 。 人工测试足指刈软件的规划、设计、编码等方面进行的静态检查。此方法可 用于软什刀发周期的各个阶段,有着不同的形式和名称,一般包括软件审杏和程 序走查。 软件审查般形式是审查会。审查会是由非开发人员与开发人员结合起来, 利片| 集体的智慧查找软件产品中问题从而保障软什产品质量的肯效手段。审查的 刘象可以是软件生命周期中各个阶段的丌发成果,如需求分析、概要设计、详细 没计等阶段的成果即编码。软件审查一般是叛软件审查单阅读程序,查找错误。 其内容包括:检鱼代码和设计的一致性:榆奄代码的标准性、可读性;检查代码 逻辑表达的l e 确性和完整性。 程序走查是人工刘程序实现进行检查的方法。通过人工阅读来发现编码中的 错误,及其获得一些统计信息,最终为了提高编码的质量。 计算机测试是必须依赖计算机进jj :的测试技术。除以上人j 二测试外,其他的 测试都属于机器测试。 2 根掘测试执行的日的不l j ,软件测试方法可分为黑盒测试( b l a c k b o x t e s t i n g ) 第2 章软件测试 和白盒测试( w h i t e b o xt e s t i n g ) 。 黑盒测试又称为功能测试( f u n c t i o nt e s t i n g ) 或基于规范说明的测试 ( s p e c i f i c a t i o n b a s e dt e s t i n g ) ,它是在已知产品所应具有的功能,通过测试米检测每 个功能是否都能l f 常使用。在测试时,把被测对象看作一个不能打jr 的黑盒了, 在完全f ;考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试, 它只榆查程序功能是甭按照需求舰格说明书的规定正确执行,程序是否能遁当地 接收输入数摒而产生l 卜确的输出信息,并且保持外部信息( 如数掘库或文件) 的 完整性。黑盒测试着重于验证软件功能和性能的正确性,其常用的方法主要有等 价类划分、边界值分析、因果圈、错误推测法等。 白盒测试又称为结构测试( s t r u c t u r e t e s t i n g ) 或基丁程序的测试( p r o g r a m b a s e d t e s t i n g ) 。采用该方法是在已知被测对象的源代码情况下进行的,测试人员根据程 序内部的结构特性,设汁、选择测试用例,检测程序的每条路径足雨都按照预定 的要求l f 确地执行。白盒测试要求对程序的结构特性作到一定程度的覆盖,是一 种基于覆盖 1 1 n 0 试,常用逻辑覆盖率来衡量测试的充分性。并根据覆盖准则设计 测试用例。常用的白龠测试法自控制流分析、数据流分析、逻辑覆盖、域测试、 符弓测试、路径分析、1 7 j 芋变异等。 黑盒测试和白盒测试是使用广泛的软什测试与法,_ 者测试侧草点一i 同,使 用场合也小同。通常,在进行中元测试时人都采用白盒测试,而在功能测试和系 统测试时般采用黑禽测试。 河北人学l 学顶十学位论文 第3 章基于构件的软件测试 软件复用是利用已有的丌发成果米避免软件开发中的重复劳动,被视为解决 软什危机,提高软什生产效率和质量的现实可行的途径【9 】。其中,基r 构件的软件 丌发是软什复用的主流形式,其思想是利用可重用的软件构件束搭建新的应用系 统随着软件构件技术的发展,基于构件的软件开发已经逐渐占据了主导地位。 更多的丌发团队丌始使用基于构件的软件工程方浊建立基丁构什的软什系统。人 们丌始在测试构件和基于构件的软件系统中遇到了新的问题与挑战【1 。目前,在 基于构件的软件工程领域中,人们人多侧重十软件开发方法、技术和一些基础设 施方面的研究与建设,但是对于确保软件系统质量的软件测试进行的研究却较少。 然而建立可靠的基于构件的软件系统是该领域中的关键内容之一。因此,在本章 中主要划基于构件晌软件测试进行研究。 本章苗先分析了基于构件的软件丌发给软件测试带来的影响。其次对基于构 什的软什测试进行,初步研究,主要从测试步骤、测试策略、测试用例设计等方 面进行了探讨。 3 1 基于构件的软件开发对软件测试的影响 3 1 1 基于构件的软件开发和软件构件 构什是皋_ 丁构件的软件开发的核心和基础。研究基于构件的软件测试之前, 需要对构件有一个认识与了解。目前- h 关构件的定义还没有个统的说法。但 是被十分广泛接受的是c l e m e n t ss z p e r s k i 在c o m p o n e n ts o f t w a r e :b e y o n d o b j e c t o r i e n t e dp r o g r a m m i n g 一书中的定义川:一个软件构件是一个用米组装的单 元,这个单元具有契约说明的特定接口( c o n t r a c t u a l l ys p e c i f i e di n t e r f a c e s ) 和明晰 的j 不境( c o n t e x t ) 依赖性。一个软件构件可以独立地部署和被第三方所组装。接 厂l 是构件的重要特性之。构件通过接l _ 】向外提供服务,外界通过接u 柬访问构 件所提供的服务( 参见图3 1 ) 。构件即可以作为服务器端也可以作为客户端。构 件请求其它构件服务时! 【五须通过访问其它构件的接口来实现,因此一个构件和其 第3 章基于构件的软件测试 它构件间的交互体现为构件和它所访问的构件接1 3 的依赖关系。 f 丽两面要石j 提供删务 通过对构件的理解,我们得出构件的阿个基本特征: 1 ) 即插即用:构件可以方便地集成于系统中,不用修改代码,也不用重新编 译。 2 ) 以接口为核心:构件的接口和实现是分离的,构件通过接 实现与其它构 件或系统的变互,构什的具体实现被封装在内部,使用者只天心接口,不必知道 实现细节。 仵基于构件的软件开发中,构件作为封装了数据和操作的功能性模块,能时 时的通过参数进行配置。其中构件通过接口来提供服务。在基于构件的软件开 发中有两种丌发人员:构件丌发者、构件组装者。构件开发者首先进行领域分析 然后,r 发出具有一定可重用性的构件。构件组装者进行应用系统开发,利用已有 并j _ l 适合系统需求的构件米进行组装。进行组装时,构件组装者不必关心构件的 具体实现,只需要关心构件接口所提供的服务,通过调用接口来完成系统组装, 因此可以说应用系统是山构件组成的。 3 1 2 基于构件的软件测试特点 从上文中可以看到基于构件的软件丌发不同于传统的软件丌发和面向对象的 软件丌发,它将会给软件测试带来很人的影响。我们从以下几个方而来探讨基于 构件的软件开发对软件测试的影响及基于构件的软件测试的特点。 i 基本构成单元 基1 i 构件的软件开发的思想是利用已有的构件来组装软件系统,其中构件是 作为一个封袈了数据和服务的模块。因此,在基于构件的软件系统中构件足基本 构成单元,软件测试的最小单元是构件。构件的质量是确保基于构件的软件系统 河北火学工学硕士学位论文 质量的基础。 2 测试方法 在基于构件的软件丌发方法中,构件的来源可能是家用构件( jr 发旺| 队内部 发的构件) 也可能是c o t s 构件( 商业上出售的构件) 或第三方构什( 共享软 件、自由软件等) ,因此一些构件的实现细节( 源代码) 是不可见的,即使源代码 可见构件电有可能山不同的程序语言来实现【”l 。使用的语言越多测试的复杂 性越大。所以,在进行构件测试时,不适合崩白盒测试方法,通用的方法是黑盒 测试方法即基于构件规格说明的测试方法。 3 测试人员 基于构件的外发包含两个过程:构件丌发、构件集成。因此其开发团队分为 构件丌发方和构件集成方。双方都需要刘构件进行测试,但其测试的目的和方式 有所不同【1 。构件刀发方负责通用构件的开发,构件即足软件产品。因此软件测 试过程方面只需进行单元( 构件) 测试。由于生产构件的目的是重用,有可能被 多种不同的应用叫、境所使用,冈此需要在尽可能全由f 的情景巾,单独的测试构件, 确保构件币常t 作。构件集成方负责选择叮重用构件( 选择并修改构什) 、开发特 定构件,再山构件组装成软件系统。其测试过程是整个完整的软件测试过程。但 主要侧重r 在同定的环境巾进行构件测试、集成测试与系统测试:并验t f 构件是 甭【 j 确、是否符合特殊的应用。 3 2 基于构件的软件测试研究 通过分析基于构件的软件丌发对软件测试的影响,我们认识到,基于构件的 软件丌发对软件洲试有特殊要求,基于构件的软件测试技术不i j 于传统的软件测 试技术| 1 。基于构件的软什测试的重点放存单个构什的测试、构什与构件之间交 互的测试等方面。我们对皋丁构件的软什测试的研究首先从软件测试步骤入手。 3 2 1 测试步骤 基j 二构件的软件测试的动态测试过程与传统测试一样,分为以下儿个阶段: 设计测试用例、实施测试、分析结果、修改再测试1 1 6 1 。但在测试的步骤上,由于 构件的特殊性而有所不同。借鉴传统软件测试步骤( 单元测试、集成测试、确认 l6 第3 章基丁构什的软什测试 测试、系统测试) ,并从构件的特点和基于构件的软件系统的结构出发,基于构件 的软件测试应该分为4 个步骤:接口测试、构件测试、构件簇测试、系统测试。 】接l 测试 接口测试是对构件提供的接口进行测试,它是基于构件的软件系统实施测试 的第一步。因为构件通过接口来对外部提供服务,因此需要对接l | 进行测试。 2 构件测试 构件测试是列一个完整、独立的构件进行的软件测试。构件是基于构件的软 件测试中的虽小测试单元,存此相当f 单元测试。构件的具体实现不可见,其测 试实施t 要依据构件规格说明生成测试用例,进行黑盒测试。这部分的测试丰要 包括构件所有接u 的测试、接u 之问交互的测试( 如:接f 1 问存在调用关系等) 、 整个构件功能的测试。 3 构件簇测试 构什簇测试是对一组具有相互依赖关系的构件进行的测试。构件簇足一组具 有依赖笑系的构件集合。所谓依赖关系足指构件之间存在一定的调用使用、触发 激活等笑系。构成系统的所有构件都能根据这种关系来进行分组,所有的构件都 被划分到多个相对独立的构件簇中,这些构什簇能够独立完成一定的服务,因此 需要对每个构件簇进行测试。 个构什簇测试的策略为:采用自底向上的集成策略i ”】。首先测试一些相剥 独立的构什( 此构件只作为服务器端,而不作为客户端) ;独立构件全部测试之后, 接下柬测试使用独立构件的上层次的构件( 称为依赖构件) ;这样可以一层一层 的向卜进行卣至洲试完一个完整的构件簇。在这一部分侧重于构件之间调用顺 序的测试、构件与构件之间接口的测试以及整个构件簇的功能测试等。 4 系统测试 系统测试是测试山所有构件和主程序构成的整个系统,以验证软件系统的正 确性和性能指标是否满足需求规格说明和任务书所指定的要求。这步t 要是在 具体语境中进行的功i i j ! e i 试、陀能测试、强度测试等。基于构件的系统测试和传 统的系统测试之川区别不大,可以借鉴传统的系统测试方法。 河北大学1 _ 学硕士学位沦义 3 2 2 测试策略 为了保证基于构件的软件系统的质量,软件测试应与基于构什的软件开发过 程相并行,即软件测试过程及其力法技术的应用贯穿于基于构件的软件丌发生命 周期中。存软件丌发的初期阶段( 分析与设计阶段) ,应以人l 测试为主,即静态 分析或审查各个阶段的产物,同时制定软件测试计划。在软件丌发的巾期阶段( 详 细设引与实现阶段) ,以人工测试和计算机测试相结合的方法进行测试。在实现阶 段对获取或生成的构件主要是使用在特定的环境中进行黑盒测试的方法。若能获 取构件源代码电u j 进行白盒测试等。存这阶段,软件测试活动主要是:牛成测 试用例,按照测试步骤实施动态测试;若测试中发现问题,则需进行编码修改, 再次进行测试。在软件丌发后期阶段,主要是进行确认测试和系统测试。根据以 上策略,对基于构件的软件丌发过程叶 的产物提出相应的测试方法,如表3 1 所示。 表3 1 过程产物相应的测试方法 过程中产物测试步骤测试方法 分析模1 1 ( 川例图等) 宙杳 设计模掣( 构架等) 审杏 构件单元测试黑盒i n 盒方法程序走查 构件簇集成测试黑盒方法 系统系统测试黑盒方法 3 3 测试用例设计与生成 在软什测试过程中,测试用例的生成是软件测试的关键和难点其直接影响 着软件测试的有效性等各项指标【l8 i 。针对不1 一j 类型的被测软件和不同的测试目的, 测试用例的具体定义和内容会有所差别。一般而言,测
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 六年级叙事作文捡山核桃450字(15篇)
- 晋祠作文600字7篇
- 《语文古典文学欣赏:古代散文欣赏教案》
- 公主护肤活动方案
- 公交公司暖心活动方案
- 公交端午节活动方案
- 公产房春季活动策划方案
- 公众开放日活动方案
- 公会月度活动方案
- 公共服务竞赛活动方案
- 西方看兵团:兵团国际形象的塑造
- 宁夏大学计算机操作系统期末考试试卷A2023至2023学年第 二 学期
- 电路分析智慧树知到答案章节测试2023年上海电力大学
- 电力线路迁改工程的施工设计方案
- TCESA 1174-2021 企业信息化和工业化融合度评价要求
- 陶瓷厂通风除尘系统设计毕业设计论文
- 医院长期医嘱单
- GBZ(卫生) 49-2014职业性噪声聋的诊断
- JJG 30-2012通用卡尺
- GB/T 32525-2016光电跟踪测量设备通用规范
- 脑疝的判断和急救课件
评论
0/150
提交评论