已阅读5页,还剩66页未读, 继续免费阅读
(管理科学与工程专业论文)基于tmm模型的软件测试能力评价.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 由于用户对软件产品质量要求的不断提高,软件测试作为保障软件质量的关 键因素在软件生产服务过程中已成为一个越来越重要的环节。在继美国卡内基梅 隆大学软件工程研究所( s e o 提出软件能力成熟度模型( c a p a b i l i t ym a t u r i t ym o d e l f o rs o f t w a r e ,简称c m m ) 之后,许多研究机构和测试服务机构从不同角度出发 提出有关软件测试方面的能力成熟度模型。 软件测试成熟度模型不仅可以用来对企业的测试能力进行评级,还可以通过 评估企业当前的软件测试能力成熟度等级,找出软件测试过程中的不足与差距, 为其提供持续改进的方法与途径。 本文回顾了软件测试成熟度模型的发展历史,讨论了国际上应用比较广泛的 几种软件测试成熟度相关模型,着重分析了测试成熟度模型( t e s t i n gm a t u r i t y m o d e l ,简称t m m ) 的结构。在对国内软件业测试现状的分析以及西安部分软件企 业测试成熟度调研的基础上,结合软件测试过程理论及t m m 的特点构建并确立软 件测试成熟度评价指标体系,采用改进的层次分析法利用最优传递矩阵经过一系 列变换,得到一个自然满足一致性要求的判断矩阵并确定各级指标权重和建立权 重分配集,在建立评价等级集和确定指标的隶属度之后采用模糊综合评价法建立 多级模糊综合评价模型,通过选择合成算子计算评判值,再由评分标准确定企业 软件测试成熟度等级。最后,以西安某软件公司作为评价对象,运用上述方法对 该企业的软件测试成熟度进行了评价和等级评判,在对计算结果进行分析和总结 的基础上提出软件测试过程的改进建议。 关键词:软件测试成熟度指标体系模糊综合评价过程改进 a b s t r a c t a b s t r a c t t h es o f t w a r et e s t i n gw h i c hi st h ek e yp o i n tt og u a r a n t e et h eq u a l i t yo fs o f t w a r e h a ss t e p p e di n t ot h ei n c r e a s i n g l yi m p o r t a n tp h a s ed u r i n gt h ep r o c e s so fs o f t w a r e p r o d u c t i o n a f t e rc a p a b i l i t ym a t u r i t ym o d e i ( c m m ) w a sp u tf o r w a r db ys o f t w a r e e n g i n e e r i n gi n s t i t u t e ( s e i ) ,m a n yr e s e a r c hi n s t i t u t e sa n dt e s t i n gs e r v i c e si n s t i t u t e sp u t f o r w a r dd i f f e r e n ts o f t w a r et e s t i n gc a p a b i l i t ym a t u r i t ym o d e lf r o md i f f e r e n tp e r s p e c t i v e n o to n l yc a r lt h et e s t i n gc a p a b i l i t yb ea s s e s s e db ys o f t w a r et e s t i n gc a p a b i l i t y m a t u r i t ym o d e l ,b u ta l s ot h eg a pa n dd r a w b a c ko fs o f t w a r et e s t i n gc a nb ef o u n d , t h u si t c a np r o v i d em e t h o d so fp r o c e s si m p r o v e m e n t t h ed e v e l o p m e n th i s t o r yo fd i f f e r e n ts o f t w a r et e s t i n gc a p a b i l i t ym a t u r i t ym o d e l s h a db e e nr e v i e w e dm s t l y a n dt h e ns o m ei n t e r n a t i o n a la n du n i v e r s a lm o d e l sh a db e e n d i s c u s s e d ,w h e r et h et r a i to f t h et e s t i n gm a t u r i t ym o d e l ( t m m ) h a db e e nf o c u s e do n t a k i n gx i a na sa l le x a m p l e ,t h ei n v e s t i g a t i o nt oc u r r e n ts t a t u sa n dm a t u r i t yo fs o f t w a r e t e s t i n gh a sb e e nl a u n c h e d b a s e do nt h er e s e a r c ha n dc o n c l u s i o n , t h ee v a l u a t i o nc r i t e r i a s y s t e mh a db e e na s c e r t a i n e da n dt h ei m p r o v e da h p ( a n a l y t i ch i e r a r c h yp r o c e s s ) h a d b e e na d o p t e dt oc o n f i r mt h ew e i g hv a l u ei nd i f f e r e n tl e v e la n dt h e ne s t a b l i s h e dt h e w e i g hv a l u e a f t e rt h ea g g r e g a t eo fe v a l u a t i o ng r a d ea n ds u b j e c t i o no fi n d e xh a db e e n b u i l t , m u l t i f u z z yc o m p r e h e n s i v ea s s e s s m e n tm o d e lw a st h e nb u i l tu s i n gf u z z y c o m p r e h e n s i v ea s s e s s m e n tm e t h o d a n dt h e nt h ee n t e r p r i s es o f t w a r et e s t i n gm a t u r i t y l e v e lc a nb ee n s u r e db a s e do ne v a l u a t i o ns t a n d a r dt h r o u g hs e l e c t i n gt h ec o m b i n e da n d c a l c u l a t e dv a l u e s u b s e q u e n t l y , t h es o f t w a r et e s tm a t u r i t yw a se v a l u a t e da d o p t i n gt h e e x p l a i n e dm e t h o da b o v e ,a n dt h ec a l c u l a t e dr e s u l tw a sa l s oa n a l y z e da n dc o n c l u d e d w h e r eo n ee n t e r p r i s eh a sb e e ns e l e c t e da st h ee v a l u a t i o no b j e c t i nt h ee n d , s o m e s u g g e s t i o no fs o f t w a r et e s t i n gp r o c e s si m p r o v e m e n th a d b e e np u tf o r w a r d k e y w o r d :s o f t w a r et e s t i n gm a t u r i t yi n d e xs y s t e mf u z z yc o m p r e h e n s i v ea s s e s s m e n t p r o c e s si m p r o v e 西安电子科技大学 学位论文创新性声明 秉承学校严谨的学风和优良的科学道德,本人声明所呈交的论文是我个人在 导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标 注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成 果;也不包含为获得西安电子科技大学或其它教育机构的学位或证书而使用过的 材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中做了明确的说 明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切的法律责任。 本人签名:立l 逛日期2 塑! :! :! 西安电子科技大学 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究 生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。学校有权保 留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全部或部分内 容,可以允许采用影印、缩印或其它复制手段保存论文。同时本人保证,毕业后 结合学位论文研究课题再撰写的文章一律署名单位为西安电子科技大学。 ( 保密的论文在解密后遵守此规定) 本学位论文属于保密,在一年解密后适用本授权书。 本人签名:主l 垫 导师签名: 第一章绪论 第一章绪论果一早三百下匕 1 1 研究背景及意义 随着软件市场的成熟,软件对社会运转的巨大贡献已经得到了广泛认可,人 们对软件作用期望值也越来越高,更多人将关注点转移到软件的质量和功能的可 靠性上,软件质量问题已成为软件市场上的重要因素。软件测试作为产品质量的 保证和控制成本的关键,正越来越引起人们的关注。 在软件业较发达的国家,软件测试已成为软件开发过程中必不可少的一个有 机组成部分。测试的工作量约占用整个项目开发工作量的4 0 左右,软件测试人 员与软件开发人员的比例大都在1 :1 以上,软件测试在软件企业中拥有举足轻重 的地位。为了对企业软件测试能力做出评价并找出测试过程中的不足并不断改进, 在1 9 8 7 年美国卡内基梅隆大学软件工程研究所首次提出软件能力成熟度模型 ( c a p a b i l i t ym a t u r i t ym o d e lf o rs o f t w a r e ,简称c m m ) 之后,国外许多研究机构 和测试服务机构从不同角度出发提出有关软件测试方面的能力成熟度模型。这些 模型都可作为对c m m 的有效补充。 我国软件产业的起步较晚,当前对软件测试的深入研究还比较少,国内软件 业普遍存在注重开发而轻视测试的现象,软件企业中测试人员与开发人员数量一 般为l :5 或更低,软件企业在进行产品开发时,经常将测试成本压缩。我国软件 测试在软件业中的比重和质量与欧、美、日、印度有着较大的差距。国内软件产 业在产品性能测试领域存在着严重不足,软件测试水平的高低直接决定了中国软 件产业的前途与命运。为了提高企业的测试能力和水平,我们认为针对软件企业 进行软件测试成熟度的研究及评价是非常有必要而又具有现实意义的。软件测试 成熟度模型作为一种用来评价企业软件测试能力的工具,可以为企业提供一种参 照标准,企业可以以此为标准找出自身不足,找出测试过程改进的方向,追求最 佳实践,以加快提高企业自身的测试水平。 本文在考察软件企业测试过程现状的基础上,针对软件测试过程中存在的问 题提出具体的对策和建议,结合测试过程理论及测试成熟度模型t m m 的结构,确 立软件测试成熟度评价指标体系,通过多级模糊综合评价法确定企业软件测试成 熟度等级。 2 一 基于t m m 模型的软件测试能力评价 1 2 1 软件测试的发展 1 2 问题研究现状 软件测试是伴随着软件的产生而产生削1 1 。在早期的软件开发过程中,由于软 件规模都很小、复杂程度较低,软件开发的过程均呈现混乱无序的状态。测试的 含义比较狭窄,测试被认为等同于调试,纠正软件中已知的故障,企业对测试的 投入极少,测试介入也较晚,常常是等到形成代码,产品基本完成时才进行测试。 直到1 9 5 7 年,软件测试才与调试区别开来,作为一种发现软件缺陷的活动。由于 当时测试的目的只是确信产品能工作,测试活动始终后于开发的活动,测试通常 被做为软件生命周期中最后一项活动而进行。到了2 0 世纪7 0 年代,一些软件测 试研究者们建议在软件生命周期的开始阶段就根据需求制订测试计划。1 9 7 2 年, 软件测试领域的先驱b i l lh e t z e l 博士( 代表论著( ( t h ec o m p l e t eg u i d et os o f t w a r e t e s t i n g ) ) ) 在美国的北卡罗来纳大学组织了历史上第一次正式的关于软件测试的会 谢2 】,此举标志软件测试从此被提升到了一个专门的学科领域。直至上世纪8 0 年 代早期,软件和i t 行业进入了大发展阶段,软件产品趋向大型化、高复杂度,软 件在开发过程中难免产生缺陷和错误,而通过软件测试发现、解决软件缺陷和错 误,已经成为了软件生命周期中的一个重要历程。这个时候,一些软件测试的基 础理论和实用技术开始形成【3 j 。相关机构开始制定了各类标准,包括i e e e 、美国 的a n s i 标准以及i s o 国际标准。之后软件测试成了软件质量保证的关键因素, 它代表了规划、设计和编码的最终评审。通过测试可以证明软件的功能和性能与 需求是否相符合,测试结果可以作为分析软件可靠性的依据。在软件测试过程中 应做到以最少人力、物力和时间投入,尽可能多地去找出软件中潜在的各种错误 和缺陷【4 】o 根据i e e e a n s i 标准,软件测试是指使用为发现错误所选择的输入和状态的 组合而执行代码的过程。通过软件测试,可以发现错误并检验是否满足相应的软 件需求。测试并不仅仅是为了找出错误,通过分析错误产生的原因及分布的特征, 还可以帮助软件开发人员发现当前所采用的软件过程的缺陷,以便改进。同时, 这种分析也能帮助软件测试人员设计出有针对性地检测方法,改善测试的有效性。 其次,没有发现错误的测试也是有价值的,完整的测试是评定测试质量的一种方 法【5 1 。 软件测试的目的是尽可能发现并改正被测试软件中的错误,提高软件的可靠 性【6 j 。软件测试是软件生命周期中一项非常重要且非常复杂的工作,对软件可靠性 保证具有极其重要的意义,它是软件可靠性保证的有效方法。 软件测试的方法和技术是多种多样的,我们可以从不同的角度对其加以分类。 第一章绪论 从是否需要执行被测软件的角度可分为静态测试和动态测试。静态测试是指在对 软件进行分析、检查和测试时,不实际运行被测试的程序;动态测试则是指通过 运行程序来检验软件的动态特性和运行结果的正确性,并根据程序的运行过程对 程序进行评价的过程【刀。而从测试是否针对系统的内部结构和具体实现算法的角度 可分为白盒测试、黑盒测试和灰盒测试。白盒测试【8 1 又称为结构测试或逻辑驱动测 试,它是一种以程序为基础的或以程序和需求相结合为基础的测试方法。这种测 试方法假定测试对象的内部结构是己知的,允许测试者检查测试对象的内部结构, 并使用其结构信息来设计测试案例和测试对象是否满足规范的要求,测试者可以 完全不考虑测试对象的功能;黑盒测试又称为功能测试或数据驱动测试。它是一 种面向设计的测试方法。这种测试方法在完全不考虑测试对象内部结构的情况下, 根据程序的功能和外部特性得到测试数据;灰盒测试则是将白盒测试和黑盒测试 联合使用的测试方法。黑盒测试比建立在分支测试上的白盒测试更为完整,但是 两者的实用性都不够。通常的使用方式是开始用黑盒测试设计测试案例,然后尽 可能多地用白盒测试完成测试。 1 2 2 成熟度模型及测试成熟度模型的研究现状 ( 1 )成熟度模型的研究现状 目前,无论在软件界,还是在管理界,成熟度模型都是一个热门话题。成熟 度模型最早是在1 9 8 7 年由美国卡内基梅隆大学软件工程研究所( s e i ) 受美国国防 部委托研究制定并在美国,随后在全世界推广实施的一种软件评估标准。这个帮 助软件组织改进软件过程的过程能力成熟度框架包含了能够评估软件过程成熟度 的1 0 1 个问题的问卷。成熟度可指明一个软件开发组织软件过程能力的增长潜力 和改进的方面,也可表明一个组织的软件过程的丰富多样性及开发项目过程的一 致性 9 1 。它的具体含义是能力成熟度模型( c a p a b i l i t ym a t u r i t ym o d e l ,简称c m m ) 。 1 9 9 1 年,s e i 总结了c m m 成熟度框架和初版成熟度问卷的实践经验,将软 件过程成熟度框架升级为软件能力成熟度模型( c a p a b i l i t ym a t u r i t ym o d e lf o r s o f t w a r e ,简称s w - c m m ) ,并发布了最早的s w - c m m l 0 版。经过两年的试用, 1 9 9 3 年s e i 在广泛听取众多富有经验的软件专家的意见之后,公布了s w 二c m m l 1 版,这一版本一直使用到现在,是目前最为广泛的版本,即现在通常所说的c m m 。 19 9 4 年c m u s e i 出版了由m a r kp a u l k ,ch a r l e sw e b e r ,b i l lc u r t i s 和m a r yc h r i s s i s 等人编写的( t h ec a p a b i l i t ym a t u r i t ym o d e l :g u i d e l i n e sf o ri m p r o v i n gt h es o f t w a r e p r o c e s s ) ) 一书,该书全面介绍了c m m l 1 版的主要内容。 c m m 自从面世以来在各国软件界中产生了巨大影响,随着人们对c m m 研究 的不断深入,其在解决软件过程存在问题方面的成功使得相关领域也开始采纳相 4 一 基于t m m 模型的软件测试能力评价 关仿效它的模式,因此出现了多种基于c m m 的模型,构成c m m 族。如: 1 ) p - c m m :由b i l lc u r i t i s 博士主持开发的人员能力成熟度模型,用于人力资 源管理; 2 ) s a - c m m :软件获取成熟度模型,任务是提高软件获取能力的成熟度,以便 于和拥有成熟过程能力的软件开发方更好地配合; 3 ) i p d c m m :集成系统产品开发能力成熟度模型,面向集成系统产品的开发 管理; 4 ) s e c m m :系统工程能力成熟度模型,面向系统工程管理; 5 ) s s e c m m :系统安全工程能力成熟度模型,面向系统安全工程管理; 6 ) p m m :项目管理成熟度模型,面向项目管理过程。 ( 2 )软件测试成熟度模型的研究现状 随着软件界对软件过程的不断研究,软件过程能力的不断改进成为增进软件 开发组织的开发能力和提高软件质量的第一要素。在这种背景下,c m m 逐渐成为 了评估软件开发过程的管理以及工程能力的标准。从8 0 年代中期开始,软件生产 开始进入以个体软件过程( p e r s o n a ls o f t w a r ep r o c e s s ,简称p s p ) 、过程成熟度模型 c m m 和群组软件过程( t e a ms o f t w a r ep r o c e s s ,简称t s p ) 为标志的、以过程为中心 的发展阶段。 但是c m m 没有充分的定义软件测试,没有提及测试成熟度的概念,没有对 测试过程改进进行充分说明,在关键过程域( k e yp r o c e s sa r e a ,简称k p a ) 中没有 定义测试问题,与质量相关的测试问题如可测性,充分测试标准,测试计划等方 面也没有详细的阐述,它仅在第三级的软件产品工程的k p a 中提及软件测试职能。 因此,为了指导软件企业有效提高机构的测试能力,许多研究机构和测试服务机 构从不同角度出发提出有关软件测试方面的能力成熟度模型,作为s e i c m m 的有 效补充。这些模型主要分为三种: 第一种:d a v i dg e l p e r i n 和a l d i nh a y a s h i 博士于1 9 9 6 年提出的测试支持度模 型( t e s ta b i l i t ys u p p o r tm o d e l ,简称t s m ) 。它评估了测试小组所处环境对于他们 的支持程度,可分为弱、基本和强三个级别。t s m 定义了6 个关键支持域( k e y s u p p o r t a r e a ,简称i ( s a ) ,每个k s a 跨越了t s m 的三个级别。这6 个k s a 分别 为测试友好的基础构架、顾及测试的项目计划、测试友好的产品信息、顾及测试 的软件设计、测试件和测试环境设计【l0 1 。t s m 从测试组织的外部而非内部本身来 考察测试的成熟度,这是它区别于另外几个模型的地方。该模型的评估方法是使 用问卷调查的方法,问卷中的问题表明6 个k s a 的实现情况。该模型评估方法较 为简单,利于对处于较低梯级的企业进行评估。对于较高的几个梯级,由于评估 问题相对简单,很难真正反映出企业在软件测试过程中的问题和差距。 第二种:r o d g e rd r a b i c k 和s u s a nb u r g e s s 博士于1 9 9 6 年在t e s t i n gc o m p u t e r 第一章绪论 s o f t w a r e 会议上提出的测试能力成熟度模型j ( t e s t i n gc a p a b i l i t ym a t u r i t ym o d e l , 简称t c m m ) 。t c m m 提供了与c m m 完全一样的五级模型,这五个级别分别为: 初始级、可重复级、已定义级、受管理级和优化级。在t c m m 中把评估和测试贯 穿于整个软件生命周期内,包括了对软件过程和软件产品的评估和测试【1 2 】。t c m m 是针对c m m 的不足之处提出的一种有效补充,它促进了c m m 的不断发展,有效 支持了c m m 的执行。t c m m 虽然是针对软件测试过程改进提出的可操作框架, 但没有c m m 对软件开发过程进行有效控制进和支持,t c m m 将难以向下进行。 在某种意义上讲,t c m m 只能作为c m m 一个针对软件测试过程管理的组件。作 为依托,一个t c m m 级别的实施必须由一个至少同等的c m m 级别进行支撑。因 此,t c m m 在实施过程中必须与c m m 进行关联i l 引。 第三种:美国伊利诺斯州学院( i l l i n o i si n s t a t u t eo f t e c h n o l o g y ) 的i l e n eb u m s t e i n 博士等人参照c m m 提出的测试成熟度模型1 1 4 ( t e s t i n gm a t u r i t ym o d e l ,简称 t m m ) 。t m m 是一个采用分级方法确定软件企业测试能力成熟度的模型,它的五 个级别分别为:初始级、定义级、集成级、管理和度量级以及优化、缺陷预防和 质量控制级。 t m m 描述了测试过程的管理,为软件测试过程提供了一个可操作框架,是测 试工作得到良好计划和控制的基础【1 引。它的五级成熟度级别合理的描述了企业进 行软件测试过程改进的实际情况,表明了企业测试过程能力的水平,给出了从前 级到后级进化的合理度量,明确了进行下一步改进所需的工作。因此,t m m 被广 泛的用于评估企业的软件测试能力。 1 2 3 软件测试成熟度评估方法的研究现状 在软件测试成熟度的评估方法上,文献【l6 】采用的方法是首先建立一支独立于 整个测试过程的评审团队,使之有效地查看和督促软件测试过程关键域的遵从性。 对于测试过程中没有遵从已制定测试能力成熟度模型( t c m m ) 大纲的要求的, 给予修正;对于一些由于一定原因造成没有遵从t c m m 大纲要求的,报告给上级 经理,评审人员和经理一起协调处理:对于由于特定原因不能修正的行为,记录 下来并且由配置管理员管理起来。评估中用到的工具是问题调查表,这个问题调 查表是帮助澄清软件测试哪些过程和实践已到位。当考察提问表收回以后,评审 团开始通过考察测试过程和测试实践文档来证实考察提问结果。考察的同时收集 数据,以便最后定量分析。当数据被收集后,最后的活动是对这些数据进行分析, 通过评估,指出被评估企业的软件测试能力成熟度和存在的不足之处,进而提出 评估企业达到下一测试能力成熟度级别需要改进的地方,包括所需的资金、人力 资源、进度以及要采用的工具等。 6 一 基于1 删模型的软件测试能力评价 文献【1 7 】给出的是量化软件测试成熟度等级的类c 语言算法,文中将测试成熟 模型( t m m ) 分为5 个等级,1 4 个关键实践域,1 6 1 个关键实践。根据t m m 五个 等级必须先达到较低等级才能达到较高等级这一特点,制定实践性能标度和测试 能力标度,标明企业要达到某一等级至少需要满足的关键实践条数,采用类c 语 言判断算法对企业的软件测试能力进行评估。 1 3 研究目标、研究内容及方法和论文结构 1 3 1 研究目标 本文通过研究软件测试过程以及软件测试成熟度模型相关理论,考察软件业 的测试现状,对西安高新区部分软件企业做测试成熟度调研,试图以理论分析和 数据收集为基础构建软件测试成熟度评价指标体系和评价方法,客观的评价企业 和认定企业的软件测试能力和资格。运用该方法能够对软件企业的软件测试水平 进行初步评价,为后续的软件测试成熟度深入研究做准备。 1 3 2 研究内容及方法 本文的研究是理论和实证相结合的研究,将紧密结合软件企业的软件测试实 践,而研究的结果又将用以指导软件企业的软件测试实践。因此,从指导思想上 讲,一方面要学习借鉴先进的软件测试过程管理方法,另一方面也要立足软件企 业的实际情况做一定的问卷调查与分析。本文主要是在企业层面上研究软件测试, 引入软件测试成熟度的概念,在建立软件测试成熟度评价指标体系时要综合考虑 多方面因素。本文研究的主要内容有: ( 1 )软件测试过程及t m m 结构分析。通过相关理论和方法等资料的收集及文 献分析,探讨有关软件测试过程、成熟度、软件测试成熟度的基础理论,重 点分析测试成熟度模型t m m 的结构; ( 2 )理论方法的应用。根据软件测试过程管理以及t m m 提供的思想,结合企 业软件测试的现状,构建了企业软件测试成熟度初始评价指标体系。对西安 高新区部分软件企业做重点调研,通过对调查资料的收集和分析以及对软件 测试从业人员的访谈,进一步了解软件企业测试实践的特点,确定最终的测 试成熟度评价指标体系。通过改进的层次分析法确定了各级准则及指标的权 重。在确定权重分配集、建立评价等级集和确定指标隶属度基础上建立模糊 综合评价,然后采用合成算子计算评判值,确定企业的软件测试成熟度等级; ( 3 ) 应用实例。结合某软件企业的软件测试部门,对所建立的指标体系和评价 方法进行应用研究并提出测试过程改进建议。 第一章绪论 1 3 3 论文结构 7 一 论文共分成六章,章节安排及其主要内容说明如下: 第一章介绍了本文的研究背景、意义及研究现状,阐述了本文的研究内容、 研究方法和整体思路; 第二章介绍了软件测试过程的概念以及软件测试过程的主要内容,对测试 成熟度模型( t m m ) 的结构进行了详细阐述。为后续章节之基础; 第三章根据软件测试过程管理以及t m m 指导思想,结合国内软件业测试现 状以及西安部分软件企业测试成熟度调研数据的分析,构建并确立软件测试成熟 度评价指标体系; 第四章确定软件测试成熟度评价准则及指标的权重分配集,用模糊综合评 价法评估企业的测试成熟度; 第五章探讨了评价方法的应用,对某企业的软件测试成熟度做实例分析并 提出测试过程改进的i d e a l 与i c a s e 模型; 第六章结论与展望,说明了本文的创新之处与研究展望。 本文的论文整体思路见图1 1 。 问题的提出 软件测试过程il 测试成熟度模型ll 测试现状分析 构建并确立测试成熟度评价指标体系 测试成熟度的模糊综合评价 权重分配集1 1 评价等级ii 隶属度ii 评价模型il 合成算子 图1 1 论文思路框图 基于删模型的软件测试能力评价 第二章软件测试过程和软件测试成熟度模型 2 1 软件测试过程 软件测试包括在软件生产全过程中,它有其自己的周期,软件测试过程就是 指从测试的开始阶段到最后结束阶段的这一过程。成熟的软件测试过程应该贯穿 于整个软件生命开发周期中,它包含了测试计划过程、测试设计过程、测试执行 过程、测试控制过程、测试评估过程【l s 】。软件测试过程是一种抽象的模型,用于 定义软件测试的流程和方法。开发过程的质量决定了软件的质量,同样的,测试 过程的质量将直接影响测试结果的准确性和有效性。软件测试过程和软件开发过 程一样,都遵循软件工程原理,遵循管理学原理。 软件测试过程的六个要剧1 9 j : 1 测试过程的质量决定测试工作的成败。测试工作有它自身的周期。测试过程从 产品的需求阶段开始,此后,与整个开发过程并行; 2 测试是一个专业技术学科,要求富有经验的专门技术人员。测试应该是独立的, 公平的,有组织的行为; 3 使用早期软件生存期测试技术可避免缺陷转移。有一半以上的错误是在需求阶 段引入的,避免错误从任何一个开发阶段转移到它的后续阶段,能将错误成本 降到最小; 4 利用自动测试工具可以完成无人参与的捕获回放操作,也能进行结构覆盖测 、j 、 讽; 5 改进测试过程必须有专人负责。管理层应该制定一名负责人或一个核心小组优 先考虑并领导测试改进工作,而且必须明确支持他们的工作; 6 测试过程中应做到及时沟通,培养创新的、积极的合作精神。 2 1 1 测试计划过程 计划是测试工作的第一步,也是最重要的一步,如果计划没有做好,整个测 试工作将没有办法控制。测试计划主要描述测试目标和整个测试过程中的进度安 排,以及人力、物力、资源规划t 2 0 j 。在制定测试计划的时候,首先要考虑到测试 的风险,并抉择要执行哪些测试,放弃哪些测试;在测试计划的评审中应该让软 件开发人员参与,这是为了能发现更多开发中存在的缺陷。在测试模型的选择上 尽可能贴近用户,或者站在用户的使用立场上来测试软件。将用例计划、用例库 的生成、用例的选取划分至此阶段。 在开始测试计划之前需要对产品的需求进行评审,在执行测试之前要对测试 第二章软件测试过程和软件测试成熟度模型竺 进行设计。设计测试的过程可以检查规格说明中的缺陷。因此,一个好的测试过 程能改善规格说明。测试计划可分为验证计划、测试项目规划、确认计划三个部 分。 测试计划的验证要考虑这些问题:确定验证活动的类型;选择方法( 审查、走 查等) ;界定产品中需要验证和不需要验证的范围;识别没有验证的部分所承担的 风险;界定产品需优先验证的范围。 测试项目规划做好资源、进度、设备、工具和责任等的规划。 确认测试活动包括单元测试( 由开发人员完成) 、集成测试( 由开发人员完成) 、 功能测试、系统测试和验收测试,与之相应的工作有将全部确认活动看着一个整 体而进行的高层计划,以及测试件结构设计。对每个确认活动,我们必须详细计 划、设计和开发测试件、运行测试、评价测试和维护测试件。确定计划中要将测 试方法、设备( 用于开发针对测试运行的测试件) 、测试自动化工具、支撑软件( 开 发和测试共享) 、配置管理、风险( 预算、资源、进度和培训) 等问题考虑在内。 2 1 2 测试设计过程 测试设计过程是测试过程管理的核心。在此阶段,在对需求说明文档进行分 析研究基础上,分解被测系统的每个功能域、定义功能结构图以及每个功能域的 相关风险因素。为了划分测试级别,对每个功能域分配风险因素、资源、工作开 销和实际工作。即风险越高则付出的测试就越多。同时,还应对划分的功能域进 行跟踪,帮助项目工程提供有意义的数据,用于将来的分析和计划。并定义被测 系统如何集成和评审,创建测试说明体系结构。 测试计划完成后,测试人员根据需求规格说明书完成测试需求。总 体设计说明书通过评审后,应提交测试人员;测试人员根据需求规格说明书 和总体设计说明书在测试计划的时间内完成测试用例。如有需要,编写相应 的测试脚本和测试程序。测试设计必须在软件的单元测试结束之前完成。测试用 例包括的内容包括:测试步骤与预期结果;制定人;优先级;用例状态。软件测 试设计过程流程图见图2 1 。 图2 1 测试设计过程流程图 基于硎模型的软件测试能力评价 2 1 3 测试实施过程 测试的实施阶段是在软件实现后通过执行测试用例来检查软件错误,包括单元 测试、集成测试、系统测试、验收测试等阶段1 2 1 1 。测试用例的运行将在此阶段执 行。测试人员根据测试用例表,记录测试的结果,将测试发现的问题分类,并对 测试发现的问题和模块、开发人员进行关联工作,这样有助于分析问题,并可有 效记录测试的结果,形成测试报告,并从中找出一些规律性的东西来。 当测试员根据测试用例对待测试的系统进行测试的时候,不论是否产生缺陷 报告,测试员的工作都要对测试用例的执行情况设定状态,通过测试用例的运行 状态可以判断测试案例是否己经执行完毕,如果执行完毕,那么测试是通过了还 是失败了。如果测试通过了,该测试用例在这一轮的测试也就结束了。如果测试 失败了,撰写一份缺陷报告,测试实施阶段就会转入测试控制及测试评估阶段, 测试实施过程流程见图2 2 。 图2 2 测试实施过程流程图 当测试工作流被触发后,即一个测试工作任务分配出后,工作流任务中指定 的相关责任人( 测试员) 可进行测试结果记录、测试后若发现缺陷报告,工作流任务 中指定的相关确认人对测试的结果进行确认,每个测试都记录了测试环境、版本、 测试操作的顺序、期望测试结果和实际结果等。 在测试实施过程中可能要对软件功能进行调整和变化,测试发现问题也会导 致变化,需要重新测试,对这些变更也需要进行管理。有时候错误的发生是随机 性的,为确保问题得到解决,需要重新测试多次,甚至分时间测试。存在这样的 现象,由于修正某项错误而引起其他通过的测试项不通过,需要测试结束后进行 回归测试,确保出现过的所有错误不再重现。由于很多错误之间是关联的,所以 在解决错误时,在细微的缺陷上要不浪费太多时间,要根据错误的优先级以及危害 度来制定解决的优先顺序。 2 1 4 测试控制过程 软件测试控制过程的主要目的是监控测试项目的偏差,必要时采取纠正行动, 第二章软件测试过程和软件测试成熟度模型卫 保证测试计划的执行,实现测试目标;测试控制过程需对所有的测试用例执行完 成后所产生的软件缺陷全部记录下来,分类和跟踪直至解决。即必须对测试出来 的软件缺陷进行确认并且清除。由于测试用例是指为实施一次测试而向被测系统 提供的输入数据、操作或各种环境设置, 试大纲中每个测试项目的进一步实例化。 按照以下基本准则而设计【2 2 】: 它控制着软件测试的执行过程,是对测 在测试控制过程中应分析测试用例是否 ( 1 )测试用例的代表性,能够代表各种合理的和不合理、合法的和非法的、边 界的和越界的、以及极限的输入数据、操作和环境设置等; ( 2 )测试结果的可判断性,即测试执行结果的正确性是可判定的或可评估的; ( 3 )测试结果的可再现性,即对同样的测试用例,系统地执行结果应该是相同 的; ( 4 )软件测试控制过程还应对测试执行阶段产生的软件缺陷日志评定软件质 量,给出评估报告,符合质量才允许进入下一级测试。否则必须返回上一级 的测试实施过程。 2 1 5 测试评估过程 测试评估过程要记录所有被测系统的事件及其日志,使得测试员和程序员能 够在系统中填报工作进度,高层管理者也可以通过该系统随时了解项目进度,对 生成的图表进行分析统计,以便监控软件产品测试的进度和软件缺陷处理状态。 并对项目的所有资源进行管理查询,用于计划未来的项目工程。软件可靠性数据。 是可靠性评估的基础,应该建立软件错误报告、分析与纠正措施系统。按照相关 标准的要求,制定和实施软件错误报告和可靠性数据收集、保存、分析和处理的 规程,完整、准确地记录软件测试阶段的软件错误报告和收集可靠性数据。用时间 定义的软件可靠性数据可以分为四类:失效时间数据,记录发生一次失效所累积 经历的时间;失效间隔时间数据,记录本次失效与上一次失效的间隔时间;分组 数据,记录某个时间区内发生了多少次失效;分组时间内的累积失效数,记录某 个区间内的累积失效数。这四类数据可以互相转化。 每个测试记录必须包含充分的信息,包括测试时间、含有测试用例的测试计 划或测试说明、所有与测试有关的测试结果,包括所有测试时发生的故障以及参与 测试的个人身份。 1 2 基于t m m 模型的软件测试能力评价 2 2 软件测试成熟度模型t m m 1 9 9 6 年,美国伊利诺斯州学院( i l l i n o i s l ns t a t u t eo f t e c h n o l o g y ) 的i l e n eb u m s t e i n 等人参照c m m 提出了测试成熟度模型t m m 。t m m 是一个采用分级方法确定软 件测试能力成熟度的模型,它为软件测试过程提供了一个可操作框架。在t m m 的 指导下,企业内部的评估队伍可以确定当前的测试能力等级、高层管理者可以改 进测试计划、开发测试队伍可以提高测试的能力、用户和客户可以定义自己在测 试过程中的角色等。 t m m 将软件测试过程的成熟度分为5 个等级,每一个成熟度等级包括了若干 成熟度目标,每个成熟度目标又包含若干成熟度子目标。子目标定义了达到某一 级测试成熟度软件企业必须采取的一组措施的界限和范围。根据这些措施又定义 了一组与软件企业实施相联系的活动和任务,并将这些活动和任务以及相应的职 责分配给在测试过程中的主要参与者:管理人员、开发人员、测试人员、用户和 客户。职责不同的几种人员履行各自的责任,通过完成与子目标相关的各种任务 和活动达到预定的子目标田】。t m m 的框架结构见图2 3 。 图2 3t m m 框架 从图2 3 可以看出,t m m 的框架结构具有描述性及指示性的双重属性。这种 双重属性的目的是要有意的使它处于一个适当的抽象程度,从而避免不适当地限 制一个企业如何去改进它的测试过程。t m m 只描述测试过程改进要进行哪些方面 的行动,要满足哪些目标,但却不指定具体怎样去做,软件企业可以选用最适当 的办法实现t m m 。 墓 习 雾 第二章软件测试过程和软件测试成熟度模型旦 2 2 2 t m m 的等级 t m m 的五个级别分别为:初始级:定义级;集成级;管理和度量级;优化、 缺陷预防和质量控制级。t m m 每一个成熟度等级又包括若干成熟度目标,见图2 4 。 优化、预防缺陷和质量控制级( 5 ) i 优化测试过程质量控制应用过程数据预防缺陷 i 管理与测量集( 4 ) 软件质量评价,建立组织范围 内的评审程序,建立测试过程测量程序 l 集成集( 3 ) 控制和监视测试过程,软件全寿命周 f 期测试制定技术培训规划健立软件测试组织 l 定义级( 2 ) 制度化基本的测试技术及方法启动测试 计划过程,制定测试与调试目标 初始级 图2 4 删五个成熟度等级和目标 ( 1 )初始级 在初始级中,测试过程是无序的、未定义的过程。这一等级还没有明确的区 分调试和测试,测试只是作为调试的一部分,软件缺陷的定义尚不明确;测试一 般是在编码完成后才介入,由于测试人员不能参与到早期的需求调研和设计阶段, 对系统需求和设计不能很好的理解,测试的目的只是为了证明系统和软件在工作。 这一等级的测试过程缺乏测试资源、工具以及训练有素的测试人员,软件产品通 常在没有明确质量和风险的情况下发布,软件产品常常处于不稳定或者性能不能 满足要求的状态。 ( 2 )定义级 在定义级中,测试过程已被定义,并作为独立的活动明确地与调试区分开来。 这一级已将测试过程标准化,开始编制包含测试战略的测试计划,依据系统需求 编写和选择测试用例,开始使用一些一般的测试技术和方法。但测试实施一般都 在设计完成或编码完成后才开始,测试的目的是验证系统和软件符合需求。 ( 3 ) 集成级 在集成级中,测试不再仅仅是跟随在编码阶段之后的一个阶段,它已被扩展 成与软件生命周期融为一体的一组已定义的活动。测试活动遵循软件生命周期的v 字模型。测试人员在需求分析阶段便开始着手制订测试计划,并根据用户或客户 需求建立测试目标,同时设计测试用例并制订测试通过准则。在集成级中应成立 软件测试组织,提供测试技术培训,关键的测试活动应有相应的测试工具予以支 1 4 基于侧模型的软件测试能力评价 持。在该测试成熟度等级中,尚没有正式的评审程序,没有建立质量过程和产品 属性的测试度量,测试的目的是基于系统需求。 ( 4 )管理和度量级 在管理和度量级中,测试己被彻底地定义并成为可测量的过程。前三个成熟 度等级主要集中在清晰的测试过程的区分与建立,而这一等级则明确的提出了量 化度量。在这一级中,测试活动除测试被测程序外,还包括软件生命周期中各个 阶段的评审、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年安徽邮电职业技术学院单招职业适应性测试必刷测试卷及答案解析(夺冠系列)
- 2026年内蒙古巴彦淖尔盟单招职业适应性考试必刷测试卷及答案解析(夺冠系列)
- 2026年四川幼儿师范高等专科学校单招职业倾向性测试题库附答案解析
- 2026年徽商职业学院单招职业倾向性考试题库及答案解析(名师系列)
- 2026年浙江纺织服装职业技术学院单招职业技能考试必刷测试卷及答案解析(夺冠系列)
- 基于残差分析的故障诊断
- 多元文化融合趋势
- 增强现实产品展示
- 房屋推迟过户协议书
- 房屋权属约定协议书
- 2025年火力电厂面试题及答案
- 2025江西金融租赁股份有限公司社会招聘10人笔试考试备考试题及答案解析
- 浙江省通讯C类安全员考试试题(供参考)
- 家政培训老年人护理
- 党的二十届四中全会精神丨线上知识有奖竞答题库
- 组织文化论文题目选题参考
- 2025年全国地区薪酬差异系数报告
- 银行风险管理体系建设操作方案
- 2025年河南省体育彩票管理中心公开招聘合同制聘用人员50人笔试考试参考题库及答案解析
- 传感器创新智能垃圾桶设计
- 精神病人冲动护理查房
评论
0/150
提交评论