(计算机应用技术专业论文)基于过程的软件测试管理技术及支持工具的研究.pdf_第1页
(计算机应用技术专业论文)基于过程的软件测试管理技术及支持工具的研究.pdf_第2页
(计算机应用技术专业论文)基于过程的软件测试管理技术及支持工具的研究.pdf_第3页
(计算机应用技术专业论文)基于过程的软件测试管理技术及支持工具的研究.pdf_第4页
(计算机应用技术专业论文)基于过程的软件测试管理技术及支持工具的研究.pdf_第5页
已阅读5页,还剩73页未读 继续免费阅读

(计算机应用技术专业论文)基于过程的软件测试管理技术及支持工具的研究.pdf.pdf 免费下载

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

文档简介

摘要 随着软件企业的发展,软件测试作为保证软件质量,提高软件可靠性的重要 手段,在软件开发中起着不可替代的作用。软件测试的管理可以为软件企业提供 一个多阶段、逐步递进的软件质量保证实施方案。因此,如何有效的对软件测试 过程进行管理是国内软件企业面临的首要问题,通过对当前软件测试管理工具进 行研究分析,总结出现有工具的主要特点和局限性,结合国内从事软件开发企业 的实际需求,提出新的要求,从而能够提高国内软件企业的开发水平。 本文分析了现有的软件测试管理工具的主要特点和局限性,结合国内从事软 件开发组织的实际需求,提出了一个具有下列技术特色的软件测试管理工具。测 试运行管理,通过将测试用例的静态信息和动态信息分离来进行测试用例运行的 管理,为重复测试、回归测试管理提供支持;缺陷管理模块,通过对缺陷跟踪状 态的转换建模分析,实现对缺陷进行动态的跟踪解决,并使缺陷管理具有分类属 性值的定制功能,使用户可以根据自身组织的管理要求进行自定义,根据定制提 供相应的分类查询、统计等处理功能;测试进度计划管理,通过设定测试里程碑 和管理检查点来对测试进度计划进行管理;测试评价,通过测试覆盖和缺陷度量 等方法来进行测试评价。 这个工具己经在w i n d o w s 平台上采用b s 结构实现,并在国内一企业获得实 际应用。 关键词:软件测试管理,前置测试,测试能力成熟度,测试用例,缺陷 r e s e a r c ho nt e c h n i q u eo fs o f t w a r et e s tm a n a g e m e n ta n da i d e d t o o lb a s eo np r o c e s s a b s 仃a c t w i t ht h ed e v e l o p m e n to fs o f t w a r ee n t e r p r i s e s ,a sa ni m p o r t a n tm e a n st og u a r a n t e e s o f t w a r eq u a l i t ya n dr e l i a b i l i t y , s o f t w a r et e s t i n gp l a y sa ni r r e p l a c e a b l er o l ei nt h e p r o c e s so fs o f t w a r ed e v e l o p m e n t s o f t w a r et e s t i n gm a n a g e m e n tc a np r o v i d et h e s o r w a r ed e v e l o p i n ge n t e r p r i s ew i mam u t i - p h a s e sa n ds t e p - b y - s t e ps o f t w a r eq u a l i t y a s s u r a n c ee x e c u t i v ep l a n t h e r e f o r e ,h o we f f e c t i v et om a n a g et h es o f t w a r et e s t i n g p r o c e s si st h em o s ti m p o r t a n ti s s u et h a tt h ed o m e s t i cs o f t w a r ee n t e r p r i s e sa r ef a c i n g a n dt h r o u g har e s e a r c ho nt h ec u r r e n tm a n a g e m e n ts y s t e m so fs o f t w a r et e s t i n g ,w e c a ns u m m a r i z et h ec h a r a c t e r i s t i cf e a t u r e sa n dt h el o c a l i z a t i o no ft h e s et o o l s ,a n db r i n g f o r w a r dt h en e wr e q u i r e m e n t ,c o m b i n i n gw i t ht h ep r a c t i c er e q u e s to fs o f t w a r e d e v e l o p m e n te n t e r p r i s e s o ,i tc a ni m p r o v et h ed e v e l o p m e n tl e v e lo fd o m e s t i c s o f t w a r ee n t e r p r i s e s b a s e do na n a l y z i n gt h em a i nc h a r a c t e r sa n dt h el i m i t e da s p e c t so fm a n ys o f t w a r e t e s t i n gm a n a g e m e n tt o o l si ne x i s t e n c e ,r e g a r d i n gt h er e q u i r e m e n to fm a n yd o m e s t i c s o f t w a r ec o m p a n i e s ,t h ea u t h o r r e s e a r c h e da n d d e v e l o p e d as o f t - w a r et e s t i n g m a n a g e m e n tt o o l ,w h i c hi n c l u d e ss u c hc h a r a c t e r sa sl i s t i n gu n d e r t e s t i n gr u n n i n g p r o c e s sm a n a g e m e n t ,s e p a r a t i n gt h es t a t i ci n f o r m a t i o na n dd y n a m i ci n f o r m a t i o no f t h et e s t i n gc a s e st om a n a g et h er u n n i n gp r o c e s so ft h et e s t i n gc a s e s ,s u p p o r t i n g i t e r a t i v et e s t i n ga n dr e g r e s s i v et e s t i n g ;t h ed e f e c tm a n a g e m e n ts u b s y s t e m ,a tf i r s t ,i t m a k e st h em o d e l i n go ft e s t i n gt r a n s f o r m a t i o n sa m o n gt h e s t a t u s ,a n di m p l e m e m s o l u t i o no ft h ed e f e c ts t a t u s t h e n ,i ts o r t st h em a n a g e m e n to fd e f e c t s s t a t u sb y a t t r i b u t e st om a k eu s e r sd e f i n et h ef u n c t i o n so fq u e r y i n ga n ds t a t i s t i ca c c o r d i n gt ot h e r e q u e s to fo r g a n i z a t i o nm a n a g e m e n ti t s e l f ;t e s t i n gp r o g r e s sp l a nm a n a g e m e n t ,s e t t i n g t e s t i n gm i l e s t o n ea n dm a n a g e m e n tc h e c kp o i n tt om a n a g et h et e s t i n gp r o g r e s sp l a n ; t e s t i n ge v a l u a t i o n ,u s i n gt e s t i n gc o v e rr a t ea n dd e f e c tm e t r i ct oe v a l u a t eat e s t i i t h et o o lh a db e e ni m p l e m e n t e do nw i n d o w sp l a t f o r mw i t hb ss 仇l c t u r e i th a d b e e nu s e db yad o m e s t i cc o m p a n y k e yw o r d s :s o f t w a r et e s tm a n a g e m e n t ,p r o a c t i v et e s t ,t m m ,t e s tc a s e ,d e f e c t i i i 西北大学学位论文知识产权声明书 本人完全了解西北大学关于收集、保存、使用学位论文的规定。 学校有权保留并向国家有关部门或机构送交论文的复印件和电子版。 本人允许论文被查阅和借阅。本人授权西北大学可以将本学位论文的 全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫 描等复制手段保存和汇编本学位论文。同时授权中国科学技术信息研 究所等机构将本学位论文收录到中国学位论文全文数据库或其它 相关数据库。 保密论文待解密后适用本声明。 , 学位论文作者签名:孪! 雾一指导教师签名:搓三垒 | 、 蜊年绢7 日 砂艿年6 月尸日 西北大学学位论文独创性声明 本人声踢:所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究 成果。据我所知,除了文中特别加以标注和致谢的地方外本论文不包含其他人已经 发表或撰写过的研究成果,也不包含为获得西北大学或其它教育机构的学位或证书而 使用过韵材料。与我一同工作的同志对本研究所傲的任何贡献均已在论文中作了明确 的说明并表示谢意 学位做作者签名罗臂 硎月歹日 1 1 研究背景及意义 第1 章绪论 软件测试在软件生存周期中占有重要的地位,而且软件测试直接影响着软件 的质量,是保证软件可靠性的主要方法之一。其目的是发现软件缺陷和提高软件 开发的质量。软件缺陷是软件产品的固有成分。软件缺陷是软件“生来具有”的 特征。不管是小程序还是大型软件系统,无一例外地都存在缺陷,这些软件缺陷, 有的容易表现出来,有的隐藏很深难以发现,有的对使用影响轻微,有的会造成 财产甚至生命的巨大损失【l j 。软件从最初的设计到最后的退出使用,需要开发人 员、用户和维护人员的大量智力劳动。为了保证软件正常运行,必须对软件中存 在的缺陷进行有效的管理,从而为软件缺陷的消除或者软件的评价及决策提供依 据。目前经过软件专家们不懈的努力,软件测试理论已相对成熟,测试的技术、 方法和工具得到了相当的发展,但是对软件测试中所发现的缺陷,却缺乏相应的 研究,其管理也相对混乱h 。 软件测试是现阶段确保软件质量的有效手段,虽然程序正确性证明是理论界 研究的热门话题,但到目前为止尚没有关于有效工具可以利用的报道,因此确保 软件质量的途径还是要依赖于进行有效的软件测试。测试对软件的质量、成本、 工期有很大的影响【3 】【4 】。美国质量保证研究所对软件测试的研究结果表明:越早 发现软件中存在的缺陷,开发费用就越低。在编码后对软件缺陷进行修改的成本 是编码前修改成本的l o 倍,在产品交付后对软件缺陷进行修改的成本是交付前 修改成本的1 0 倍。软件质量越高,软件发布后的维护费用越低l ) j 。据统计,在 一些较大规模的软件项目中,软件测试费用占整个软件工程所有研发费用的5 0 以上,特殊情况下,例如在涉及到人的生命安全( 如飞机控制或核反应监控等软 件) 的软件中,测试费用可高达软件生存周期所有其它阶段费用总和的3 到5 倍 【6 】 随着软件开发规模的增大,软件的实现技术越来越复杂,软件的业务逻辑也 越来越复杂,导致软件测试的工作异常复杂,工作量也异常庞大,软件测试工作 更加困难。为使大量而复杂的测试工作能够顺利进行,需将软件测试团队所有角 色的工作内容及他们使用的资源有效的管理起来。因此,加强对测试工作的组织 和管理尤为重要。而一套先进、有组织的测试过程和方法能够规范软件测试的各 个环节、提高工作效率、保证软件质量;使得在更短的时间内把高质量的软件提 供给客户成为可能。 软件测试管理工具是支持软件测试的主要自动化工具。目前国外有代表性的 软件测试管理工具有m i c r o s o f t 公司的r a d s ,r a t i o n a l 公司的t e s ts t u d i o , m e r c u r yi n t e r a c t i v e 公司的t e s td i r e c t o r ,s i l i c o nv a l l e yn e t w o r k s 公司的t e s te x p e r t 等。国内在这方面的研究开发工作比较薄弱。但目前国内软件组织对软件测试管 理工具的需求日渐增长。虽然上述工具提供了缺陷管理、测试用例管理等基本软 件测试管理功能,但同时它们也存在以下几个方面的局限性: 1 由于经济和文化等方面的原因,难以适应国内企业和单位的要求; 2 未提供测试任务的跟踪和协同管理功能; 3 不支持测试用例的重复运行,使重复测试、回归测试的管理比较困难; 4 软件缺陷严重等级、优先级和其他分类属性以及测试用例的分类属性的 划分均固定不变,不能适应不同软件组织的定制要求。 因此,研究和开发拥有自主产权的、开源的、满足国内软件组织要求的软件 测试管理工具不仅具有实际意义,也有一定的研究价值。 在省市科委和国家8 6 3 项目计划的支持下,西北大学软件工程研究所于2 0 0 0 年研究支持中、小企业的软件过程管理和质量保障技术,迄今已取得多项成果 【7 】【8 】【9 】【1 0 】【1 1 】【1 2 】【1 3 】【1 4 】 15 1 。本文的工作正是基于这样的背景提出的。 1 2 论文主要工作 本文的研究目标是针对现有的开源软件测试管理工具的一些局限性,借鉴软 件测试领域中先进的软件测试管理方法和模式,结合在软件测试方面的实践经 验,研究和实现一个实用的软件测试管理工具。本文的主要工作如下: 1 本文根据软件测试管理的实际需要,着重研究测试用例管理、软件缺陷 管理、测试任务管理和软件测试度量,以及它们之间的相互关系等。为了达到最 2 大程度地发现软件缺陷并及时改正目的,建立了相关的度量模型对软件测试过程 进行评审。 2 该工具设计支持重复测试、回归测试,在测试的过程中,允许局部修改 测试用例、选择适当的测试用例进行多轮测试。由于不同的测试组织对软件缺陷 和测试用例的分类属性值的设置和理解不同,允许用户可以根据自己的特定要求 方便地进行缺陷和测试用例分类属性值的自定义。 3 建立了测试覆盖度量模型、缺陷度量模型,并给出了相应的软件测试度 量指示器,结合公司实习收集的实验数据并进行了验证。 4 建立和描述了本工具管理的实体对象及其之间的关系:测试项目、缺陷、 测试用例、用户、测试进度计划和测试任务。每个测试项目有多个测试用例;用 户进行测试,发现软件缺陷;每一个测试用例对应多个缺陷;一个测试项目可以 分解为多个测试任务;每一个测试任务对应一个任务的测试进度计划;每一个用 户可以分配自己的多个测试进度计划。 5 通过理论的研究,结合当前较流行的开源技术,设计并实现了基于开源 的软件测试管理工具,目的是为了能够更好的实施软件测试管理工作。 1 3 本论文的组织结构 第1 章绪论 本章着重说明了选题的背景和意义,并扼要介绍了本文在理论和实践上所做 的工作,最后给出了本文的组织结构。 第2 章相关研究 本章介绍了软件测试的基本理论知识,并对论文中涉及到的核心概念进行了 解释。讨论了当前比较流行的测试管理工具,并对这些工具的一些主要特性进行 了对比和分析。 第3 章软件测试管理过程 本章主要讲述了软件测试管理过程的概念和技术。包括了测试用例的管理、 缺陷的管理、软件测试度量,重点分析了这三个对象进行管理的过程中所应用到 的相关技术。并从提高测试过程改进的角度,提出了度量测试效果的各项指标。 第4 章软件测试管理系统的设计 本章详细的阐述了该测试管理工具的体系结构设计、功能模块设计及数据模 型的设计。 第5 章基于开源的软件测试管理工具的改进实现 本章主要阐述了本文所研究的开源软件测试管理工具m a n t i s 解决方案的实 现,以及实现过程中所采取的一些关键技术。 第6 章总结与展望 本章总结了本文在理论与实践上所做的工作,并提出了下一步工作的构想和 目标。 4 第2 章相关研究 2 1 软件测试的概念及其原则 软件测试是在软件投入运行前,对软件需求分析、设计规格说明和编码的最 终复审,是软件质量保证的关键步骤。一般来说,软件测试是为了发现错误而执 行程序的过程,即根据软件开发各阶段的规格说明和内部结构而精心设计一批测 试用例( 即输入数据及其预期的输出结果) ,并利用这些测试用例去运行程序以发 现程序错误的过程【6 1 。 随着软件开发技术的发展,人们对软件测试及其重要性的认识也进一步加 强,然而到目前为止,对软件测试还没有一个公认、准确的定义。在此,只列举 出一些比较有代表性的定义。1 9 8 3 年i e e e ( 电气和电子工程师协会) 提出的软件 工程标准术语中给软件测试下的定义【1 6 】是:“使用人工或自动手段来运行或测定 某个系统的过程,其目的在于检验是否满足规定的需求或是弄清预期结果与实际 结果之间的差别。 该定义非常明确地提出了软件测试是以检验软件系统是否满足需求为目标。 定义包含了丽方面的含义:一是是否满足规定的需求;二是是否有差别。如果有 差别,说明设计或实现中存在缺陷,自然不可能满足规定的需求。g j m y e r s 在 ( ( t h ea r to fs o f t w a r et e s t i n g ) ) 一书中提出【1 7 】: 1 测试是为了发现错误而执行程序的过程; 2 一个好的测试用例在于能发现至今未发现的错误; 3 一个成功的测试是发现了至今未发现的错误的测试。 该定义明确指出测试的目的是“寻找错误,而不是为了证明软件是正确的。 上面两个定义从不同角度描述了软件测试的基本概念。事实上,这两个定义的含 义是一致的【1 8 】。软测试的目的就是检验软件是否满足需求目标,同时尽量查找 软件中存在的错误。由此所带来的附加收获是:测试结果为软件可靠性分析提供 了依据;可以通过分析错误产生的原因和错误的分布特征,帮助项目管理者发现 当前所采用的软件过程的缺陷,以便改进。同时,分析的结果也能帮助测试人员 设计出更有针对性的检测方法,改善测试的有效性。 从软件的生存周期看,在软件开发的每个阶段都有可能发生错误。如果前一 阶段的错误没有及时地检查出来并得到很好的解决,那么,这个错误很自然地会 导致下一阶段的工作出现偏差和错误。据美国的一家公司统计,所检测出的软件 错误中,属于需求分析和软件设计的错误约占6 4 ,属于程序编写的错误仅占 3 6 ,程序编写的许多错误是“先天的”。因此,软件测试不应仅局限于对代码 的测试,应贯穿于软件的整个生命周期过程之中。需求分析阶段的需求规格说明 书、概要设计阶段的概要设计说明、详细设计阶段的详细设计说明书、源程序代 码、用例图、对象调用以及构件调用等,都将成为软件测试的对象。 2 2 软件测试模型 正如软件开发具有过程模型一样,软件测试也有测试模型。软件测试模型是 软件测试的工作框架,用于指导软件测试过程。下面分别介绍v 模型、w 模型 和前置测试模型。 2 2 1v 模型 传统的测试方法是基于v 模型来完成的,如图2 1 所示【1 9 】。v 模型是最具有 代表意义,也是最广为人知的测试模型。它最早是由p a u lr o o k 在2 0 世纪8 0 年 代后期提出的,旨在改进软件开发的效率和效果。图2 1 的左边表示传统的瀑布 开发阶段,包括需求分析、规格说明、概要设计、详细设计和编码,右边表示测 试的执行阶段,包括单元测试、集成测试、系统测试和验收测试。 v 模型的价值就在于它非常明确地标明了测试过程中存在的不同级别,并且 清楚地描述了这些测试阶段和开发过程的对应关系。 单元测试是对源程序中每一个程序单元进行测试,检查各个模块是否正确地 实现了所规定的功能,从而发现模块在编码或算法中出现的错误。该阶段涉及到 编码和详细设计的文档。 集成测试是将多个模块连接起来,确定它们的功能是否正确地组合在一起, 以发现概要设计中模块间接口设计的问题。 6 图2 1v 模型图 系统测试主要是检查系统作为一个整体是否有效地得到运行,是否能达到了 预期的高性能指标。 验收测试通常由业务专家或用户进行,以确认所开发的软件产品是否能真正 符合用户业务上的需求。 2 2 2w 模型 v 模型揭示了软件测试活动分层和分阶段的本质特性,但是其缺点在于容易 导致需求阶段隐藏的错误一直到最后验收测试时才能被发现,从而导致修改代价 大大增加。s y s e t m ee v o l u t i f 公司在v 模型的基础上提出了w 模型【1 9 1 。w 模型 由两个v 模型重叠而成,其中一个v 模型表示开发过程,包括需求分析、概要 设计、详细设计、编码、软件构建、系统构建以及安装等阶段;另一个v 模型 表示测试过程,包括需求测试、功能测试、设计测试、单元测试、集成测试、系 统测试以及验收测试等活动。软件测试的各项测试活动与开发过程的各个阶段一 一对应,如图2 2 所示。 7 图2 2 w 磁型图 按照w 模型,软件开发过程中各个阶段的可交付产品( 中间的或者最终的产 品) 都要对其进行测试,尽可能使各阶段产生的错误在该阶段得到发现和解决。 w 模型克服了v 模型中所存在的错误积累放大效应问题,使软件开发成本得到 了有效的控制。w 模型有利于尽早地全面的发现问题。需求分析完成后,测试 人员就应该参与到对需求的验证和确认活动中,以尽早地找出缺陷所在。同时, 对需求的测试也有利于及时了解项目难度和测试风险,及早制定应对措施,这将 显著减少总体测试时间,加快项目进度。 w 模型也有很大的局限性: 1 需求、设计、编码等活动被视为串行。 2 测试和开发活动也保持着一种线性的前后关系,上一阶段完全结束,才 可正式开始下一个阶段工作。 2 2 3 前置测试模型 前置测试模型是由r o b i n f g o l ds m i t h 等人提出的,是一个将测试和开发紧密 结合的模型,该模型提供了轻松的方式,可以使你的项目加快速度【2 1 1 。前置模 型将开发和测试的生命周期整合在一起1 2 0 ,标识了项目生命周期从开始到结束 之间的关键活动,并且标识了这些行为在项目周期中的价值所在,如图2 3 所示。 图2 3 前置测试模型 前置测试模型的基本思想包括以下几点: 1 开发和测试紧密相结合; 2 对每一个交付内容进行测试; 3 在设计阶段进行计划和测试设计; 4 让验收测试和技术测试保持相互独立。 前置测试模型将开发和测试的生命周期整合在一起,标识了项目生命周期从 开始到结束之间的关键行为。并且表示了这些行为在项目周期中的价值所在。如 果其中有些行为没有得到很好的执行,那么项目成功的可能性就会因此而有所降 低。如果有业务需求,则系统开发过程将更有效率。在没有业务需求的情况下进 行开发和测试是不可能的。而且,业务需求最好在设计和开发之前就被正确定义。 前置测试将测试执行和开发结合在一起,并在开发阶段以编码一测试一编码 一测试的方式来体现。也就是说,程序片段一旦编写完成,就会立即进行测试。 普通情况下,先进行的测试是单元测试,因为开发人员认为通过测试来发现错误 是最经济的方式。但也可参考x 模型,即一个程序片段也需要相关的集成测试, 甚至有时还需要些特殊测试。对于一个特定的程序片段,其测试的顺序可以按 照v 模型的规定,但其中还会交织一些程序片段的开发,而不是按阶段完全地 隔离。 每一个交付的开发结果都必须通过一定的方式进行测试。源程序代码并不是 唯一需要测试的内容。在图中表示了其它一些要测试的对象,包括可行性报告、 9 业务需求说明,以及系统设计文档等。这同v 模型中开发和测试的对应关系是 相一致的,并且在其基础上有所扩展,变得更为明确。 前置测试模型包括2 项测试计划技术: 第一项技术是开发基于需求的测试用例。这并不仅仅是为以后提交上来的程 序的测试做好初始化准备,也是为了验证需求是否是可测试的。这些测试可以交 由用户来进行验收测试,或者由开发部门做某些技术测试。很多测试团体都认为, 需求的可测试性即使不是需求首要的属性,也应是其最基本的属性之一。因此, 在必要的时候可以为每一个需求编写测试用例。不过,基于需求的测试最多也只 是和需求本身一样重要。一项需求可能本身是错误的,但它仍是可测试的。而且, 测试人员无法为一些被忽略的需求来编写测试用例。 第二项技术是定义验收标准。在接受交付的系统之前,用户需要用验收标准 来进行验证。验收标准并不仅仅是定义需求,还应在前置测试之前进行定义,这 将帮助揭示某些需求是否正确,以及某些需求是否被忽略了。 同样的,系统设计在投入编码实现之前也必须经过测试,以确保其正确性和 完整性。很多组织趋向于对设计进行测试,而不是对需求进行测试。g o l d s m i t h 曾 提供过1 5 项以上的测试方法来对设计进行测试,这些组织也只使用了其中很小 的一部分。在对设计进行的测试中有一项非常有用的技术,即制订计划以确定应 如何针对提交的系统进行测试,这在处于设计阶段并即将进入编码阶段时十分有 用。 设计阶段是做测试计划和测试设计的最好时机。很多组织根本不做测试计划 和测试设计,要么就在即将开始执行测试之前才飞快地完成测试计划和设计。在 这种情况下,测试只是验证了程序的正确性,而不是验证整个系统本该实现的功 能。 测试有2 种主要的类型,这2 种类型都需要测试计划。在v 模型中,验收测 试最早被定义好,并在最后执行,以验证所交付的系统是否真正符合用户业务的 需求。与v 模型不同的是,前置测试模型认识到验收测试中所包含的三种成份, 其中的两种都与业务需求定义相联系:即定义基于需求的测试,以及定义验收标 准。但是,第三种则需要等到系统设计完成,因为验收测试计划是由针对按设计 实现的系统来进行的一些明确操作定义所组成,这些定义包括:如何判断验收标 l o 准已经达到,以及基于需求的测试己算成功完成。 验收测试应该独立于技术测试,这样可以提供双重的保险,以保证设计及程 序编码能够符合最终用户的需求。验收测试既可以在实施阶段的第一步来执行, 也可以在开发阶段的最后一步执行。 前置测试模型提倡验收测试和技术测试沿循2 条不同的路线来进行,每条路 线分别地验证系统是否能够如预期的设想进行正常工作。这样,当单独设计好的 验收测试完成了系统的验证,即可确信这是一个正确的系统。 总之,从软件开发的生命周期可以看出开发软件的过程不仅仅是简单的构造 程序代码,需求分析的结果会直接影响到软件设计,而设计的结果又可能导致软 件实现的成功或失败。所以,在开发的每个阶段都应该有相应的测试工作,软件 测试不应该只是代码实现后的后置行为。 2 3 测试成熟度模型 软件测试过程是软件过程的一部分,1 9 8 4 年卡耐基- 梅隆大学软件工程研究 所( s e i ) 对软件过程进行了研究,并于1 9 8 6 年开始研究软件过程能力成熟度模型 ( c a p a c i t ym a t u r i t ym o d e l ,c m m ) t 2 2 1 。在c m m 中提出测试是软件过程的关键组 成部分,但并没有对测试管理模型做详细的规定。1 9 9 6 年,美国伊利诺斯州工 学( i l l i n o i si n s t i t u t eo f t e c h n o l o g y ) 的b u m s t e i n 等人参照c m m 提出t 测试成熟度 模型( t e s t i n gm a t u r i t ym o d e l ,t m m ) ,将其作为对c m m 的补充,其目的在于帮 助企业组织改进和评估其软件测试过程。 t m m 是一个采用分级方法确定软件组织的软件测试能力成熟度的参考模 型,可以指导软件组织提高其软件测试能力。t m m 将测试划分为五个级别,分 别是:初始级、阶段定义级、集成级、管理和度量级、优化与缺陷预防及质量控 制级,每一低级别均要达到一定的测试目标才能进化到更高一级,每一个成熟度 等级又包括若干成熟度目标,每个成熟度目标又包含若干成熟度子目标【2 3 1 1 2 4 1 , 如图2 4 所示。下面对t m m 的各个级别分别作以简单介绍。 改进过程 三e 觯的过程 图2 4 测试能力成熟度模型 t m ml e v e l1 :i n i t i a l ( 初始级) 软件测试是一个完全混乱的过程,在编码完成后进行,并且与程序调试混为 一谈。初始级的软件测试过程没有定义成熟度目标。 t m ml e v e l2 :p h a s ed e f i n i t i o n ( 阶段定义级) 测试已具备基本的测试技术和方法,测试已经与程序调试区分开来,并且被 定义为紧随软件编码完成之后的一个独立的阶段,但是由于测试的不成熟仅在编 码后制定测试计划,因为测试完全是针对于源代码的。处于这个级别的公司测试 的首要目的就是验证软件符合需求,会采用基本的测试技术和方法,由于测试处 于软件生命周期的末尾环节,导致出现很多无法弥补的质量问题。另外,在需求 和设计阶段产生的很多问题被引入到编码中,但基于源代码的测试导致产生了很 多的问题无法解决。这显然有悖于软件工程的要求。 t m ml e v e l3 :i n t e g r a t i o n ( 集成级) 测试不再仅是编码完成之后的一个阶段,它已经被集成到整个软件生命周期 中。测试活动遵循软件生命周期的v 模型,在需求阶段软件测试就介入了,测 试是建立在满足用户或客户的需求上,根据需求设计测试用例和作为测试的依 据。处于这个级别的公司测试工作由具有独立的部门负责,测试部门与开发部门 分开,独立开展工作。测试部门有自己的技术培训并且有测试工具辅助进行测试 工作。尽管处于这个阶段的公司认识到了评审在质量控制中的重要性,但是并没 有建立起有效的评审制度,还不能在软件生命周期的各个阶段实施评审制度。没 有建立起质量控制和质量度量标准。 1 2 t m ml e v e l4 :m a n a g e m e n ta n dm e a s u r e m e n t ( 管理和度量级) 测试是一个度量和质量控制过程。测试活动除测试被测程序外,还包括软件 生命周期中各个阶段的评审、审查和追查,使测试活动涵盖了软件验证和软件确 认活动;测试过程不再只是定性的描述,已经是一个可量化度量的过程。 t m ml e v e l5 :o p t i m i z a t i o n ( 优化级) 在前四级的基础上,测试过程已经很好地被定义了;管理预算和效率可以被 监控;测试过程的管理为持续改进产品质量和过程质量提供指导,已经具备了调 整和连续改进过程的机制;预防和质量控制已经被实施。 上面对于测试能力成熟度模型的分析,我们不难看出,目前我们国内从事软 件测试的公司所处的级别,很多公司还处于2 级或3 级,这虽然与现在软件测试 还是一个尚未成熟的行业有关,测试技术和测试工具还在发展之中,各个公司都 在摸索阶段,从事测试外包的公司相对好一些,这些公司为微软、m m 、m o t o r a l a 等公司提供测试服务,基本上是按照委托方的要求或带领下进行测试工作,而国 内做软件产品和承接软件开项目的公司,虽然有的建立了独立的测试团队,制定 了测试规范和测试流程或者评审制度,但是测试工作还是在摸索阶段,除了引入 国外的测试理论之外,目前国内也有很多人在研究测试理论,但是研究成果不太 显著。很多公司做软件测试时,几乎大多没有现成的经验可参考,所以目前急需 建立软件测试的行业标准,推动测试行业的发展,让测试有依据可查。 2 4 软件测试管理 2 4 1 软件测试管理概述 软件测试管理就是通过一定的管理方法和工具来对整个软件开发过程进行 监控,从而提高软件产品的质量。软件测试管理是对3 p 的管理:p r o c e s s e s ( i 贝i j 试 产生过程) ,p r o d u c t s ( 钡l j 试工作产品) ,p e o p l e ( 钡l j 试人员) 。其中,测试的产生过程 包括技术过程、管理过程和支持过程,对测试过程的管理主要是测量和分析软件 测试过程的有效性和效率,进行基于度量的软件测试过程的持续改进。测试工作 产品包括测试计划、系统测试说明书、测试用例、测试报告、缺陷报告等,对测 试工作产品的管理主要是测量和分析测试软件产品,收集质量分析和产品放行决 策所需要的数据,检查和评审软件测试工作产品。而对测试人员的管理包括了建 立有效的软件测试组织,使测试人员能够达到测试计划规定的工作目标,收集和 分析软件人员的工作绩效数据等方面的内容【2 5 】【2 6 1 。如果没有特别的辅助工具, 仅依靠人工处理,那么对软件缺陷的管理是很麻烦的问题,甚至可以说是不现实 的。对于成千上万个测试用例的管理、对测试中产生的缺陷的跟踪的工作量就非 常巨大。在这种状况下,软件测试的效率不会很高,从而很有可能出现诸多的问 题。 软件测试过程管理的目的是要对软件产品的整个测试流程进行控制和管理, 提高软件开发机构的软件开发能力,尤其是软件产品测试的管理水平,灌输和强 化企业的管理理念,确保软件开发机构开发产品的质量,进一步提高其市场竞争 能力1 2 7 1 。 2 4 2 软件测试管理中的相关术语 在软件测试的过程中,测试用例是核心,也是测试执行环节的基本依据。一 个测试项目的测试用例数目往往是很庞大的,对这些测试用例进行有效的组织和 管理十分重要,而对测试过程中产生的缺陷进行有效的处理也是至关重要的。 1 测试用例及其相关概念 ( 1 ) 测试用例:测试数据和测试结果的总称。目的是为了检查操作的结果是 否和预期的需求匹配,确定应用程序的某个特性是否正常的工作。 ( 2 ) 测试用例集:一个测试用例集就是一类测试用例的集合,即用来测试同 一个需求项或功能项的所有测试用例的集合。一个测试项目可以包含很 多测试用例集。 ( 3 ) 测试用例库:是所有用例的集合。 以上三个概念是测试用例设计和管理的基础。在测试用例集的设计上,应该 确保测试用例集之间不存在重复,以保证在测试过程中的测试用例选择上不会混 淆。 2 缺陷 软件开发人员喜欢用“缺陷 这个词来代表开发中发现的各种问题。狭义地 1 4 讲,缺陷是写程序过程中造成的错误:广义地讲,缺陷是影响客户正常使用的任 何问题。就是说,缺陷不仅仅是编程中出现的问题,还包括了客户功能规范等方 面的问题。本文中,关于缺陷的定义如下: ( 1 ) 缺陷是已交付产品中的异常情况或瑕疵。 ( 2 ) 缺陷也可以是在生命周期的初期发现的遗漏和缺点,也可以是已准备测 试或运行的较成熟软件中存在的故障征兆。 总之,缺陷可以是要跟踪并解决的任何种类的问题。 2 5 软件测试工具研究现状 目前,大家比较熟知的测试管理工具主要有:m s 的r a i d s ,r a t i o n a l 公司 的t e s ts t u d i o ,m e r c u r yi n t e r a c t i v e 公司的t e s td i r e c t o r ,s i l i c o nv a l l e yn e t w o r k s 公司的t e s te x p e r t ,c o m p u w a r e 公司的q ad i r e c t o r 等【2 8 1 。 其中,r a i d s 是专注于缺陷管理的工具,它提供了缺陷填报,缺陷查询等功 能。而t e s ts t u d i o 是专注于对测试用例的管理的工具,它按层次性组织测试用例, 易于查询和运行测试用例。t e s td i r e c t o r 和t e s te x p e r t 是另两个测试管理工具, 也提供了较好的缺陷管理和测试用例管理功能。 2 5 1 国外软件测试管理工具的研究现状 1 r a l d s 和t e s ts t u d i o 组合 r a i d s 具有缺陷管理功能,而t e s ts t u d i o 具有测试用例管理功能。将两者组 合在一起工作就具有了软件测试管理的基本功能了。r a d s 是英文版面的c s 结 构的软件系统,使用时需要先在客户端进行安装,然后连接到共享的数据库服务 器上,从而达到测试工作的协同合作。r a i d s 的一个特点是填报缺陷时十分方 便和智能,因为它可以很方便快捷的访问到测试用例数据库,所以它能动态的从 测试用例数据库中查询到填写缺陷时的所有的可选项,从而有效的提高了填报缺 陷的效率。 r a i d s 将缺陷分为o p e n 、v e r i f y 、c l o s e 三个状态,并在缺陷列表中以不同的 显示颜色显示出来,使人一目了然。新填报的缺陷为o p e n 态。在新增缺陷的过 程中,r a i d s 体现的另一个特点就是缺陷的目标人即缺陷的修改人是动态指定 的,这一方面显得很灵活,但同时也有很大的局限性。使用r a i d s 可以方便的 同时上传多个缺陷图片到缺陷数据库中,测试人员和开发人员可以通过r a i d s 方便的进行沟通和交流,沟通和交流的记录都动态的显示在缺陷描述的结尾。 r a i d s 具有很好的缺陷查询功能,而且查询界面动态生成,动态的任意组合 查询条件,使用者可以方便快速的查找到自己所关心的缺陷。 t e s ts t u d i o 是英文版面的单机版软件系统,使用时也需要在客户端进行安装。 在登录系统时,使用者需要提供一个测试用例数据库的本地副本。测试用例在系 统中以树结构显示,显得层次清晰。 t e s ts t u d i o 的一个比较突出的特点是,它支持测试用例的不同轮次的运行, 而且多个轮次可以同时进行。 t e s ts t u d i o 将测试用例分成u n n m 、p a s s 、f a i l e d 、b l o c k e d 等四个不同的状态, 来标识测试用例的运行情况。 我们可以看出使用r a i d s 和t e s ts t u d i o 的组合工具来进行测试管理时,可 以很好的对缺陷和测试用例进行管理和跟踪,但我们也要看到,尤其是t e s t s t u d i o 它的运行是建立在一个已生成的测试用例库的基础上的,它们并不具有需 求管理的功能,并不直接支持测试用例的生成。同时,在测试管理的其它方面, 比如测试进度计划管理、测试文档管理、测试任务管理等许多的其它方面,这个 工具组合也没有充分的支持。 2 t e s td i r e c t o r t e s td i r e c t o r 是一个英文版的基于w e b 浏览器的b s 结构的测试管理软件。 t e s td i r e c t o r 能有效的消除测试组织机构间、地域间的障碍,它能让测试人员、 开发人员或其它的i t 人员通过一个中央数据仓库,在不同的位置就能互通测试 信息。它将测试过程流水化作业,从测试需求管理,到测试计划,测试日程安排, 测试执行以及到出错后的跟踪,整个过程的管理可以在浏览器中很方便的完成。 对于测试需求管理,t e s td i r e c t o r 可以让测试人员根据应用需求自动生成测 试用例,通过提供一个直观机制将需求和测试用例、测试结果和报告的缺陷联系 起来,从而确保完全的测试覆盖率。 t e s tp l a nm a n a g e r 提供对测试计划的管理,根据r e q u i r e m e n t sm a n a g e r 所定 1 6 义的需求,t e s tp l a nw i z a r d 快速地生成一份测试计划,如果事先已经将计划信息 以文字处理文件如m sw o r d 的方式存储,t e s tp l a nm a n a g e r 可以利用这些信息, 并将这些信息导入到t e s tp l a nm a n a g e r 中。 一旦测试计划建立后,t e s td i r e c t o r 的测试实验室管理为测试同程制订一个 基于w e b 的框架。它的s m a r ts c h e d u l e r 根据测试计划中创立的指标对运行着的 测试执行监控。 t e s td i r e c t o r 的出错管理直接贯穿作用于测试的全过程,以提供从最初的问 题发现到修改错误再到检验修改结果这整个过程的管理。在新增一个缺陷时, t e s td i r e c t o r 会自动执行一次缺陷数据库的搜寻,确定是否已有类似的案例记录。 这一搜寻功能可避免重复劳动。 通过t e s td i r e c t o r 可以进行一定的测试评价。在测试过程的最后一步是分析 测试结果,确定应用程序是否已部署成功或需要再次的测试。t e s td i r e c t o r 提供 图形化和测试报表的输出。 虽然t e s td i r e c t o r 的功能较全面,但是它是以强规定性牺牲灵活性为代价的, 如果使用t e s td i r e c t o r 进行测试管理,你需要从一开始就按系统规定的方式来进 行工作,而实际上,许许多多的组织在软件开发的不同的阶段都有自己不同的处 理方式。这无疑会大大的限制了t e s td i r e c t o

温馨提示

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

评论

0/150

提交评论