(计算机软件与理论专业论文)基于tmm的实践度量研究.pdf_第1页
(计算机软件与理论专业论文)基于tmm的实践度量研究.pdf_第2页
(计算机软件与理论专业论文)基于tmm的实践度量研究.pdf_第3页
(计算机软件与理论专业论文)基于tmm的实践度量研究.pdf_第4页
(计算机软件与理论专业论文)基于tmm的实践度量研究.pdf_第5页
已阅读5页,还剩52页未读 继续免费阅读

(计算机软件与理论专业论文)基于tmm的实践度量研究.pdf.pdf 免费下载

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

文档简介

硐骚 基于t m m 的实践度量研究 计算机软件与理论专业硕士学位申请人赵云 指导教师丁晓明副教授 摘要 软件测试的目的是尽可能发现被测软件中的错误,提高软件的质量和可靠性。因此,软 件测试已经逐步成为软件生命周期中一个非常重要的活动。工业界的实践表明,好的、成熟 的过程能够保证工业产品的质量。因此,测试过程的优劣能够影响测试的有效性从而影响 软件产品的质量。 软件度量是监控、评估和改进软件过程的有效途径之一,其目的是为软件过程提供量化 的测量结果,以避免主观的臆断。将度量学运用到软件测试过程中,可以使测试过程规范化、 可视化;通过对度量数据的分析,可阻对测试过程的有效性进行评估。找出存在的问题,指 导测试过程改进;通过度量信息跟踪和监督测试过程状态,能够为测试过程管理提供决策支 持,降低测试过程承担的风险。 测试成熟度模型1 m m 是专门针对组织的软件测试活动的一个比较成功的测试指南和 评估、改进模型,已经得到国外许多软件企业的支持和使用。它拥有一套测试过程的实践活 动指南,正是这些实践活动构成了组织的软件测试过程。1 m m 的评估模型( 1 m m a ) 在一定 程度上可以指导评估和改进组织的实践能力,但它是一个高度概括的模型,操作性不强。而 且n d m 的管理和测量级也要求对软件测试过程进行度量,但它只告诉了做什么,而没有告 诉怎么做,缺少度量方法的指导。 本文以n n d 的实践为基础结合传统的过程度量方法、技术,对1 m m 的实践度量进 行了研究。本文研究工作主要集中在: ( 1 ) 细化n 皿l6 ,并实现基于州m 的软件测试成熟度等级判定算法。在分析了洲 的成熟度等级结构,以及1 m m 的框架结构的基础上,对t m m a 进行细化。根据e _ t m m a 的思想,提出基于t m m 的软件测试成熟度等级判定算法。 ( 2 ) 提出基于t m m 的实践度量模型。基于刑m 的实践度量模型主要包括度量计划、 数据采集、数据分析3 个部分。在度量计划部分,提出基于t m m 的测试实践度量元导出模 型,可以根据它来实现度量元的定义:然后叙述如何构造数据采集规程,数据采集的注意事 项以及介绍了该模型中可以用到的一些数据分析二f = 具,最后分析了该模型的优点。 ( 3 ) 将基于删的实践度量模型运用到一个测试项目的设计测试用例实践中,实现从 数据定义到数据分析的过程,并从组织管理者的意见获得对该模型的评价。 关键词:t 咖t 咖a基于t 胁的实践度量模型基于t 咖的测试实践度量 元导出模型 i r e s e a r c ho f 】e a s u r e m e n tb a s e do n t m m s p r a c t i c e 】a j o r :c o m p u t e rs o f t w a r ea n dt h e o r y s u p e r v i s o r :a d ju n c tp r o f e s s o rd i n gx i a om i n g a u t h o r :z h a oy u n a b s t r a c t t h ep u r p o s eo fs o f 啊a r et c s t l n gl st of i n dt l l ei i l i s t a k e smt h et e s t e ds o f 狮a r e 锄d i m p r o v es o f t w a r e sq u a l 姆a n dr e l i a b i l i t y t h e r c f o r e ,s o f t w a r et e s t i n gh 粥g r a d u a l l y b e c o m ea v e r yi m p o n a n ta c t i 、,i t yi nt h es o 脚a r cl i f ec y c l ei nr e c ty e a r s h d l l s 仃i a l 铀西n e 痂gp r a c t i c e sh a v ep m v e dt h a tg o o d ,m a t i l r ep i _ o d u c t i 衄p m c e 路c a ne n s u r e m eq u a l i t yo fi n d u s t r i a lp 硎u c t s t h e r e f o r e ,m e 胁a r et e s t i n gp m c e s s 啪 i n n u e n c em ee f f & t i v e n e 鼯o ft e s t i n ga c t i 啊t y ,也e r e b ya f b c tt l l eq u a l i t yo fs o 丘w a m p d u c t s s o r w a 舱m e m c si so n eo ft h ee 丘b c t i v ew a y st om o l l i t o r a 豁e s s 锄di i l l p r o v e s o 脚a f ep r o c c s s a c c o r d i l l gt og e tq u a m i t a t i v em e 勰蝴l e n t so f f | w a r cp m g r c s s ,“ c a na v o i ds u 巧e c t i v ea 船u m p t i o l l s t h e r e f o r e ,i tc a nu 哪掰盯黜mt h c o f yi n f l w a 托 l 路t i n gp r o c e s st om 出et b ep g r e 站s t a r d 砌z e d v i s u a l i z a t i o no rt 0a s s e 豁m ep r o c e s s s e f f e c t i v e n e s so rt o 仃a c kt h es t a t eo f m ep r o c e s s t h e i l ,扯c o r d i n gt ot l l ec 勰l 啪m 蛐t d a 乜 o r g 姐撕伽sl d e 砧c 锄m a :k ed e c i s i t or e d u c et l l er i s k si nt h ep r o g c e s s t e s t i n gm a n m t ym o d e l 删i ss p e c i 丘c a l l yf o rt t 圮s o 肺a t c s t i n ga c t i “d e s 舭di t ,sa r c l a t i v e l y 鲫c c e s s f i l lt e s t i l 玛p r o g r e 锚g u i d e l i n e ,锄di t sa l am o d e lf o r 勰s e s s i l l g ,锄di l n p r o v i n gt l l et e s t i gp m c e 鹳nh 船b e 髓s u p p o r c e d 蛆d 峙e di nm 觚y f o r e i g ns o f 时a r ec o m p a l l i e s nh 鹄as e to fp 豫c t i c a la c t i v i t i e s ,w l l i c hc o n s t i t i l e o r g m i z a t i o n ss o f t w a r et e s t 访gp r o 乒e s s t m m s 越s e s sm o d e l ( t m m a ) c a ng i l i d et h e o 喀a i l i z a l j o nt o 勰s e s s 柚di m p r 0 v et l i ep m c t i c eo fc a p a c i t yi nac 删ne 】【t e m b u ti t s ah i g h l ya b s t r a c tm o d e l ,i tm a i n l yr e l i e s0 nt h ee ) ( p 甜e 1 1 c e sa n da b i l i t 髂o f 嚣s e s st e 锄 m e 瑚【b e 碍a n d1 a c l ( so f 叩咖b i l i 呗s o sh a r dt ou 1 i it m m sl e v c l4 ,m 卸a 酎m e m 觚dm e 硒u 舢e m1 e v e l ,i tr e q l l i r e so 昭a i l i z a t i o nt od e v e l o ps o f t w a r et e s t i n gp m c e s s m e 砸c s ,b u ti td o e s n tp m v i d ea n ym e m o d st 0d oi t i h sm e s i sb a s e do nt m m sp r a c t i c a l a c t i v i t i e s ,璐e s 扯l d m o n a lp r o c e 蟠 m e a s u r c i n e mt e c h i l 0 1 0 9 yt 0r e s e a r c hm 嘶c so fs o f t w a r et e g i n gp r o 留r e s s t h ea u t h o r s w o r k sm a i n l yf o c u so n : ( 1 ) e x p 锄d 删a ,a n di m p l 锄e n tt h cd e t e 衄i n e 孕a d e sa l g o r i n l mo fs o f l w a r e t e s t i n gm a t 埘t y _ a f i e r 柚a l y z i n gm et m m sm a t l l r i t yg r a d e s ,仔锄e w o r k ,卸dt 疽m a b a o nt m m sp r a c t i c a la c t i v i t i e s ,p r o p o s et l l ee x p a i l d e dt m m a ( e t m m a ) t h e n , b a s c do nt h c “i l l 【i n go fe - t m m a ,“st l l e s i si m p l e m e mt l l ed e t 明n i n e 凹甜e s 西南大学硕十学位论文 a l g 谢t l l i l lo f m a t 研t yo f s o r w a r et e s t i n ga c c o r d i n gt m m sf o m a ld e s c r i p t i o i l 犯1p r o p o s eam e a s u r e m e mm o d e la b o u tt m m sp r a c t i c e t h em o d e lm a i n l y i n c l u d e s :m e 埘cp l a i l ,d a t ac o l l e c t i o n ,d a t aa n a l y z i n 晷i i lt 1 1 ep a no fm e t r i cp l a n , p r o p o s eam e t r i c sd e r i v e dm o d e la b o u t st m m sp r a c t i c et or e a l i z et 1 1 ed e f i n i t i o no f m e t r i c s ,c o n s t r u c tm eo r d e ro fd a t ac 0 1 l e c t i o n a n a l y z es o m ei m p o r t a n tp o n sd b o u t d a t ac o l l e c t i o n ,i n t r o d u c es o m et o o l sw h i c hc a nb eu s e dt oa n a l y z i n gc o l l e c t e dd a t a a t1 a s t a n a l v z em em o d e l sc h 副瑚t e f i s t i c s ( 3 ) u s e 血em e n t i o n e dm e a s u r e m e n tm o d e li nap r a c i i c eo fap r o j e c t :d e s i g n i n g t e s tc a s e h 1 1 p l e m e i l tm ep r o c e s s 丘d mm e t r i c sd e f i n i t i o nt od a t aa n a l y z i n 晷a c c o r d i n g t ot e s t i n gm a n a g e ra 1 1 do t h e rh i g h e rg o v e m e r s o p i n i o n s ,w eg e ta n ds u n 瑚a r i z em e a s s e s s m e n t so f t h em e a s u r e m e n tm o d e l k e y w o r d s :t m m ,t m m a ,m e a s u r e m e tm o d e lb a s e do nt m m sp r a c t i c e m e t r i cd r i v e nm o d e lb a s e do nt m m sp r a c t i c e 独创性声明 本人提交的学位论文是在导师指导下进行的研究工作及取得的 研究成果。论文中引用他人已经发表或出版过的研究成果,文中已加 了特别标注。对本研究及学位论文撰写曾做出贡献的老师、朋友、同 仁在文中作了明确说明并表示衷心感谢。 学位论文作者:化缸 签字日期: 御y 年岁月谚日 学位论文版权使用授权书 本学位论文作者完全了解西南大学有关保留、使用学位论文的规 定,有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允 许论文被查阅和借阅。本人授权西南大学研究生院( 筹) 可以将学位 论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩 印或扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权书,本论文:口不保密, 口保密期限至年月止) 学位论文作者签名:吨五导师签名:5 谴j 形 签字日期:罗年岁月口日签字日期:勿。鲜占月2 一日 第一章持论 第一章绪论 1 1 研究意义 随着计算机软件在国民经济、医疗、国防等各个领域的广泛深入应用。软件的发展日新 月异规模越来越大,复杂度也不断增高性能要求也更加苛刻,软件的成本、进度、质量 也变得更加难以控制,软件质量问题变得尤其突出。而软件测试的目的是尽可能发现被测软 件中的错误提高软件的质量和可靠性“1 。有研究表明;越早发现软件中存在的问题,开发 费用就越低软件质量越商,软件发布后的维护费用越低”。因此软件测试越来越受到软件 组织的重视。而且,目前软件形式化方法仍然停留在科研阶段,并没有实质性的飞跃,所以。 软件测试在将来相当一段时闻内仍然是软件可靠性保证的有效方法之一”。 软件测试成熟度模型( 1 b t i n g m a t 面t y m o d e l ,1 m m ) 是由伊利诺斯理工学院( 1 1 l i n o i s 埘i n 船o f t e c h n o l o g y ) 的c n eb m s t e i i i 等人于1 9 9 6 年提出。它是一个专门针对软件测试过程 的指导、评估、改善模型。它参照了c m m 的5 层成熟度等级框架结构。融合了g e l p e r h l 和h e n * 的文章“1 提到的5 0 年代到8 0 年代后期的测试阶段和测试目标、测试项目的实践经验以及 b 吐的“测试人员智力模型的发展阶段“”等内容。因此1 m m 实质上是积累了软件测试活 动和管理活动发展几十年的经验和知识。砌包括一套测试成熟度等级、一套每个成熟度 等级的实践指南、一个基于删的评估模型( 1 m m a ) ”1 。删模型中的实践指南不仅包括测 试活动实践,也包括组织的管理实践,它们全面、具体地告诉了组织应该做什么,它们本身 是一些粒度较小的过程,由它们就构成了组织的软件测试过程。1 m m a 则是一个指导性的 模型,它的主要思想是通过建立评估小组,依靠评估小组的经验,深入组织测试项目和测试 管理中,通过与相关人员的问卷调查、面谈等方式来判断组织的能力,并给出改进意见。但 是我们知道:度量是监控、评估和改进过程的有效途径之一”1 ,其目的是为软件过程提供量 化的测量结果,以避免主观的臆断。通过对过程的度量,可以使过程规范化,可视化:对度 量数据的分析,可以测量出过程的有效性及存在的问题,及时采取措施对过程进行调整,明 确过程的改进方向;通过度量信息跟踪和监督过程状态,能够为过程管理提供决策支持,降 低过程承担的风险。因此可通过在1 m m 实践中引入度量学方法,将使t m m a 更加容易使用, 而且也使得评估结果更具有客观性和说服力,还可以辅助管理者作出正确的决策和计划来改 进测试过程,从而可以保证组织的测试过程不断成熟,测试组织能力不断得到提高,最终实 现软件产品质量的保证和提高。因此,对t m m 的实践的度量研究具有十分重要的意义。 1 。2 论文研究内容 删模型自提出后,就得到了国外企业的广泛关注,特别是美国,许多企业都将其运 用到实际项目中,去指导、评估、改进自己的软件测试过程。比如j e f j a c o b s ,j v a nm o n , 和1 曲ls t o k e s 等人在1 9 9 8 到2 0 0 0 年之问,使用喇m 作为指南运用到一个软件组织,使该企 两南大学硕t 学位论文 业的软件测试成熟度达到了定义级别,带来的结果也令该组织满意”。k l a u s0 1 s e n ,p o u ls t a a l v i l l i e 将t m m 运用到3 个实际的商业项目中,不仅提高了组织的测试计划能力和组织能力,而 且也让企业获得了满意的测试效率”。但是在文献 8 ,9 】中,作者都提到了1 m m 本身的不足, 那就是它是一个高度概括的模型。操作性不强,在实施过程中需要凭借管理者的经验。国内 对t m m 本身的内容介绍较多,国内几个比较出名的软件测试网站如5 1 t e s t i n g ,t e s n g a g e 等 都有关_ 删的内容介绍,但是对于1 m m 的深入研究与运_ j 较少,文献【1 叫1 是国内罕有的 两篇关丁j 介绍将t m m 运用到工程实践中的文章。 目前国内和国外,对度量的研究大多集中在对软件过群度量的研究,但是对软件测试 过程方面的度量研究较少。文提山从过程建模的角度考虑对过程度量的支持问题,文 重点分析了对软件过程的度量和不同过程成熟度层次对度量的需求。而且国内大多软件企业 对测试不够重视,许多软件企业并没有将度量技术运用于软件测试过程中而且即使有,也 不全面充分。 因此,本文在研究、分析测试相关理论、软件度量学理论、t m m 的基础上,提出基于 t m m 的实践度量模型,并运用该模型对一个测试项目的设计测试用例实践进行了度量活动。 主要研究内容有: ( 1 ) 在分析n 仰t a 不足的基础上,扩展得到扩展的t m m a ( e t m m a ) ,并根据后者的思 想,实现了基于删的软件测试成熟度等级判定算法。 ( 2 ) 结合1 m m 以及g q m 系列方法,提出基于t m m 的实践度量模型。 基于t m m 的实践度量模型主要包括度量计划、数据采集、数据分析3 个部分。在度 量计划部分,提出基于t m m 的测试实践度量元导出模型,可以根据它来实现度量元的定义; 然后分析、研究如何构造数据采集规程,数据采集的注意事项以及介绍了该模型中可以用到 的一些数据分析工具,最后分析了该模型的特点。 ( 3 ) 将基于t m m 的实践度量模型运用到一个测试项目的设计测试用例实践中,实现从 数据定义到数据分析的过程,从运用中获得对该模型的评价。 1 3 论文组织结构 本文共分七章,组织结构如下: 第一章绪论 介绍本文的研究背景和研究内容。 第二章软件测试概述 介绍了软件测试以及软什测试过程的一些基本概念、用到的一些基本技术、基本模型, 并结合软什生命周期从管理角度分析了测试过程的管理问题,以此说明测试过程度量的重要 性。 第三章软件度量学基本理论与过程度量建模方法 介绍了软件度量学的一些基本理论知识,详细介绍了g q m 系列方法,并分析了它的不 2 第一幸绪诊 足之处。 第四章软件测试成熟度t m m 详细介绍了t m m 的基本内容,以及删m a ,以及1 m m 的优点,在分析1 m m a 不足的基 础上,扩展得到扩展的1 m m a ( e t m m a ) 并根据后者的思想,对1 m m 模型和评估过程形 式化,提出基于t m m 的软件测试成熟度判定算法。 第五章基于删的实践度量模型 将g q m 系列方法运用到t m m 模型中,提出基于1 m m 的实践度量模型以及基于删的 测试实践度量元导出模型,并对基于1 m m 的实践度量模型的特点进行了分析。 第六章基于t h n i 的实践度量模型的运用 将基于t m m 的实践度量模型运用到一个测试项目的设计测试用例实践中,实现从数据 定义到数据分析的过程,并从运用中获得对该模型的评价。 第七章总结 对全文的工作做了总结,分析了论文的不足,并对下一步工作进行了展望。 3 两南大学硕p 学位论文 第二章软件测试概述 2 1 测试的定义、目的、原则 目前,比较有代表性的软件测试定义有3 个,如表2 1 所示。 表2 1 测试的定义 年份定义 1 9 7 9测试足为发现错误而执行一个程序或者系统的过程。 1 9 8 3 测试是以评价一个程序或者系统的属性为目标的任何一种活动,测试是对软 件质量的度量。 2 0 0 2 测试是指为了度量和提高被测试软件的质量,对测试件进行工程设计,使用 和维护的并发生命周期过程。 1 9 7 9 年的软件测试定义是g 1 e n f b r dm y e f s 在自己的经典著作软件溅试艺术( t h ea r to f s o f t w a ”t e s t i n g ) 中提出的。在m y e r s 撰写该著作的时期,他的定义可能是人们所能发现 的最好的定义,因为其反映了人们在当时对测试所持的观点。简而言之,测试发生在软件开 发周期的末期,其主要目的是发现错误。1 9 8 3 年,b i l l h e t z e i 软件测试完全指南( c o m p j e t e g u i d eo fs o f c w a r et e s t i n g ) 一书中提出了另外一种观点定义软件测试。在它对测试的定义 中,软件测试已经包含了对软件质量进行评估的内容,而不仅仅是一个发现缺陷的过程。 m y e r s 和h e t z e l 的定义在当今仍然有效,因为他们都阐明了软件测试的一个特定方面。但 是,这些定义所存在的问题在于其范围。而第三个定义正是为了解决这个问题,硒c kd c r a i g 和s t e f np j a s k i e l 在系统的软件测试( s y s t c m 撕cs o 脚a r et e s 缸0 中提出的。在该定 义中,并没有“发现缺陷”的直接提法,尽管发现缺陷肯定仍然是测试的一个有效目标。而 且该定义不仅包括度量,而且包括提高软件的质量。这种测试被人们称作“预防性测试”。 从以上的定义我们可以知道软件测试的目的就是尽可能发现并改正被测试软件中的错 误,提高软件的质量。 通常情况下,软件测试是软件生命周期当中一项比较复杂的工作,测试组织在进行有效 测试之前,必须要了解一些软件测试的基本原则1 : ( 1 ) 所有的测试都应追溯到j l j 户需求。正如我们所知:软件测试的目标在于揭示错误。 而最严重的错误( 从用户角度米看) 是那些导致程序无法满足需求的错误。 ( 2 ) 应该在测试工作真正开始前的较长时间内就进行测试计划。测试计划可以在需求模 型一完成就开始。详细的测试用例定义可以在设计模型被确定后立即开始。因此,所有测试 应该在任何代码被产生前就进行计划和设计。 ( 3 ) p a f e t o 原则应用于软件测试。简单地讲,p a r e t o 原则暗示着测试发现的错误中的8 0 很可能起源于程序中2 0 的模块。当然,问题在于如何孤立这些有疑点的模块并进行彻底的 测试。 4 ( 4 ) 测试应从“小规模”开始,逐步转向“大规模”。最初的测试通常把焦点放在单个 程序模块上,进一步测试的焦点则转向在集成的模块簇中寻找错误,最后在整个系统中寻找 错误。 、( 5 ) 穷举测试是不可能的。甚至一个大小适度的程序其路径捧列的数量也非常大因 此,在测试中不可能运行路径的每一种组合。然而,充分覆盖程序逻辑,并确保程序设计中 使用的所有条件是有可能的。 ( 6 ) 为了达到最佳效果,应该由独立的第三方来构造测试。“最佳效果”指最有可能发 现错误的测试( 测试的主要目标) ,所咀创建系统的软件: 程师并不是构造软件测试的最佳人 选。 2 2 软件测试的分类 软件测试是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是 软件质量保证的重要手段。程序中的故障并不一定是由编码引起,也可能是由详细设计、概 要设计阶段,或者需求分析阶段的问题引起,即使针对源程序进行测试,发现故障的根源也 可能属于开发前期的各个阶段。解决问题、排除故障也必须追溯到前期的工作,所以软件测 试不等于程序设计。软件工程界普遍认为:在软件生存期的每一阶段都应进行评测,检验本 阶段的工作是否达到了预期的目标,尽早地发现并消除故障以避免因故障延时扩散而导致 后期测试困难。因此,软件测试应贯穿于软件定义与开发的整个期间。需求规格说明、概要 设计规格说明、详细设计规格说明、源程序都是软件测试的对象“”。 按照是否执行程序,可以将软件测试分为静态测试和动态测试。 2 2 1 静态测试 静态测试,主要是针对所有文档资料、编程规范、数据定义、控制和数据使用、代码与 需求的一致性、代码与设计的一致性等方面的分析其对测试经验和测试计划的依赖性极强 “j 静态测试是在不需运行软件系统的情况下,对系统进行的测试。其采用的方法主要有: ( 1 ) 文档资料浏览( w a 墩t i i r o u g l l ) ,达到正确的理解,并对任何改变具有统一的认知; ( 2 ) 讨论决定( r 州e w ) ,对文档资料进行讨论,并作出决定,如:做什么、不傲什么、 如何做等; ( 3 ) 检查( h l s p e c t i o l l ) ,根据规范和定义,找出可能存在的问题,如:市场和商业策略、 系统需求和系统设计、程序代码、测试计划、测试设计、测试案例、测试结果、用户手册、 培训教材等。 ( 4 ) 利用工具对程序代码进行静态分析( a n a l y s i s ) ,如:程序复杂度,系统结构、控制流 程、数据流程等。 5 两南夫学硕卜学位论文 2 2 2 动态测试 动态测试是被测系统在运行当中根据其动态的行为进行的测试。根据测试规模,可分 为:单元测试、集成测试、确认测试、系统测试及验收测试等几个阶段。 ( 1 ) 单元测试,单元测试是对软件中的基本、最小的组成单位进行的测试。比如在传统 的结构化编程语言中,函数和子过程可以算是一个单元测试对象:面向对象的语言中,单元 测试的对象可能是类,也可能是类的成员函数。单元测试通常在编码之后进行。单元测试是 软件动态测试的最基本的部分,也是最重要的部分之一。单元测试的主要方法有控制流视4 试、 数据流测试、排错测试、分域测试等等。 ( 2 ) 集成澳0 试,集成测试是在软件系统集成过程中所进行的测试,其主要目的是检查软 件单元之间的接口是否正确。它根据集成测试计划,一边将模块或其它软件单元组合成越来 越大的系统,一边运行该系统,以分析所组成的系统是否正确,各组成部分是否合拍。集成 测试的策略主要有自顶向下和自底向上两种。 ( 3 ) 确认测试,集成测试完成以后,分散开发的模块被连接起来,构成了一个完整的程 序,其中各模块之间存在的种种问题已被消除于是进入了确认测试阶段。所谓确认测试, 是对照“软件需求说明”,对软件产品进行评估以确定其是否满足软件需求的过程。在软件 开发过程中或完成以后,为了对它在功能、性能、接口以及限制条件等方面做出切实的评价, 就应进行确认测试。 ( 4 ) 系统测试,软件只是计算机系统的一个重要组成部分,软件开发完成以后,还应与 系统中其它部分联合起来,进行一系列系统联调测试,以保证系统各组成部分能够协调地工 作。系统测试实际上是针对系统中各个组成部分进行的综合性检验,很接近日常测试实践。 系统测试的目标不是要找出软件故障,而是要证明系统的性能。一般认为:独立测试机构在 测试过程中查错积极性高并且有解决问题的专业知识“”。因此,系统测试最好由独立的测试 机构完成。 ( 5 ) 验收狈4 试,验收测试是将最终产品与最终用户的当前需求进行比较的过程,是软件 开发结束后软件产品向用户交付之前进行的最后一次质量检验活动,它解决开发的软件产品 是否符合预期的各项要求,用户是否接受等问题。验收测试不只检验软件某方面的质量,还 要进行全面的质量检验并决定软件是否合格。因此,验收测试是一项严格的、正规的测试活 动,并且应该在生产环境中进行。如果软件是按合同开发的,在合同中规定了验收标准,则 验证测试由签订合同的用户进行。如果产品不是按合同开发的,开发组织可以采用其它形式 的验收测试a 1 p h a 测试和b e t a 测试。 a l p l l a 测试和b 咖测试都是在指定的时间内以生产方式运行并操作软件。a 1 p h a 测试一般 在开发公司内,由最终用户进行。被测试的软件由开发人员安排在可控的环境下进行检验并 记录发现的故障和使用中的问题。b e t a 测试则般在开发公司之外,由经过挑选的真正用户 群进行,它是在开发人员无法控制的环境下,对要交付的软件进行的实际应用性检验。在测 6 第二幸软件测试概述 试过程中用户要记录遇到的所有问题,并且定期向开发人员通报测试情况。a l p i l a 测试和b e t a 测试都要求仔细挑选用户,要求用户有使用产品的积极性。能提供良好的硬件和软件配置等。 2 3 软件测试过程概述 软件测试过程是一种抽象的模型,用于定义软件测试的流程和方法。众所周知,开发过 程的质量决定了软件的质量,同样的。测试过程的质量将直接影响测试结果的准确性和有效 性。软件测试过程和软件开发过程一样,都遵循软件工程原理,遵循管理学原理。 2 3 1 v 模型 v 模型最早由p “lr o o k 在8 0 年代后期提出,它是目前软件测试中广泛使用的模型之一 其模型如图2 1 所示 图2 1 软件测试v 膜型 文献 培 指出现在中国的大多数软件企业都采用v 模型作为测试的标准模型。v 模型被包 含在英国国家计算中心文献中发布,旨在改进软件开发的效率和效果。该模型在欧洲尤其是 英国被接受,并被认为是瀑布模型的替代品,而在美国则被误解为是又一种瀑布模型。在v 模型中,“v ”形象地描述了各阶段的活动星“v ”字型排列。同时也有确认( l i d 埘) 、 验证( v e t i f i c a l i o n ) 的意思。 v 模型中描述了一些不同的测试过程,并说明了这些过程在软件开发过程中所处的阶段。 左边下降的是开发过程各阶段,与此相对应的是右边上升的部分,即测试过程的各个阶段。 模型图中开发阶段这一侧,先从定义业务需求开始,然后要这些需求不断地转换到概要设计 和详细设计中去,最后开发成为程序代码。 在测试执行阶段一侧,执行先从单元测试开始,然后是集成测试、系统测试和验收测试。 v 模型的价值在于它非常明确地标明了测试过程中存在的不同阶段,并且清楚地描述了这些 测试阶段和开发过程各阶段的对应关系。在v 模型中,测试和开发在软件过程中同样重要, 并且开发过程和测试过程存在着一定的对应关系。 v 模型的不足在于,测试活动在编码完成之后才开始,测试活动等同于测试的执行。在 软件开发中如果直到最后阶段才进行测试,就错过了早期发现系统构架设计和逻辑设计中存 在的严重问题的时机,到了后期,要修复这种级别的问题将付出巨大代价,因为缺陷在软件 7 两南大学硕 学位论文 开发过程中是一个扩散放人的过程。同时,v 模型给人的感觉是模型的左边进行的是建设性 的活动而模型的右边进行的是破坏性的活动。同时产品的开发到编码实现之后就结束了, 没有描述在实际情况中发现缺陷,需要多次开发和同归测试的流程。 r e l l a b l l l t ys o r w a r e 公司的知名测试专家b r a i n m 耐c k 也指山了v 模型的一些比较重要的 缺陷:( 1 ) v 模型忽略了一个事实:软件是在一系列交接中完成的,而每次的交接都会改变 上一次交接的行为;( 2 ) v 模型依赖开发文档的存在性,准确性,完整性和实时性;( 3 ) v 模 型认为测试设计时只需要一份文档而不考虑早期或后期修正的文档;( 4 ) v 模型认为所有来 源于某一文档的测试用例要一起被执行。 2 3 2 w 模型 w 模型由e v o l 硼f 公司的p lh e r z l i c h 于1 9 9 3 提出,相对于v 模型,w 模型更加科学,它 是v 模型自然而然的发展,w 模型在v 模型的基础上增加了软件开发中各阶段应同步进行的 验证和确认活动。 w 模型由两个v 模型组成,分别代表测试与开发过程,如图2 2 所示。 幽幽 ,j l 一,l l 软件需求分析li 系统测试准备 世 = 掣等型掣等 n 新陌韵 f 单元测试 l 崮 l 程序编码 l 图2 2 软件测试w 模型 图中明确表示出了测试与开发的并行且相对独立的关系。 w 模型强调测试应伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、设 计等同样需要测试,也就是说,测试与开发是同步进行的。w 模型有利于尽早地全面地发现 问题。例如,需求分析完成后,测试人员就应该参与到对需求的验证和确认活动中,以尽早 地找出缺陷所在。同时,对需求的测试也有利于及时了解项目难度和测试风险,及早制定应 对措施,这将显著减少总体测试时间,加快项目进度“。 但w 模型也存在局限性。在w 模型中,需求、设计、编码等活动被视为串行的,同时, 测试和开发活动也保持着一种线性的前后关系,上一阶段完全结束,才可正式开始下一个阶 段工作。但是在现实的软件开发项目中,系统的需求往往无法在项目开始的阶段完全确立。 对于当前软件开发需求变更频繁的情况,w 模型并不能解除测试管理面临着困惑。 8 等 第:幸软件测试概述 2 3 3 h 模型 无论是v 模型,还是w 模型,都存在不妥之处。首先它们都把软件的开发视为需求、 设计、编码等等一系列的串行活动。而事实上虽然这些活动之间存在着互相牵制的关系, 但在大部分时间。它们是互相独立的,是可以并发进行的。虽然软件开发有清晰的需求、设 计和编码等等阶段,但实践告诉我们。严格的阶段之分只是一种理想状况。试问有几个软 件项目是在有了明确的需求之后才开始设计的呢? 所以相应的测试也不存在严格的先后次 序,只要测试条件满足,就可以进行测试并个不同层次之间的测试( 比如单元、集成和系 统测试) 除了简单的时间上的先后关系之外,还存在着触发、反复、迭代和增量关系。其次, v 模型和w 模型都没能很好地表示测试流程的完整性。测试流程可以大致分为两类活动,一 类是测试准备活动,包括测试需求分析、测试计划、测试分析、测试编码、测试验证等等,另 一类是测试执行活动,包括测试运行、测试报告、测试分析等等。虽然w 模型将测试从开发 中分离出来。但仍旧将测试视为一个个游离的活动,而不是一个系统化的流程。h 模型就是 为改进这些缺陷而产生的。如图2 3 所示。 就绪点 需求 需求分析设计编码集成 评估 验收 图2 3 软件测试h 模型 这个示意图仅仅演示了在整个生产周期中,某个( 测试) 层次上的一次测试。微循环” ( “微循环”是p m t 软件流程框架中的一个概念,简单地说,可以看作是一个流程在时间上 的最小构成单位) 。图2 3 中的“其它流程”可以是任意开发流程。例如设计流程和编码流程, 也可以是其它非开发的流程,例如s q a 流程,甚至是测试流程自身。向上的双线箭头表示, 在某个时间点,由于“其它流程”的进展而( 由于先后关系) 引发或者( 由于因果关系) 触发了 测试就绪点,这个时候,只要测试准备活动完成,测试执行活动就可以进行了。 概括地说。h 模型揭示了: ( 1 ) 软件测试不仅仅指测试的执行,还包括很多其它的活动。 ( 2 ) 软件测试是一个独立的流程,贯穿产品整个周期。与其它流程并发进行。 ( 3 ) 软件测试要尽早准备,尽早执行。 ( 4 ) 软件测试根据被测物的不同是分层次的。不同层次的测试活动可以是按照某个次序 先后进行的,但也可能是反复的。 h 模型兼顾效率和灵活性,可以被应用到各种规模、各种类型的软件项目上。 9 两南大学硕卜学位论文 - 2 3 4 其它模型 除上述儿种常见模型外,业界还流传着其它几种模型,例如x 模型、前置测试模型等。 x 模型提出针对单独的程序片段进行相互分离的编码和测试,此后通过频繁的交接通过集 成最终合成为可执行的科序。前置测试模型体现了开发与测试的结合,要求对每一个交付内 容进行测试。这些模型都针对其他模型的缺点提出了一些修正意见,但本身也可能存在一些 不周到的地方。 2 3 5 软件测试过程模型选取策略 前面几节介绍的测试过程模型中,v 模型强调了在整个项目开发中需要经历的不同的测 试级别,但忽视了测试的对象不应该仅仅是程序。而w 模型在这一点上进行了补充,明确指 出应该对需求、设计进行测试。但是v 模型和w 模型都没有将一个完整的测试过程抽象出来, 成为一个独立的流程,这并不适合当前软件开发中广泛应用的迭代模型。h 模型则明确指出 测试的独立性,也就是说只要测试条件成熟了,就可以开展测试。 在实际测试工作中我们应该尽可能地去应用各模型中对项目有实用价值的方面,不能强 行地为使用模型而使用模型。 2 4 由软件测试过程衍生出来的测试过程管理概念 生命周期模型为我们提供了软件测试的流程和方法,为测试过程管理提供了依据。但实 际的测试工作是复杂而繁琐的,可能不会有哪种模型完全适用于某项测试工作。所以,我们 应该从不同的模型中抽象出符合实际现状的测试过程管理理念,依据这些理念来策划测试过 程,以不变应万变。当然测试管理牵涉的范围非常的广泛。包括过程定义、人力资源管理、 风险管理等等。 2 4 1 尽早测试 “尽早测试”包含两方面的含义:第一,测试人员早期参与软件项目,及时开展测试的 准备工作,包括编写测试计划、制定测试方案以及准备测试用例:第二,尽早的开展测试执 行工作,一旦代码模块完成就应该及时开展单元测试一旦代码模块被集成成为相对独立的 子系统,便可以开展集成测试,一旦有b u i l d 提交,便可以开展系统测试工作。 由于及早的开展了测试准备工作,测试人员能够于早期了解测试的难度、预测测试的风 险,从而有效提高了测试效率,规避测试风险。由于及早的开展测试执行工作,测试人员尽 早地发现软件缺陷,大大降低了b u g 修复成本。但是需要注意,“尽早测试”并非盲目提前 测试活动,测试活动开展的前提是达到必须的测试就绪点。 2 4 2 全面测试 软件是程序、数据和文档的集合,那么对软件进行测试,就不仅仅是对程序的测试,还 o 第一+ 章软件测试概建 应包括软什“副产品”的“全面测试”,这是w 模型中一个重要的思想。需求文档、设计文 档作为软件的阶段性产品,直接影响到软件的质量。阶段产品质量是软件质量的量的积累, 不能把握这些阶段产品的质量将导致最终软件质量的不可控。 “全面测试”包含两层含义:第一,对软件的所有产品进行全面的测试,包括需求、设 计文档,代码,用户文档等等。第二二,软件开发及测试人员( 有时包括用户) 全面参与到测 试工作中例如对需求的验证和确认活动,就需要开发、测试及用户的全面参与,毕竟测试 括动并不仅仅是保证软件运行正确,同时还要保证软件满足了用户的需求。“全面测试”有 助于全方位把握软件质量,尽晟大可能排除造成软件质量问题的因素,从而保证软件满足质 量需求。 2 4 3 全过程测试 “全过程测试”包含两层含义:第一,测试人员要充分关注开发过程,对开发过程的各 种变化及时做出响应。例如开发进度的调整可能会引起测试进度及测试策略的调整,需求的 变更会影响到测试的执行等等。第二,测试人员耍对测试的全过程进行全程的跟踪,例如建 立完善的度量与分析机制,通过对自身过程的度量,及时了解过程信息,调整测试策略。“全 过程测试”有助于及时应对项目变化,降低测试风险。同时对测试过程的度量与分析也有助 于把握测试过程,调整测试策略,便于测试过程的改进。 2 4 4 独立的、迭代的测试 我们知道,软件开发瀑布模型只是一种理想状况。为适应不同的需要,人们在软件开发 过程中摸索出了如螺旋、迭代等诸多模型这些模型中,需求、设计、编码工作可能重叠并 反复进行,这时的测试工作将也是迭代和反复的。如果不能将测试从开发中抽象出来进行管 理,势必使测试管理陷入困境。 软件测试与软件开发是紧密结合的,但并不代表测试是依附于开发的一个过程,测试活 动是独立的。这正是h 模型所主导的思想。“独立的、迭代的测试”着重强调了测试的就绪 点也就是说,只要测试条件成熟,测试准备活动完成,测试的执行活动就

温馨提示

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

评论

0/150

提交评论