(计算机软件与理论专业论文)软件结构化测试及其应用实践.pdf_第1页
(计算机软件与理论专业论文)软件结构化测试及其应用实践.pdf_第2页
(计算机软件与理论专业论文)软件结构化测试及其应用实践.pdf_第3页
(计算机软件与理论专业论文)软件结构化测试及其应用实践.pdf_第4页
(计算机软件与理论专业论文)软件结构化测试及其应用实践.pdf_第5页
已阅读5页,还剩57页未读 继续免费阅读

(计算机软件与理论专业论文)软件结构化测试及其应用实践.pdf.pdf 免费下载

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

文档简介

摘要 软件钡8 试是软传质量保证的黛要手段,要成功开发出商质量的软件产鼯,必 须重视并加强软件测试工作。然而采用什么方法、如何有效地安排测试魁软件测 试领域中一直争论的话题。软件测试的发展经验轰暖:澳试不应该被局限在单一 豹除鬏;大量豹系统润题超源子软件开发懿裁潮;越旱进行灏试耍l 蘧有效。蕊这 些经验中风险驱动的软件结构化测试过程得阻产生和发展,并成为当今软件测试 领域中一种功能强大的测试过程觌范。其结构化特点使得其简单易行,风险驱动 熬特点经磐其裹效瓣嚣实震。 所谓风险驱动,是指软件测试工作围绕消除项目的潜在风险而展开,使得测 试工作商效实用;所谓结构化,慰指相互关联的工作要有个框架结构,并要有 一定的组织原则来支持它。丽软件测试工作的复杂性决定了软 孛澳l 试的浚穗必须 结梅纯且被清楚遗定义。 软件结构化测试在测试过程中揉和了测试计划、测试分析与设计、测试实施、 测试执行、以及维护等活动,与软件开发过程同步进行。通道风险分析以及早期 豹测试设诗活魂,纛我嚣求窝没诗中懿缺憝,鞭防大量懿缺终遽整至l 代褥中。这 个过穰指定了测试任务以及任务的执行顺序和执行时间,彼得测试活动有章可 循。 本文从较 譬结构化测试的基本裰念入手,初步研究其对廒鼹系统的传绫测试 过程产生重要影响静几个方面:缀构化、预防髋、风险分稀、测试度量、及测试 过程改进。并结合对贵阳劳动力综台业务管理系统( l a b o rm a n a g e m e n t i n f o r m a t i o ns y s t e m ,以下简称l m i s ) 项目的具体的测试工作,针对测试的每 个缀弱( 系统测试、交互溺试、炎溺试) 穷缓澜试过程匏终转洼蒋 歪。最嚣对风 险驱动的软件结构化测试过程在l m i s 项目中的实践效果进行了总结,并对以后 继续实践本方法提出了一些改进设想。 【关键字】软件测试、风险驱动、结构化、过稷方法、预防性 s o f t w a r e t e s t i n g i sa n i m p o r t a n tm e a n sf o r t h es o f t w a r eq u a li t y a s s u r a n c e i no r d e rt od e v e l o p i n gh i g hq u a l i t ys o f t w a r e ,w em u s ta t t a c h i m p o r t a n c et oa n ds t r e n g t h e ns o f t w a r et e s t i n g f u r t h e r m o r e ,h o wt od o t e s t i n ga n dh o wt oo r g a n i z et e s t i n gi sav e x e di s s u ei nt h es o f t w a r e t e s t i n gf i e l d t h ee x p e r i e n c eo ft e s t i n gt e l l st h a ts o f t w a r et e s t i n g s h o u l dn o tb el i m i t e di nas i n g l es t a g eo ft h es o f t w a r el i f e c y c l ea n dt h a t l a g e rn u m b e r so fb u g si ns o f t w a r es y s t e mc o m e sf r o me a r l ys t a g eo ft h e l i f e c y c l ea n dt e s t i n gc a na c t u a l l yi m p r o v et h eq u a i t yo ft h es o f t w a r e b e i n gt e s t e di fi to c c u r se a r l ye n o u g hi nt h el i f e c y c l e b a s e do nt h i s e x p e r i e n c e ,t h es o f t w a r es t r u c t u r e dt e s t i n gp r o c e s sw a sg e n e r a t e da n dh a s d e v e l o p e d in t oap o w e r f u l t e s t i n gp r o c e s sp a r a d i g m t h ew o r d “s t r u c t u r e d ”m e a n st h a ta 1 1a s s o c i a t e dw o r km u s th a v ea f r a m e w o r kt h a th a sas e to fr u l e sa n dr e g u l a t i o n st o s u p p o r t it t h e e o m p l e x i t yo ft e s t i n gd e c i d e st h a tt h ef l o wo ft e s t i n gm u s tb es t r u c t u r e d a n db ec l e a r l yd e f i n e d t h es o f t w a r es t r u c t u r e dt e s t i n gp r o c e s si sac o n c u r r e n t 1 i f e c y c l e p r o c e s sw h i c hc o m p r i s e do ft e s tp l a n n i n g ,t e s ta n a l y s i sa n dd e s i g n ,t e s t i m p l e m e n t a t i o n ,t e s te x e c u t i o n ,a n dt e s tm a i n t e n a n c e t h r o u g he a r l yt e s t d e s i g n ,p r o b l e m si nt h es o f t w a r er e q u i r e m e n ta n dd e s i g nc a nb ef o u n da n d p r e v e n t e df r o mb e i n gl e f ti nt h ec o d e t h i sp r o c e s ss p e c i f i e dt e s tt a s k s a n dw h e na n di nw h a to r d e rt oe x e c u t et h e m ,w h i c hl e ts o f t w a r e t e s t i n g h a sr u l e sa n dr e g u f a t i o n st of o l l o w t h i sa r t i c l es e t sb a s i ct h e o r yo fs o f t w a r es t r u c t u r e dt e s t i n gp r o c e s s a s as t a r t i n gp o i n tt op i l o ts t u d yi t s s i g n i f i c a n ti n f l u e n c eu p o nt h e t r a d i t i o n a la p p l i c a t i o ns y s t e mt e s t i n gp r o c e s sf r o ms e v e r a l a s p e c t s t h e nb a s e do na u t h o r sp e r s o n a lp r a c t i c ei nt e s t i n gl m i ss y s t e m ,t h i s a r t i c l ep r e s e n t st h ec h a r a c t e r i s t i co fs t r u c t u r e do ft e s t i n gp r o c e s si n t h eo r d e ro ft e s tl e v e l s a tl a s t ,t h ea u t h o rm a k e sa s u m m a r yo fl m i s t e s t i n gw o r ka n dp u t sf o r w a r ds o m ea d v a n c e di d e a sf o ri t k e yw o r d s s o f t w a r et e s t i n g ,r i s k - d r i v e n ,s t r u c t u r e d ,p r o c e s s ,p r e v e n t i o n u 独创性声明 本人声i 鬓掰黧交静学位论文是本入在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了义中特别加以标注和致谢的地 方终,谂交孛不毯食其蝗入瑟经发表或撰写过鳇磷窕或采,也零包含 为获得电子科技犬学或其它教育机构的学位或证书而使用过的材料。 与我一两工作的褥恚对本磺究所擞酶任何贡献均遗在论文孛傺了碉 确的说明并表示谢意。 签名:壶l 煎:日期:沙哆年? 7 jj 2e l 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 酶规定,有权保窝并向国家有关部门缄桃构送交论文酶复印件和磁 盘,允许论文被蠢j 阏和借阅。本人授权电子科技大学可以将学饿论文 静全熬或罄分肉容缓入有关数据痒送行捡索,虿绫来餐影臻、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密薛学位论文在鳃密矗瘴遵守此瓣定) 签名:塞l 遂 导郯签名: 日期:渺 电子科技大学硕士学证论文:软件结构化迥i 试及其应用实践 1 1 软件测试的现状 第一章弓l言 较传危羰营经楚敬终赛甚至熬令诗算裁茹滚热门夔话糕。瑷在人稠蠢经逐步 认识到所谓的软件藏机实际上仪怒一种状况,酃就是软件中商错误,正是这些错 误导致了软件开发程成本、进度和质量上的失控。这些引入的错误中的4 0 需 要测试米找出,测试对于软 牛生产来说是必需瓣。 键楚软件溺试凌全球翡发震嫩不平餐静,在软 串产照浇较发达静国家和遣 区,软件测试已经形成了一个成熟的行业体系。相比之下,中国软件企业在软件 测试方丽与国际水准仍存在较大藏距。首先,在认识上重开发、轻测试,没有认 识裂软终矮曩弱如期宠残不仅取决予并发久贾,受取决于溺试入羹;其次,在警 理上随意、简单,没有建立有效、规范的软件测试过程体系。 因此我们常常魑在项目开发究成之后,才发现软件有严熏缺陷问题,不得不 全部撼倒从头再来。攘倒重来则意味着前期人、财、物的投入全部浪费了,溉大 大增热了较筏静开发成本,又会黼为超出了客户酌委托辩瓣,付出瓣代价藏更高 了。而甩,软件业大部分的精力都投入在需求、分析、设计三个阶段的开发,造 成了这烘方面软件和方法论的快速发展,而软件测试在测试璁论和方法上还不尽 竟善,款侍棱建技术豹发震要抉予较捧溅试鼓零夔发震。在热 萼建立燕鼙荔震熬 颡试过程体系,如何提高测试效率,如何更好的解决测试豹究分性和测试成本这 对矛盾上还要有新的突破。 无论怎样,我们一定要正视点:我们的软传测试工作熏待改进。栽菠霹高 效静软 孛测试,莛掇离莓内软俘开发整薅囊董农准的基石,穗是谈中国鬣终成为 一个先进的软件大国的基石。 1 2 谦题硬究背爨和作者鲍工作 面对这些亟待解决的问题,作者在平时的学习过程中尤熊关注软件测试方面 的进展,积极的思索这方面的问题。在认真的r 解了软件测试的发展历程和现今 主要静瓣试瑾谂方法,并参考软耱秀发孛戆箕镳滔袭实黢经验之磊,俸者麓来越 觉得风险驱动的软件结构化测试邋程是一个易于实施的,可有效改善现有软件测 试过程中存在的问题的过程方法。 这一想法在作者的实习工作期闻褥到了个较据的印诞。 电子科技大学硕士学位论文:软件结构化测试及其应用实践 从去年四月起,作者开始在实习单位进行研究生阶段的实习。在工作过程中, 作者发现该组织的软件测试工作虽然有相应的测试规范,但是由于没有一套易于 操作的行之有效的软件测试过程方法加以辅助,使得开发人员要么僵化地照章办 事,要么就是做了上步,不知下步该做什么。这样地情况使该组织的软件测试工 作开展得较为凌乱,难以达到预期的效果。与此同时,通过与测试人员和项目经 理等交流,他们也深刻的认识到需要找到一个行之有效的而且便于操作的软件测 试过程方法来指导其软件测试工作的开展才能解决当前的燃眉之急。 于是,作者积极地介绍了风险驱动的软件结构化测试过程方法,并特别强调 其结构化特点使得其简单易行,风险驱动的特点使得其高效而且实用。经过认真 的讨论,最终认可了这一方法并决定在即将开展的l m i s 项目中认真实践这一方 法。为此,作者和同事配合在l m i s 项目中承担了项目的测试培训和测试管理和 实施工作。因此关于软件结构化测试及其在作者的实践过程中的思考便形成作者 的研究课题。 本课题以结构化测试过程为基础,初步研究其对应用系统的传统测试过程产 生重要影响的几个方面:预防性、风险分析、测试度量、及结构化。并对其在应 用软件开发项目中的适用性进行了总结。 i 3 论文内容的组织 l m i s 是基于面向对象技术进行开发的,因而影响到测试级别的划分。在面 向对象的程序中,最小的单元是类,那么传统的单元测试就应该变成类测试。对 于传统软件的集成测试,可以根据设计阶段形成的功能分解树,采用自顶向下或 自底向上的方式,逐步测试已通过测试的单元在组装成系统的过程中有无错误。 而面向对象软件采用的是通过类甚至组件的组合来实现系统的功能,没有一个功 能分解树可用,所以传统的基于功能分解的集成测试策略不适合面向对象软件, 因此转换为对类之间的交互进行的测试,即交互测试。 本文从软件结构化测试的基本概念入手,结合对l m i s 项目的具体的测试工 作介绍了结构化测试方法的应用。因为结构化测试方法是一个依据测试计划、设 计、实施、评估顺序进行的持续过程,而且各个测试级别在实施这个过程的步骤 上各有异同。因此,根据测试项目具体的实施情况,针对测试的每个级别( 系统 测试、交互测试、类测试) 介绍测试过程的结构性特征。同时,为了体现软件结 构化测试过程中的重要活动在软件生命周期中所对应的阶段,第四章( 开发项目 测试计划) 到第七章( 类测试) 都将使用l m i s 项目的测试结构图来表达当前活 动的所处的位置。 全文分为七个章节,每章的主要内容如下: 电子科技大学硕士学搜论文:软件结构化测试及其应用实践 第一章绪论 对论文的背景知识、课题研究背景进行整体性的介绍。 第二章软 譬缭构诧测试避程 介绥了软待结构化溺试过稷酌特点、结构、以及步骤。 第三章项目风险分析 在风险驱动的软件结构化测试过程中,风险分析就是帮助我们确定测试策略 的重簧方法。 第四章开发项目测试计划 讲述了项目测试计划的开发要点。 第五章系绞测试 这一章着重介绍了系统溅试级别中豹功能测试,赞对其实簏过程,擒逑了功 能测试过程的结构化特征。 第六章交互测试 交蠢溅试稷据类之润豹交戛关系寒逐步繁躐一个臻麓模浚,并在这个过程中 对集成部分进行测试。 第七章类测试 类测试孽传统意义上浆单元 樊l | 试,它是班炎为单元进行敕测凌。 第八章总结及展望 电子科技大学砸士学位论文:软件结构他撩峨及其应用实跌 第二章软件结构化测试过程 首先网顾一下软件测试发展过穰各个阶段的不同定义: 年代定义 1 9 7 9测试是为了查找错误而运行程序或系统的过程 1 9 8 3测试是旨在评储程序或系统属性的任何活动,它是软件质量的测量手段 2 0 0 2测试是设计、搜用和维护测件以测量帮提赢被测软件质量懿辩发生会周期避 疆 注:测件是指在软件测试过程中创建的任何文档或产品。 表2 一l 软件测试定义的发展 溺试定义夔发震俸凝了软 孛测试戆遗耽趋势,第一令定义表明,测试发黛在 软件开发生命周期后期,其主要目标是查我错误。到了1 9 8 3 年,测试包括了对 软件质量的评估。这两个定义都各自阐明了软件测试特定的一面,但是,它们都 存在范围的问题。为瓣次这个问题,褒2 0 0 2 年撵鞋l 的漫l 试定义审指出,查找缺 陷虽然秘怒软俘溺试静弱标,毽不楚主要西标,黼瓣,定义中不仅包含了度慧软 件质量的目标,也提出了要提高被测软件质量的爨求。这就是著名的预防性测试 观点的体现,也是结构化测试的核心所在。 在软傍涎试领域中,缍簿纯测试楚一耱臻麓强大瓣测试莲骥。繇谣结穆诧涮 试就是:先进行需求的检查,接着是测试用例的设讨和记录,戢聪执行测试踊例。 其格言是“p l a ny o u rw o r k ,w o r ky o u rp a n ”。 2 。1 软箨结构纯溺试戆特点 下图展示了结构化测试过程其观念的具体体现,即软件结构化测试的特点 电子辩技大学硬士学位论文:软件结构他测试及其应用实践 困圈 图2 - l 软件结构化测试的特点 1 结构化 软件测试是复杂的。因为软件测试工作和软件开发中的其他方面的一样,都 是系绞装豹工释,露这整工雩# 丈部分是与 | 垒天王 乍紧密稳关灏,嚣鼗蛰溪镬成为 极其复杂的工作,为了能管理好邀魑庞杂的工作,软件测试的流程必须结构化且 被清楚地定义。 掰谡绩构仡,怒撰耀互关联瓣王终要存一个楼檠结橡,莠要有一定懿缀织原 刚来支持它。这个道理看起来简荦,但令人惊讶的是许多软彳串开发组织并不能真 正做到。在某些软件开发组织中,软件测试流稷仍然是非结构化的,大部分工作 也未清楚地加以定义,而是想n 男i u i , 做到那儿,想起了才傲,恕不起就算。没有 一令荚弼愆挺絮,软锌滚试过程便绥难霉虱改遴。 结构化测试以缺陷预防为原则,在测试过程中揉和了计划( 确定风险和选择 策略) 、分析( 设置测试目标和要求) 、设计( 搬定开发的测试) 、实施( 构造或 获取测试步骤和测试翅铡) 、撬行( 测试运毒亍与露运行) 、以及缝妒( 保存并更赣 测试) 落活动,与软件开发过程阍步进行。这个过程指定了测试任务以及任务的 执行顺序和执行时问,使得测试活动有章可循。 2 。羧浆鳇 众所周知,软件中的任何问题发现得越晚修复代价就越街。软件结构化钡4 试 强调:通过早期的测试设计活动,森找需求和设计中的缺陷。这一点与预防性测 试的核心双点摇吻合:翔栗攫l 试发生在生鑫周裁旱期,郡么它藏能寞正改遴鼗溅 软 牛的质量。预防毪测试要求在编码戬前铷建测试用例来验证需求。因藏,在编 码前进行测试的计划、分析与设计,以尽早发王兕需求和设计中的缺陷,预防这些 缺陷遗鼹到代码中,蹙软件结构化测试过程的个重要特征所在。 电子科技大学硕士学位论文:软件结构化测试及其应用实践 3 风险分析 测试中一个事实就是:测试不可能做到全面测试。因此测试内容远远比测试 数量重要。另一方面,项目不可能完全按原计划进行,需求变更、测试人员流动、 代码延迟交付等都会造成计划背离。因此,结合软件风险分析来确定测试内容、 测试优先级以及测试程度。结合计划风险分析确定最好的应对措施,以防计划风 险问题的发生。 4 测试度量 有效的度量活动用于评估测试的效率,结构化测试结合测试度量来检查测试 集的充分性,测量测试效率,进而提高测试投资的回报。 5 测试过程改进 任何事情都是在不断学习中获得进步,测试过程也是如此。在测试过程后期 进行软件和测试过程的评估,改进当前测试过程,以提高下次测试的效率。 从有软件结构化测试特点的讨论中,我们了解其核心所在,正是这五个核心 支撑起软件结构化测试过程的体系结构。 2 2 软件结构化测试的体系结构 软件结构化测试过程的一个总体框架可用下图来描述。从测试级别到测试阶 段到测试活动再到测试任务的这样个自上而下的分解过程,展示了一个项目中 所有测试工作之间的关联性和组织原则。 测试级别 测试阶段 测试活动 钡4 试任务 任 务 ; ; 任 务 i ; 蒌 ; 图2 - 2 结构化测试的体系结构 软件结构化测试过程不依赖于任何特定的工具,也不限定于特定的测试组织 电子辩技大学硕士学饿论文:软件结构让测试及其应用实践 模式。假它假定产品的需求信息以及技术设计信息都是易于了解的并且可作为测 试的输入。即使遇到需求和设计不明的情况,软件结构化测试过程的大部分仍然 实用,实际上它还鸯鼬于软件霰戡与设计的分掇和说明。 2 2 1 软件结构化测试过程的结构 软 牛结构化测试过程将测试避程分为三个主要阶段:计划策略( 选择策略并 指定缀瓣秘方法) 、获彀溺俘( 摇定详绥翡瓣试蠢标、设诗霸实施溯试集) 、行为 度量( 执行测试并评估软件和过程) 。这些阶段可进一步划分为7 个主要的活动, 如表所示: 蒙一步诗刘爨培 ip 1确立总的测试计划 l p 2开发详细的测试计划 表2 2 缝穆缳测试静第一步 i 第二步获取测件 a 1测试分析与设计 l a 2 实旋计划与设计 表2 3 结构讫测试静第二步 第三步行为度量 m 1执行测试 m 2裣套测试集的充分瞧 m 3评估软件和测试过程 表2 4 结构化测试的第三步 辩每一令测试缀聚( 攀元、祭或、系统溺试等等) 蘩可疲矮软 孚结稳纯羲l 试 过程方法。 2 。2 2 测试活动的时段划分 软件结构化测试指定测试活动和任务的执行时间、任务的内容以及任务的执 行顺序。如下图所示; 电子科技大学硕士学位论文:软件结构化测试及其应用实践 项目计划 需求分析 概要设计 详细设计 需求评审 设计评审 设计评审 总体测试计划 系统测试计 划与获取 系统测试执 行与度量 集成测试计 划与获取 集成测试执 行与度量 单元测试计 划与获取 单元测试执 行与度量 编码几代码评审 图2 - 3 测试活动的时段划分 时段划分的重点在于大多数的测试设计工作在软件详细设计之前完成。每一 测试级别的目标是尽快完成大多数的测试设计工作。这样可确保需求“可测”而 且是经过深思熟虑的。 2 2 3 软件结构化测试过程的工作产品 测试过程的每一阶段和活动都会产生相应的工作产品,它用“测件”来指代 主要的测试产品,如测试计划、测试规范文档、测试进程、测试用例、测试数据 文件等等。它们之所以称为“测件”是有意与软件类似,来反映这是一个并行的 开发过程,设计、指定、构造软件的同时设计、指定、构造测件。 这两类工作产品互相支持。测件的开发依赖于软件工作产品,能预防和探测 软件中的缺陷;软件开发中评估测件工作产品,来预防和探测测件的缺陷。 软件结构化测试过程保证了整个测试过程的完全文档化,使得整个过程可控 和可见。 2 2 4 软件结构化测试过程中角色 软件结构化测试过程定义了不同测试活动的角色和职责。这些角色与软件开 发中的相应角色类似。如表所示: 电予科技大学硕士学位论文:软件结构化测试及其应用实践 角色职责描述 管理人员交流、计划和调节 努辑人曼 诗翅、开发潮试莛标溃单、设计、评售 技术人员实施、执行、援对结果 评估人员检查、评估 表2 5 软传结擒诧测试过程中薛角色 遮样的划分并不要求角色宙不同的人员采负责,可能一人分饰多角,视具体 的项目规模而定。 2 3 软馋结稳讫溅试_ 过程静步骤 如前所述,软件结构化测试过程不依赖于任何特定的工恩,也不限定于特定 的测试缀织模式,隧此,它的实溅是一个相对独立的过程。下嚣给出这个过程的 一个全谣讲解,不表示这是一个必须遵守静过耩规璺| j ,可铱攒实际情况潮减步骤。 第一步:总体测试计划 溅试诗麓是遂行蠢效测试瓣关键步骤之一,箕蟊熬是攒述溺试涯动瓣范萤、 方法、资源、和进度。第一个成该考虑的是总体测试计划。它负责组织所有级 别的测试。测试经理应该把总体测试计划看作怒主要的交流渠道之一。 在测试诗划逮糕审,文搂霾然霪要,但是这个遘程穗对寒说更重要。诲多壤 目在遂凄落后的时候,会略去部分文档,包括溯试计划,这样会造成许多测试问 题被发现的时候已经没有时间去处理。但是,如果在项目早期的时候开发测试计 划,就自提前发现这魑问题。同融,也能促进所蠢项匿成员对澳4 试的重视。所以, 帮傻簸嚣不一定完全遗遵照测试计踅l 文疆进蟹,瞧只要经过了这卜过程,对顼霹 都是受益匪浅的。 在测试计划中,驻点在于两方面: l ,掇摆照险分援寒确定溅试麓镶重。 2 策略开发。它描述了如何窕成测试,以及那些会辩测试和项目成功造成 霾要影响的问题。涉及到方法确定、资源、测试覆靛率的抉择、黼置管 理、度量值的收集和验试、测试工具和岛动化、测试计划变更、会议与 交流等方西。 一般说来,总体测试计划最好与需求规格说明书和项嗣计划的开发同步进 行。 电子辩控大学硕士学位论文:软件结构他 羁8 试及其应用实践 第二步:详细测试计划 一般的项目信息用予开发总体测试计划,而较详细的项匿信息则用于开发详 缓测试诗翻。其开发逡程与慧锌涌试诗裁类酝,只不过受舂锋对瞧。是否嚣爱潮 定详细测试计划以及计划到何种粒殿,视项目规模而定。 测试的一个级别怒由一个特定的环境定义的,这个环境楚人、软硬件、接 臼、数据、甚至测试人援褒点数集台。创建菜令级鄹静测试计划熏要了矮与鄹个 级别难稠关的事项,风险问题、资源限制、入爨与培训需求、进度、测试策略 等因素都是需要考虑的问题。 下图腥示了项目计划、总体测试计划、详缎测试计划三者之间的关系: 第三步:分析与设计 图2 4 璜秘器计划之阉懿关系 测试分专厅与设诗怒定义、组织测试霹振,以保 委褰效撬行漫l 试鑫冬过程一鼹 用黑盒、秘盒、或荻盛技术来设计测试用铡,并生成测试进程盼过程。其中测试 用例指定测试内容,并提供对覆盖率的度量;测试谶程指定测试用例的执行方法, 并能从中了解钡i 试用例的执行效率。 在这个泠段生残戆文毯毒嚣凌浚计文鹳、测试矮镶蔑范、溺试逶疆艇蓖。下 图表明,一个测试进稷可执行来自一个或多个测试设计规范的测试用例。 电子搴 技大学磋学位论文:软锌结掏纯测试爰其嶷用实践 t c 稠试目标1 测试目标2 溅试裔标3 誊l 斌磊标r l 第朗步:测试实施 图2 - 5 测试分析与设计 这是一个获鞭测试数据、开发测试步骤、准备测试环境叹及选择私实施测试 工其的过瑕。主嚣注意两方蕊的问题: 1 测试环境 测试终壤是滋明菜测试级裂懿矮鼓集合。它主要爨摇人爨、瑾箨配置、漭 作软件、接口、测试数据源、测试数据量等因素。在搭建测试环境时,耍仔细考 虑这些环境霞素,任何一点巯惫都会彩确餮测试结果静嘏确往。 2 自动化 自动化是测试工其集成到测试环境,使测试执行、曰志、结果眈较很少被人 干预。下豳展示可考虑鑫动化的情况: 电子科技大学硕士学位论文:软件结构化测试及其应用实践 第五步:执行测试 图2 - 6 测试自动化的考虑因素 这是执行所有的或选择的部分测试用例,并观察测试结果的过程。这个过程 发生在软件开发生命周期的后期。 在开始执行测试之前,要注意几个方面: 1 决定由谁进行测试。开发人员? 测试人员? 还是最终用户? 2 决定首先执行什么测试。测试的焦点应集中在软件风险分析中认定为高 风险的特征上。 3 执行测试用例过程中记录新的测试用例。 4 记录每个测试用例的结果。 另一个需要考虑的问题是:何时停止测试? 在做这个决定时,应基于多个度 量,如: 1 缺陷发现率。当缺陷发现率低于指定水平时,可认为产品准备交付。 2 剩余缺陷评估标准。基于对预期缺陷数量的估计而做出决定。它把缺陷 发现趋势和其他类似的项目的趋势做比较。 3 资源用尽。时间或预算用尽是停止测试的另一个原因。 第六步:测试度量 在测试执行后,要对测试效率做出测量,而使用较普遍的度量方法不外乎三 类: 电子辩技大学礤士学拉论文:软搏缩掏纯最试厦其褒爱实践 l 。鲻户滚慧疫 用户满意度一般是通过用户寻求支持的电话数和调蠢报告收集。假这两种方 式都不能织软件震量帮涌试的效率区掰开来,两且这种发量是在产品销售、安装、 使用之后才使用的。因此这种度量本身不解决如能度量测试效率的阅题。 2 缺陷 另一$ 孛酱遗馊援懿发量楚基于瓣缺陷魄分辑: 测试中发现的缺陷数量 裂焉缺陷鼗覆佟兔溺试效率戆菠量存在帮雳产满意发类餐斡簿瑟,姣陷数量 不怒集中于测试,而是疆被测产品的= 最初质量影响。然而,使用已知覆盖率的测 试翔饲集阻及记寐使用不同方法的碳期b u g 数量,将缺陷发现趟势与以前的测试 相比较,然后根据系统变化程度和溅毅功姥的质摄、复杂度将比较馕规格化, 就可对测试效率做出很好的判断。也可用以前项目的度羹,对软件开发生命阁期 各个除段发理瞧b u g 数避毒亍琰诗,然嚣耪实际焦魄较来测定测试效率。 0 产品缺陷 舅一个常觅静度量是产菇中( 客户发魏) 豹缺陷数,这些客户发现麴缺鹅很 明照不是由测试人员发现的,因此一魑潜在的或掩盖的问题就会出现,而且这些 都怒产品交付后缎生的,也受到软件质量的影响。 缺陷排除率 缺陷排除率怒一个有效的测试效率度量,它用到了前面的两个度量,它告诉 我嬲:簌应该发瑷戆b u g 中我察发瑗了多少b u g 。 缺陷发现时间 我稍酃已经意识蓟发现b u g 越浚,它的恁害就越大,修补费粥就越高。弱诧, 测试越有效就越自& 尽早发现b u g 。 缺陷危餐度 它是利用缺憝发璎时淹和缺陷分蛮来测量蛱隈接除瓣窍效蛙。其定义为;开 发过程中,人们豳失败_ 而付出的代价。或者定义为:修补发布后出现的问题的代 侩。 缺陷密度 缺陷密度的公式为: 缺陷密度= 缺蹈数代码行数藏功能点数 然而,缺陷密度度徽并不是很正确,难点在于削断什么是缺陷以及什么魁一 令找璐行,瑟虽溅量模块约大小瞧是个翊题,因为代码李亍数因荛壤程入昃兹按毵 水平和使用的语言不同而变化。 3 。覆麓率 电子科技大学硕士学位论文:软件结构化测试及其应用实践 缺陷度量能够也应该能用于测量测试效率,但就其本身来说,它们不充分, 需要由覆盖率度量来补充。覆盖率是最有用的测试效率度量,且不受软件质量的 影响。 需求与设计覆盖 需求覆盖有可能测试了每个需求然而仍未测试到每个重要的条件,在进行需 求测试的过程中,也许存在一些不可能发现的设计上的问题,这就是也要同时进 行设计覆盖测量的重要原因。 代码覆盖 代码覆盖工具告诉开发人员和测试人员,测试用例中已经测试或未测试的语 句、路径或分支。但是,即使执行了所有的代码并不保证代码做了它应该做的事 情,即代码能够运行,但不满足需求的功能。 即使使用代码覆盖工具,在设计代码本身的测试用例之前,应该设计覆盖程 序说明中所有属性的单元测试用例。 通常,代码覆盖在低级测试中比较有用,因为这些级别的测试通常由开发人 员完成,对未测试代码的分析最好由他们进行。因此,代码覆盖主要集中低层测 试中进行,并提供一种方式决定是否以及如何完成这些测试。 上面列举的这些度量中,覆盖率度量是必须要用到的,而且还要结合至少一 种其他测试效率度量,才能真正对测试做出测量,得到可信、真实的数据。 第七步:测试过程改进 在过程改进中面临的问题就是如何确认需要改进的区域以及如何成功实施 这些改进。下面展示了进行过程改进的典型步骤: 1 划定当前活动的基线; 2 定义最终期望状态和主要目标; 3 定义从第一步发展到第二步的需求: 4 建立一个过程改进项目: 5 开发一个计划,列举出实施过程改进所需的步骤; 6 以渐进的方式引入变化; 7 评估改进结果; 8 若有必要,重复1 到7 步。 m a r t i np o l 和t i mk o o m e n 开发了一种测试过程改进( t p i ) 模型,能够使 模型使用者判断测试过程的当前状态、过程改进的下一逻辑区域、以及到达这一 区域的步骤。 电子科技大学硕士学位论文:软件结构化测试及其应用实践 图2 7 测试过程改进模型 在这个模型中,测试过程的关键区域共有2 0 个,对每一个关键区域的检查 导致测试过程划分为成熟度级别,每一个关键区域都存在1 到4 个成熟度级别, 这些级别分别用a ,b ,c ,d 来标明,从a 到c 表示成熟度增加。检查点是用来判定 成熟度级别的问题。为了保证客观性,每一个级别设置多个检查点。尽管t p i 模型通过检查点来指示过程改进的一下合理步骤,但是它仍然包括了许多附加的 改进建议来改进过程。 软件结构化测试的过程是与软件开发过程并发进行的,它开始于项目开发的 早期,通过尽早发现需求和设计中的缺陷来预防缺陷遗留到代码中,从而节省测 试时间和成本,并能有效的提高软件的质量。 软件结构化测试强调整个测试过程的文档化,从测试设计到测试评估详细的 对测试过程进行了定义,不但使得任何人都可以以相同的方式执行测试,而且实 现了从需求、设计、代码到测试用例的可追踪性。同时,测试的创建不依赖于任 何个人的特殊技能,而是基于对测试设计原理的深刻理解。 电子科投大学硕士学位论文:软件结构化翘4 试及其应用实践 第三章项强风险分折 项目的风险分析工作是制定项目计划工作的一部分。风险傺理由风险分析、 风险避免、风险控制缎成,整本章主要集中于对风险的分橱。尽管这本文中风险 分静亍技术主要用于软释测试方面,餐风险分析在联强开发致萁豫方面也是一疆缀 有用的技术。如果其他组织,如开发人员和用户,融经进行过风险分析,那么可 以使用它们的结果,馊其有助于测试的计划和优先级划分。 在魏筏镌薅王耍嚣瓣菇险分辑分为嚣令砉分( 黧强3 - 1 襞示) :毂斧系统瓣风 险( 包括业务需求和授术两个方面) 、计划的风险及其应对措施。这样的划分有 助于清楚的把由系统的业务和技术失败带来的风险与测试计划的实施相关的风 险区别开求。出于本文豹繇论述的主惩雏霞要,佟髫仅对软件系统的风险送行了 阐述。 风险分析类型 关键活动 结果 3 1l m i s 项目简介 图3 - 1 风险分析的体系蟪梅 贵阳势动力综合警瑗信息系统( l m i s ) 采熙蘩予j 2 e e 技术的b s s 三层结 稳模式,叛集中式资滋数据库为基旗,支持全市各级就盈强务缀办梳撩( 龟攒专 网延伸到的街道、社区) 开展相应的正作管理、业务经办和信虑服务。所涵麓的 业务领域主要有:基本信息管理、失业管理、就业管理、再就业优惠管理、势动 力市场照务管理、职渡璐谖等。 16 _ 电子科技大学硕士学位论文:软件结构化测试及其应用实践 系统结构示意图如下: 3 2l m i s 项目风险分析 图3 - 2l m i s 的系统结构 在风险驱动的软件结构化测试过程方法中,项目风险分析是实现软件测试工 作以风险驱动的必要手段。因此在l m i s 项目的测试过程中,对项目风险进行仔 细地分析是一个非常重要的活动。这些活动是将风险陈述转变为按优先顺序排列 的风险列表,整个活动不是一蹴而就的,它是一个迭代进行的过程。 3 2 1 风险分析小组 项目的风险分析在软件的生命周期中应该尽早进行。在了解项目的总体需求 之后就应该尽快地进行最初的风险分析。虽然不一定要在每一个阶段都重新做项 目风险分析,但是应及时根据项目的实施情况进行必要的调整。 为了有效地进行项目风险分析,由用户、开发人员、测试人员、业务分析人 员、以及市场人员组成了风险分析小组,综合各方面对项目的认识,从多个角度 对l m i s 项目可能的风险进行了讨论。 需要特别说明的是,在进行项目的风险分析的时候,找到合适的人在合适的 时间说出合适的看法是非常重要的。 风险分析小组采用的分析过程及其活动组成如图3 - 3 所示,这一过程简单明 了、易于操作,作者在此不再做进一步的阐述。 电子科技大学硕士学位论文:软件结构化测试及其应用实践 3 2 2 项目特性列表 包括最蜂用户员、开发人员、测试 员、市场人员等 确定秉统的功能和非功能特性列表 评估每个特性的失散嘏率和影响程度 根据每个特性的失效慨率及影响程度确定萁优先级别 确定删减线来划分需要测试的特性和不需要测试的特性 图3 - 3 风险分析流程 风险分析小组需要收集一切可用的文档( 如,需求规范、项目计划等) ,编 辑一个有关整个系统特性、非功能特性以及业务功能的列表,以备后续阶段对这 些特性进行讨论。 l m i s 项目的部分特性列表如下表所示: 功能特性基本信息管理 劳动力资源管理 劳动力市场管理 失业保险管理 系统管理 再就业优惠管理 非功能特性性能 可维护性 实用性 表3 一i 项目特性列表 电子科技大学硕士学馒论文:软件结构化测试及其应用裳践 3 2 3 风险评估 校搌上步褥出舱特征残表,黉要确定每一令特性失效懿穰率,疆及它失效 会对用户造成什么程凄的影响。农充分考虑项醋风险分析掰占用投入及蒸有效 性之间的关系的情况下,l m i s 项目组采用了种比较简便易行的方法来定性 的分柝风险发生的可能性及其影响程度。这一方法将风险发生的可能性及筵影 嫡翟菠分为三令级剩:3 ( 嘉) 、2 ( 中) 、1 ( 低) 。在充分 曹论每令特经酌失效 概率和影响程度之后,对每个特。l 生赋予相应的慎,即可较为宵效的完成对风险 的分析和评工作。 对应子表3 一l 中濂i s 矮基懿每顼耱毽懿镶为; 特性 失效概率影响程度 功基本信息管理 33 髓 劳动力资源譬理 22 特 劳动力市场管瑷 2l 性 系统管理33 失业保险管理 l1 褥藏韭往惠警耀i2 非功性能 22 l 特 霹维护往 ll 性 实用性l1 表3 2l m l s 项基特性黪熙险分辑 需瑟注意的是,对于失效概率的取值大小肖多个衡量翻索,如复杂性、可 用性、新增特性、修改特性、使用新技术开发特性、以及一贱由于环境限制而 难以测试的特性,等等。这些因素躲存在可能会导致在风险分褥最初阶段分析 小缀戆藏员霹失效耩率豹数值不裁达残一致,送群势必影确爨风险分褥工作的 进度,因此,应该程最初阶段给每个特性的失散概率赋予一个初始值,使蕻失 效概率在一个小范围内,以后在时间允许的情况下,再对这烘值进行回顾朔调 整。 3 2 4 确定风险优先级 这一步裁需要辩确定豹最陵潮分萁霞先缀,稷据已经褥戮豹失效橇拳鞠失 电子科技大学硕士学位论文:软件结构化测试及赫应用实践 效澎晌程度对藏躲蓬,菇险分辑j 、缝采臻公式: 风险优先级= 失效概率十失效影响程度 来计算风险优先级,并根据优先级来确定哪些特性不需鞭测试、或者仅仅需要进 行较少的壤4 试。藏殓分霉亍,l 、缝认为,优先级,j 、予4 款黪瞧不霉要进彳j :测试戢投熏 较少的钡l 试,所以分析小缀溺根删减线来隔离这些特性,如下表掰示: i 功能特性非功能特性失效概帮影响程度风险优先缎 i 基本售患管瑷 336嚣 要 系统管理 336涮 试 劳动力资源管理 224 易用性 l4 # _ _ _ l _ 自m 目e k 糊_ g 目目“* m # 女a b ,自t ,t e t 蝴 势动力枣赣鬻麓 3 不 。? 带。 一 需 再就业褫囊猎激 l 墓 o 3或 较 。i 。 撼能 i 参 i 3少 妥篮囊i 隰誊 一 一 测 叠、j 二 熏i ,叠 譬i试 p 爹! ji ,囊 ,20 一_ ,。誊辫”誊j、+ 葡德护摊。j| l _ 。一。 表3 3 确定l m i s 项目的风险级别 3 3 对项嚣滚试_ i 馋豹锪步考虑 项目风险分析的结果将对项目工作的开展的所产嫩非常大的影响,为此我们 需要充分考虑其对项目的软 孛测试工作所带来的影响。 项西风陵酶分析静最终络果基本汰建了项番瑟采联懿测试策曝。经过对 l m i s 项目的风险的仔细分析以后,我们熬本上确定了l m i s 项目所需骚的测试级 别:类测试,交互测试、以及系统的功能测试。 在确定臻瓣繇霉要熬测试缓爱之嚣,缝合较终缭稳纯溺试过稷方法薄系麴 成,可以得出l m i s 项目的测试结构如图3 4 所示。它懿指导l m i s 项目测试工作 开展的重要依据,充分体现了l m i s 项目测试工作以解决项目风险为中心的特点。 电子鞋技走学磋士学整论文:较韩结构铑测试及其艘角宴戥 项目启动 l 测试警理、醚霉管理等l 网3 - 4l m i s 项目的测试结构 测试中一个疆实就是:测试不可能做到全面测试。因此测试内容远远比测试 数羹重要。在确定了铡试需求之后,我们还需要考虑确定测试对象的优先级和测 试实现的向后顺膨,以帮助我们在工l 乍时把注意力集中至i 最关键、最考意义和优 先级最高的酒4 试对象上。 在甄除驱动魏软馋缝梅诧溅试过程中,鼹险分援裁是帮助我蜘找到这些羧l 试 对象的实用方法。我们需要根据软件风险分析的结果来确定测试的内容、测试的 优先缀、茨及寮l 试熬程发。在测试诗铺中,整个矮蟊鹃测试策略都莛嗣绕使翔风 险采划分测试投入程度这个概念而展开的。 毫子辩技大学矮士学垃论文:软薛结构讫涮试及其疫焉蜜蕺 第四章开发项目测试计划 项目启动项目计划 毒 需求舰范总体设计详细设计实旌 型至矍翌:里塑竺三二二“:二 匿4 - 1l m i s 项基麴测试结槐 测试计划标志潜测试过程的正式开始,开发测试计划的过程是一个最终产生 文挡鹃遂程,该文档使较转溪l 试过程的掰有参与者帮能够主动遣确定测试中翡重 耍问题以及明确这毖问题的解决方案。所谓“主动地”是指:在问题发生之前, 有预觅性地分析莱黧问题发生的可能性以及对措施,而不楚等到问题发生对才 波动地进程发应。测试计划文档啊能是熬个测试过程中产生的第个工俘产品, 这个可能性怒指:疑否开发测试计划,舞根据项目规橇来决定。 敷该在矮嚣癌动起翅期裁牙始准备测试诗翅工箨。当然,不可熊一玖虢完戏 测试计划,最好是通过迭代的方式来完成它在项蹰的不同阶段获得新的信息 霜裁添鸯瑶羲调整一黧内容。 4 。1l m i s 瑗霹攫l 试诗搿酶重点 鞠确了颈西风除对顼秘测试的影响之看,虢可戳麓手进行项目测试计麓的开 发,在开发过程中要重点把握几个方面: 1 测试级别 测试的一个级别是由一个特定的环境定义的,这个环境是人、软硬件、接 霜、数撰、墓至测试久贯淡点竣集合。觳戴,不曩瓣测试除段对予测试内褰囊方 法的考虑是不同的,在计划阶段要确定测试的级别。般来说,测试级别可分为 蕻壅豹4 类;单元溺试、集成溺试、系统溃试、接收溅试。 可钟对每一级别开发个测试计划,或者怒有选撵性的邂行计

温馨提示

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

评论

0/150

提交评论