已阅读5页,还剩55页未读, 继续免费阅读
(计算机应用技术专业论文)软件测试及其在unicall系统测试中的应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中文摘要 摘要:随着信息技术的不断发展,软件产品开始应用到各个领域,软件产品的质 量自然成为人们关注的焦点。软件测试是软件开发过程中的一个重要阶段,是保证 软件质量最重要的手段,因此越来越受到软件企业和用户的重视。 本文在参阅大量有关软件测试的资料文献的基础上,结合 u n i c a l l 系统的测试, 对软件测试从理论到实践进行了研究和探索。针对于u n i e a l l 系统的庞大性和复杂 性,运用一定的测试手段,对u n i c a l l 系统进行了全面系统的测试。 本文首先介绍了软件测试的一些基本概念和发展现状,包括软件测试的概念、 测试的重要性以及目前软件测试行业发展现状。其次,系统阐述了软件测试技术 的相关理论和方法,包括软件测试的原则和目标,系统测试的主要内容,以及软 件测试的主要方法如静态测试,动态测试,黑盒测试,白盒测试等。重点阐述了 软件测试的理论和方法在u n i c a l l 系统测试实践中的应用,详细介绍了测试瑚i c a l l 系 统的整个过程。针对t m i c a l l 系统的测试过程,提出了一套切实可行的测试方案,其 中包括需求与设计分析,创建测试计划,设计测试用例,测试的具体实施,测试 结果分析及总结。 本文从理论和实践相结合的角度,提出了适合于u n i c a l l 系统的软件测试的方 法、测试的标准和规范、测试的管理、测试的工具、测试的技术和手段等问题。 在实际工作中得到了较好的应用。 关键词;软件测试;系统测试;测试用例;呼叫中心 分类号:t p 3 i i 5 i e 虚交通太堂亟堂位i 金塞缱塑里丛夏 a b s t r a c t a b s i r a c i ! w i t ht h ed e v e l o p m e n to fi n f o r m a t i o nt e c h n o l o g y , s o f t w a r ep r o d u c t sa r ea p p l i e dt o v a r i o u sf i e l d s n a t u r a u y , t h eq 1 1 a l i 哆o f p r o d u c t sa r ef o c u s e db yp e o p l e s o f t w a r et e s t i n gi s a l li m p r o t a n ts t a g ei nt h ep r o c e s so fs o f t w a r ed e v e l o p m e n t a n di ti sa l s oa ni m p o r f z a t m e a n so fq u a l i t ya s s u l - d n c e os os o f t w a r ee n t e r p r i s e sp a ym o r ea n dm o r ea t t e n t i o nt o s o f t w a r et e s t i n g o nt h eb a s i so f a l a r g en u m b e ro f l i t e r a t u r ea n dm a t e r i a l sa b o u t s o f t w a r et e s t i n g , t h i s p a p e re x p l o r e st h et h e o r ya n dp r a c t i c eo f s o l , r a r et e s t i n ga l l s i d e dc o m b i n i n gw i t l lt h e s 0 1 r a r et e s t i n gp r a c t i c ei nt h et m i c a l ls y s t e m a n dl l s e sc e r t a i nt e s tm e a n s , c a n j e so n o v e r a l la n ds y s t e m a t i ct e s tt ou n i c a l ls y s t e md i r e c ta g a i n s tt h e h u g e n e s sa n d c o m p l e x i t y o f t h es y s t e m t h i sp a p e ri n 缸础l c e st b ec o n c e p ta n dd e v e l o p i n gs t a t u so fs o f t w a r et e s t i n g , i n c l u d i n gt h ec o n c e p to f s o f t w a r et e s t i n g , t h ei m p o r t a n c eo ft e s t , a n dd e v e l o p i n gs t a t u s o f t e s t i n gi n d u s t r ya tf i r s t a n dt h e n , d e s c n b c sr e l e a t c dt h e o r i e sa n d m e i d a o d so f s o f h v a r e t e s t i n g , i n c l u d i n gt h ep r i n c i p l ea n do b j e c t i v eo fs o f t w a r et e s t i n g , t h ec o n t e n to fs y s t e m t e s t i n g , i ta l s oi n t r o d u c 船t h es o f t w a r et e s t i n gm e t h o d s , s u c ha ss t a t i ct e s m g , d y n a m i c t e s t i n g , b l a c k - b o xt e s t i n g , w h i t e - b o xt e s t i n ga n ds oo n f i n a l l y , i td e s c r i b e st h ep r o c e s s o f t e s t i n gt h eu n i c a l ls y s t e mi nd e t a i l e x p o u n d st h ea p p l i c a t i o no f t e s t i n g1 h o o r i e si nt h e u n i c a l ls y s t e mt e s t i n gp r 蕊s c f o rt h et e s t i n gp r o c e s so f u n i c a l ls y s t e m , as e to f f e a s i b l e t e s ts t r a t e g i e sa n ds c h e m e sa r ep r o p o s e d , i n c l u d i n gr e q u i r e m e n t sa n dd e s i g na n a l y s i s , t h e c r e a t i o no ft e s tp t a n s , t h ed e s i g no ft e s tc a s e , t l l es p e c i f i ci i i l p l 锄e n 6 0 no ft e s t i n g , a n a l y s i so f t e s tr e s u l t sa n d i t ss u m m a r i z e i nt h i s p a p e r , t e s t i n gm e t h o d s ,s t a n d a r d s a n dn o r m s ,t e s t m a n a g e m e n t , t e s t t o o l s ,t e 6 h l o g i 鹤a n dm c r t l qs u i t a b l ef o ru n i c a l ls y s t e ma r em e t i o n e df r o mt h e p e r s p e c t i v eo f c o m b i n i n gt h et h e o r ya n dp r a c 垃s e ,a n dt h e y h a v eg o tg o o da p p l i c a t i o ni n p r a t i c a lw o r k k e y w o r d s :s o l , r a r et e s t i n g ;s y s t e mt a s t i n g ;t e s tc a s e ;c a l lc e n t e r ;, c l a s s n 0 :t p 3 1 1 5 学位论文版权使用授权书 本学位论文作者完全了解北京交通大学有关保留、使用学位论文的规定。特 授权北京交通大学可以将学位论文的全部或部分内容编入有关数据库进行检索, 并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校向国 家有关部门或机构送交论文的复印件和磁盘。 ( 公开的学位论文在解密后适用本授权说明) 学位论文作者签名: 秀丽 签钠期:谛i 明( 1 日 导师签名: 谚& 毒 签字日期么哆年,z 月厂夕日 韭塞交通太堂亟堂焦j 金塞独创性直嘎 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的研 究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表或 撰写过的研究成果,也不包含为获得北京交通大学或其他教育机构的学位或证书 而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作 了明确的说明并表示了谢意。 学位论文作者签名:系丽 签字日期: 讲f 乙月i 口日 致谢 本论文的工作是在我的导师韩臻教授的悉心指导下完成的,韩臻教授严谨的 治学态度和科学的工作方法给了我极大的帮助和影响。在此衷心感谢三年来韩臻 老师对我的关心和指导。 韩臻教授悉心指导我完成了论文的写作,对于我的科研工作和论文都提出了 许多的宝贵意见。在学习上和生活上都给予了我很大的关心和帮助,在此向韩臻 教授表示衷心的谢意。 在实验室工作及撰写论文期间,邢庆波、郭芳等同学对我在论文中的研究工 作给予了热情帮助,在此向他们表达我的感激之情。 另外也感谢我的父母,他们的理解和支持使我能够在学校专心完成我的学业。 1 引言 1 1 课题背景 本课题研究的是软件测试及其在t m i c a l l 系统测试中的应用,基于本人在一家 以开发呼叫中心产品为主的软件公司的实践。u n i c a u 系统是一个呼叫中心应用软 件。呼叫中心又名c a l lc e n t e r 或客户联络中心,早期的呼叫中心应用就是今天的 热线电话、咨询电话,由受过训练的话务员专门接听处理来电客户的各类问题如 咨询、投诉、建议等。呼叫中心技术( c a l lc e n t e r ) 是通过电话系统连接到某个信 息数据库,并由计算机语音自动应答设备或人工座席将用户需要检索的信息直接 播放给用户,其传统的接入媒质是语音电话,随着技术的进步,接入媒体的形式 扩展到视频、屯子部件,传真,短信等形式,逐步发展成一种“信息中心”,使用 户能够容易地获取各种所需的信息。 呼叫中心把传统的柜台业务用电话自动查询的方式代替。能够每天二十四小 时不问断地随时为客户提供服务,客户不必跑到营业处,只要通过电话就能迅速 获得所需要的信息,解决问题方便、快捷,一个好的呼叫中心系统能增加用户对 企业服务的满意度,提高企业的形象,而且通过电话营销等活动,企业可以直接 获得利润。呼叫中心在国外起步较早,目前,美国多数中小型企业均有一个呼叫 中心系统,向用户提供免费的咨询业务,为用户提供良好、亲切的服务。欧洲曾 经有过这样一份统计,在所有的工作岗位中,每1 ( 3 0 个工作岗位就有3 个是与呼 叫中心有关的,由此可见其在西方发达国家的普及程度【i i 】, 在中国,发展呼珥中心更是促进中国进入信息时代的一种现实、经济的手段。 企业间在低层次的价格竞争之后,正逐步向“服务”竞争层次进行转换,而呼叫 中心能够与用户建立良好的连接渠道。为用户提供优质的服务,迎合了这种需求。 另一方面随着电信政策的逐步放开,也为企业降低呼叫中心的运营成本准备了条 件。 本课题的研究来源于电讯盈科公司关于u n i c a u 系统进行系统测试的一个实际 项目。主要针对产品的要实现的基本业务功能和性能进行测试。 韭奁銮通太堂亟堂位i 金塞 l 宣 1 2 课题意义 软件测试是软件开发过程的一个很重要的组成部分,伴随着整个软件产业从 萌芽到曰趋成熟的发展过程,软件测试也经历了从无到有、从无人问津到形成系 统理论并逐渐形成- - i 1 独立学科的历程。软件测试用来确认一个软件产品的质量 和性能是否符合开发之前所提出的要求。软件测试的目的,一方面是确认软件做 了所期望的事情( d o t h er i g h t t h i n g ) ,另一方面是确认软件以正确的方式来做了这个 事情( d 0i tr i g h t ) t l s 】。随着计算机软件在人们的生活中扮演越来越重要的角色,软件 的质量已成为软件业的头号问题,不论采用什么技术和方法,都不可能完全避免 软件中的错误和缺陷。采用新的语言、先进的开发方式、完善的开发过程,可以 减少错误的引入,但是不可能完全杜绝软件中的错误,这些软件产品中的错误都 需要通过测试来找出,软件中的错误密度也需要测试来进行估计。测试是所有工 程学科的基本组成单元,因此也是软件开发过程中的重要组成部分。每个软件产 品在投入使用之前都必须进行大量的、充分的测试,只有通过严格的测试,软件 产品的质量才值得信赖。 对u n i c a u 系统的测试,公司专门成立了测试小组,通过测试,发现问题,并 将错误反馈给开发人员,使软件错误得到及时纠正,以提高系统的质量。系统测 试是针对产品系统进行的测试,它是保证软件产品质量、提高产品可靠性的重要 手段。因此对u n i c a l l 进行系统测试能起到非常重要的质量保证作用,通过系统测 试可以知道系统是否满足预期设计的要求,是否满足客户的需求,是否能够可靠、 稳定地运行,为产品的真正商用做好一切必要的准备工作。 因此,本论文的研究具有一定的理论指导和现实应用意义。 1 3 软件测试的产生与发展 1 3 ,1软件测试的概念及发展过程 软件测试是伴随着软件的产生而产生的。早期的软件开发过程中,软件规模 都很小、复杂程度低,软件开发的过程混乱无序、相当随意,测试的含义比较狭 窄,开发人员将测试等同于调试,目的是纠正软件中已经知道的故障,常常由开 发人员自己完成这部分的工作。对测试的投入极少,测试介入也晚,常常是等到 形成代码,产品已经基本完成时才进行测试。程序员在寻找开发错误的过程中都 是根据自己的经验进行猜溅。由于酒4 试者问对又是开发者,所以由于心理因素使 得他们不愿意给自己开发的软件挑毛病,铡试一直没有受到应有的重视。 2 直到1 9 7 2 年软件测试领域的先驱b i l l h e t z e l 博士( 代表论著 t h ec o m p l c l cg u i d et os o f t w a r e t e s t i n g ) ) ) ,在美国的北卡罗来纳大学组织了历史 上第一次正式的关于软件测试的会议。这次会议标志着软件测试理论和技术开始 成为业界的研究对象。在此之后,各种软件测试理论有如雨后春笋般出现,各种 相关的学术会议不断举行。软件测试得到迅速发展,并相应出现了各种软件测试 方法,使软件测试技术得到了极大的提高。可以说这次会议是软件测试技术发展 的一个重要里程碑。在1 9 7 3 年,他首先给软件测试一个这样的定义:“就是建立 一种信心,认为程序能够按预期的设想运行。 e s t a b l i s hc o n f i d e n c et h a ta p r o g r a md o 鹤w h a ti ti ss u p p o s e dt o 甜“”后来在1 9 8 3 年 他又将定义修订为:“评价一个程序和系统的特性或能力,并确定它是否达到预期 的结果。软件测试就是以此为目的的任何行为。 a n ya c t i v i t i e sa i m o da te v a l u a t i n ga na t 血 i b u t e0 1 c a p a b i l i t yo f ap r o g r a mo rs y s t e m ”在 他的定义中的“设想”和“预期的结果”其实就是我们现在所说的用户需求或功 能设计。他还把软件的质量定义为“符合要求”。他的思想的核心观点是:测试方 法是试图验证软件是“工作的0 所谓。工作的”就是指软件的功能是按照预先的 设计执行的,以正向思维,针对软件系统的所有功能点,逐个验证其正确性。软 件测试业界把这种方法看作是软件测试的第一类方法。 这一方法受到很多业界权威的质疑和挑战。代表人物是g l c n f o r dj m y 睨 s ( 代 表论著( t h e a r to f s o f t w a r e t e s t i n g ) ) 翻。他认为测试不应该着眼于验证软件是工 作的,相反应该首先认定软件是有错误的,然后用逆向思维去发现尽可能多的错 误。他还从人的心理学的角度论证,如果将“验证软件是工作的”作为测试的目 的,非常不利于测试人员发现软件的错误。于是他于1 9 7 9 年提出了他对软件测试 的定义;。测试是为发现错误而执行程序或者系统的过程。 t h ep r u c e 韶o f e x e c u t i n gap r o g r a mo rs y s t e mw i t h 凸博i a t e a to f f i n d r i g 蝴描”这 个定义,也被业界所认可,经常被引用。除此之外,m y e r s 还给出了与测试相关 的三个重要观点,那就是: i 、测试是为了证明程序有错,而不是证明程序无错误。 2 、一个好的测试用例是在于它能发现至今未发现的错误。 3 、一个成功的测试是发现了至今未发现的错误的测试。 这就是软件测试的第二类方法,简单地说就是验证软件是“不工作的0 或者 说是有错误的。m y e r s 认为,一个成功的铡试必须是发现b u g 的测试,不然就没 有价值。这就如同一个病人( 假定此人的确有病) ,到医院做一项医疗检查,结果 各项指标都正常,那说明该项医疗检查对于诊断该病人的病情是没有价值的。是 失败的闸。m y e r s 提出的“测试的目的是证伪”这一概念,这种测试方法更加有利 3 韭瘟窑通塞堂亟堂位论塞i 蛊 于发现b u g ,使得钡4 试执行更加有效。为软件测试的发展指出了方向,软件测试的 理论、方法在此之后得到了长足的发展。第二类软件测试方法在业界也很流行, 受到很多学术界专家的支持。 然而,对g l e n f o r dm y e r s 先生“测试的目的是证伪”这一概念的理解也不能太 过于片面。在很多软件工程学、软件测试方面的书籍中都提到一个概念:“测试的 目的是寻找错误。并且是尽最大可能找出最多的错误”。这很容易让人们认为测试 人员就是“挑毛病”的,而由此带来诸多问题。r o n p a t t o n 在软件测试中定义, 软件测试人员的目标是找到软件缺陷,尽可能早一些,并确保其得以修复川。这样 的定义具有一定的片面性,带来的结果是: l ,若测试人员以发现缺陷为唯一目标,而很少去关注系统对需求的实现,测 试活动往往会存在一定的随意性和盲目性。 2 、若有些软件企业接受了这样的方法,以b u g 数量来做为考核测试人员业绩 的唯一指标,也不太科学。 总的来说,第一类测试可以简单抽象地描述为这样的过程;在设计规定的环 境下运行软件的功能,将其结果与用户需求或设计结果相比较,如果相符则测试 通过,如果不相符则视为b u g 。这一过程的终极目标是将软件的所有功能在所有设 计规定的环境全部运行,并通过。在软件行业中一般把第一类方法奉为主流和行 业标准。第一类测试方法以需求和设计为本,因此有利于界定测试工作的范畴, 更便于部署测试的侧重点,加强针对性。这一点对于大型软件的测试,尤其是在 有限的时间和人力资源情况下显得格外重要。而第二类测试方法与需求和设计没 有必然的关联,更强调测试人员发挥主观能动性,用逆向思维方式,不断思考开 发人员理解的误区、不良的习惯、程序代码的边界,无效数据的输入以及系统各 种的弱点,试图破坏系统、摧毁系统,目标就是发现系统中各种各样的问题。这 种方法在测试的执行过程中,往往能够更加有效的发现系统中存在的更多缺陷。 这两类测试方法是从不同的角度考虑问题,其目的都是为了保证软件的质量,保 证程序的正常运行,它们都有各自的优缺点,在实际测试过程中,通常是两类测 试方法结合起来使用,根据实际情况,选择合适的方法 二十世纪八十年代以后,软件和r r 行业进入了大发展,软件趋向大型化、高 复杂度,软件的质量越来越重要。人们将“质量”的概念融入其中,软件测试定 义发生了改变,测试不单纯是一个发现错误的过程,而且将测试作为软件质量保 证( s q a ) 的主要职能,包含软件质量评价的内容,软件开发人员和测试人员开 始坐在一起探讨软件工程和测试问题。软件测试已有了行业标准i e e e ,1 9 8 3 年 i e e e 提出的软件工程术语中给软件测试下的定义是;。使用人工或自动的手段来运 行或测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预 4 期结果与实际结果之间的差别0 这个定义明确指出;软件测试的目的是为了检验 软件系统是否满足需求。它再也不是一个一次性的,开发后期的活动,而是与整 个开发流程融合成一体。软件测试己成为一个专业,需要运用专门的方法和手段, 需要专门人才和专家来承担 1 3 2软件测试重要性 软件危机曾经是软件界甚至整个计算机界最热门的话题,为了解决这个危机, 软件从业人员、专家和学者做出了大量的努力。现在人们已经逐步认识到所谓的 软件危机实际上仅是一种状况,那就是软件中有错误,正是这些错误导致了软件开 发在成本,进度和质量上的失控。 正如其他产品在生产中会产生各种质量问题一样,软件也会不可避免地出现 各种错误,俗称为 b u g 。如果软件中的b u g 太多,就会影响用户的正常使用。因 为软件是由人来完成的,所有由人傲的工作都不会是完美无缺的。所以b u g 是不可 避免的。所以关键在于应该如何去避免错误的产生和消除已经产生的错误,使程序 中的错误密度达到尽可能低的程度。 一个软件产品从开始计划起,到废弃不用止,称为软件生存周则z 1 1 。即以需 求为触发点,提出软件开发计划的那一刻开始直到软件在实际应用中完全报废为 止可以认为是一个完整的软件生存周期,软件测试在软件生命周期中占据重要的 地位,软件生存周期包括计划、开发、运行三个时期,每一时期又可分为若干更 小的阶段计划时期的主要任务是分析用户要求,分析新系统的主要目标以及开 发该系统的可行性运行时期是软件生存周期的最后一个时期,软件人员在这一 时期的工作,主要是做好软件维护,这两个时期,前者只是前期的分析和准备, 后者软件产品质量应该己基奉稳定,所以决定软件产品质量的阶段主要在开发时 期,这个时势b 开发流程按照传统的瀑布模型来说,又分为需求分析、概要设计、 详细设计、编码、测试等不同阶段。其中,软件测试是对软件需求、设计、编码 等各个阶段的最终复审,是保证软件质量最重要、最关键的手段。它是软件开发 的一个重要部分。统计表明,在典型的软件开发项目中,软件测试工作量往往占软 件开发总工作量的4 0 以上。而在软件开发的总成本中用在测试上的开销要占3 0 到5 0 。如果把维护阶段也考虑在内,讨论整个软件生存时期时,测试的成本 比例也许会有所降低,但实际上维护工作相当于二次开发乃至多次开发,其中必 定还包含有许多测试工作。而且,人们认识到在开发初期发现并解决软件错误所 付出的代价远比在编码以后经过测试面发现错误若加以改正的代价小得多。系统 的问题越早发现,改正成本就越低,破坏性越小。所以,在系统发布前要尽量多 5 地把系统中的问题找出来,其手段就是有计划、有组织地进行充分的测试。 1 3 3软件测试的行业现状 传统的软件测试流程一般是先在软件开发过程中进行少量的单元测试,然后 在整个软件开发结束阶段,集中进行大量的测试,包括功能和性能的集成测试和 系统测试。近来,软件工程界趋向于一种新的观点,即认为软件生命周期每一阶 段中都应包含测试,从而检验本阶段的成果是否接近预期的目标,尽可能早的发 现错误并加以修正,如果不在早期阶段进行测试,错误的延时扩散常常会导致最 后成品测试的巨大困难。 2 0 0 6 年,国内知名盯培训机构北大青鸟a p t e c h 与人才服务机构智联招聘 发布了( 2 0 0 6 年度软件测试行业专项调查报告1 3 冠。报告指出,目前软件测试的 重要性已经得到了越来越多企业的关注。数据显示,有6 8 - 2 的受调查企业认为 软件测试非常重要,必须设立专门的测试部门,并将其置于与开发环节同等重要 的地位。另有3 i 8 的企业选择了比较重要。而认为软件测试只起到“一定作用” 或“可有可无”的比例为o 。 尽管几乎所有的企业都意识到软件测试的重要性,但从目前软件测试和开发 人员的比例来看,软件测试人员在公司所占比例仍然极不合理。据业内专家介绍, 软件测试与软件开发人员的合理比例应该达到l :l 甚至2 :1 ,即软件测试人员与开 发人员相当甚至超过开发人员。然而,事实证明,国内绝大部分企业的软件开发 人员与测试人员的比例为5 :l ,测试人员是远远不够的。在欧美国家,开发人员和 测试人员的比例一般是l :1 ,而且越是大型的软件企业,对软件测试工作越重视。 拿软件业巨擘微软公司来说,开发w i n 2 0 0 0 的编程和测试人员比为1 :1 7 ,动用了 几千名的测试人员。除此之外,每年微软还会花几十亿来进行外包测试和面向公 众的测试,可以说是为测试不遗余力。难怪b i l lc r a t e s 在一次会议中说,我们微软 是个软件测试公司了国外软件测试行业的迅速发展,正是国外大型软件公司能 越来越壮大,小型软件公司能不断蓬勃发展的重要原因。可见,我国软件业要健 康发展,就必须改变软件测试人才的现状,以保证软件产业水平的整体提高。 在软件开发过程中,测试应占有很重要的地位。但为什么在实际的软件开发 过程中测试的成本被压缩昵? 根据国内目前的现状,分析原因有以下几点: l 、对软件测试的认识和重视程度不够。在中国很多软件企业“重开发,轻测 试”,许多人认为,软件测试就是在程序员编程时的单元测试、集成测试和功能验 证测试,甚至有人认为进行过多的测试是自己对自己过不去,影响开发进度,浪 费人力、财力和物力。所以有的小的软件公司根本没有专门的测试队伍。 6 韭塞奎亟太兰甄堂位j 盆塞 i 宣 2 、软件管理者与用户的质量意识不够强,用户对于软件质量的认同标准不高, 普遽认为能够使用即可,出了些问题也可以接受。正是由于客户的这种心理,使 得软件开发企业敢于压缩测试成本。不傲或少做狈l 试就会降低开发成本。这意味 着开发商又可多赚取一大笔利润。 3 、软件企业对软件质量要求的认同存在差距,同时也缺乏有效的改善措施。 有些软件企业,即使有测试队伍,但缺乏有效的测试管理,使得企业内部的测试 工作效率低下。 4 、某些企业因为受到资源的限制,虽然想提高软件质量,但由于缺乏资金、 人员等方面的资源,没有能力去做质量管理方面的工作。 5 、软件质量保证工作需要相关的入力资源、硬件资源、管理体系、软件测试 工具等。 虽然目前很多软件企业都配备了专门的质量保证部门或软件测试队伍,但软 件测试的重要性还没有得到普遍的认同。但随着软件企业和软件用户群的质量意 识不断提高,和行业的迅猛发展,越来越多的1 1 r 企业已逐渐意识到测试环节 在软件产品研发中的重要性。而此类软件质量控制工作,均需要拥有娴熟技术的 专业软件测试人才来协作完成,软件测试工程师作为一个重头角色正成为r r 企业 招聘的热点。 1 4 作者所做的工作 本文是在致力于软件测试理论研究和基于在电讯盈科公司实践7 大约一年时 间的基础上撰写而成的。主要对系统测试过程和所涉及到的关键技术进行了深入 地研究,并且应用于实际的u n i c a l l 系统测试中。主要完成的工作包括: 1 、讨论了软件测试的概念、目的、发展及重要性,软件测试方法的分类,分 析比较了两类测试方法,并得出它们的优缺点以及适用场合。 2 、对于黑盒测试中边界值测试进行了详细的分析,并结合宅e u n i c a l l 系统中翻 页功能的实践进行分析。 3 、深入探讨t u m c a l l 系统测试的整个过程,包括u n i c a l l 系统的需求与设计分 析、创建测试计划、设计测试用例、测试具体实旖和铡试结果分析。创建了u n i c a l l 系统的测试计划,制定了适用u n i c a l l 系统的软件测试镱略,提出了两种b u g 验证的 策略。指出了在测试的执行过程中应着重考虑的阿匿 4 、设计t u n i c a u 系统的测试用例;在u n i c a l l 系统的测试中,提出了一套有效 的针对吼i 翻i 系统的测试用例的设计步骤,具体婀述了测试数据应该如 可选取,并 在实践中得到了很好的应用。 7 5 、熟练掌握了t c s f r h c 好_ r o b u g 管理工具的使用。掌握了如何清楚的描述b u g , 并根据自己在测试中的经验指出了在b u g 的创建过程中应注意的事项。 6 、在u a i c a l l 系统的测试实践过程中,总结了一些有用的测试经验。 i 5 本文的工程实践和论文的组织安排 本文的作者参与了u n i c a u 客户联络中心系统的测试,在学习和吸收通用的软 件测试方法及测试技术的基础上,深入研究了适合u n i e a l l 系统的软件测试的理论 和方法、测试的标准和规范测试的管理、测试的工具、测试的技术手段等问题, 并在实践中不断总结经验,不断学习和探索,经过艰苦的努力和创造性的开展工 作,逐步积累了一些软件测试经验,在实际工作中得到了较好的应用。 本文首先讲述了软件测试的基本理论,对系统测试的技术和理论重点进行了 探讨,最后针对u n i e a l l 系统的测试迸行了具体的分析与研究。论文的具体组织 安排如下: 第一章介绍了论文的选题背景和学术意义,软件测试的产生与发展以及行业 现状。 第二章介绍了软件测试的技术,包括一些基本方法及策略,并对边界值测试 方法结合t m i e a u 系统的页面翻页功能进行了分析。 因为本文的主要研究内容是t a n i e a l l 的系统测试,所以在第三章专门介绍了系 统测试的一些理论。 第四章和第五章介绍了u n i c a l l 系统以及测试u n i e a l l 系统的方案,详细讲述 u n i e a l l 系统具体测试过程。包括需求分析,设计分析,创建测试计划,测试用例 的设计,测试数据豹选取,铡试豹执行过程,测试结果分析整个完整的测试流程。 在第五章的最后还介绍了作者在测试过程中积累的一些经验的总结。 第六章是结束语。是对全文的一个总结,以及作者对测试前景的展望。 j b 塞窑亟太芏亟堂缱盐室 塑往测试挂本 2 软件测试技术 2 1 测试的原则和目标 软件测试的目标是尽可能早一些找出软件缺陷,并确保其得以关闭。软件测 试人员的工作目标就是找软件缺陷,尽可能早一些找出软件缺陷,并确保其得以 修复。此目标包含三个含义: 1 、软件测试员的基本目标是发现软件缺陷。 2 、软件测试员追求的是尽可能早的找出软件缺陷。 3 、软件测试人员必需确保找出的软件缺陷得以关闭。 2 1 1软件测试的目标 软件测试的目标,就是为了更快、更早地将软件产品或软件系统中所存在的 各种问题找出来,并促进开发人员尽快地解决问题,最终及时地向用户提供一个 高质量的软件产品,使软件系统更好地满足用户的需求,同时满足软件组织自身 的要求: g l e n f o r d j m y e r s 在 t h e a r t o f s o t t w a r e t e s t i n g ) 中提出的以下三个规则也可 以看作是对测试的目的或定义,虽然在前面讲概念时已经提到,这里有必要再重 复一下: 1 、测试是为了发现程序中的错误而执行程序的过程。 2 、一个好的测试用例是发现迄今为止尚未发现的错误的测试用例。 3 、个成功的测试是发现了至今为止尚未发现的错误的测试【切。 正确理解测试的目的十分重要。如果认为测试的目的是为了说明程序中没有 缺陷,那么测试人员就会向这个目标靠拢,因面下意识地设计很多不易暴露错误 的测试用例,这些测试用例恰恰证明软件实现了预期功能,这样的测试是不真实, 没有效果的。成功的测试在于发现了迄今尚未发现的缺陷,测试人员的职责是设 计这样的测试用例它能有效地揭示潜伏在软件里的缺陷。 软件质量是市场竞争的需要,质量好的软件是留住客户的最关键的手段之一, 软件企业也必须依靠质量,才能立于不败之地。高质量的软件可以大大降低“质 量问题产生的成本”,增加公司的盈利。而且,软件已是国际化的市场,质量是进 入国际市场的一个关键门坎。所以,软件必须容易维护、移植和扩充,以扩大市 9 场或适应环境的变化。这些要求的满足,最终体现在软件产品的质量上,一个好 的软件产品应该满足下列几点要求: l 、功能性,软件所实现的功能要达到它的设计飙范和满足用户需求的程度。 确保产品完成了它所承诺或公布的功能。测试的首要目的就是保证所有预期的功 能实现并且通过了规范的测试。 2 、可用性,对于一个软件,用户学习、操作、准备输入和理解输出所作努力 的程度,如安装简单方便、容易使用、界面友好,并能适用于不同特点的用户, 包括对残疾人、有缺陷的入能提供产品使用的有效途径或手段。 3 、性能,在指定条件下,用软件实现某种功能所需的计算机资源( 包括内存 大小、c l u 占用时间等) 的有效程度。现在的用户对软件的性能方面的要求越来 越高,使用起来系统运行效率低( 性能低) 、或用户界面不友好、用户操作不方便 的产品市场空间肯定会越来越小。因此通过测试改善性能也是测试工作一个目标。 4 、容量,系统的接受力、容纳或吸收的能力、或某项功能的最大量或最大限 度,有时需要确定系统的特定需求的所能容纳的最大量、所能表现的最大值。如 w e b 系统能承受多少用户并发访问、会议系统可以承受的与会人数等。 5 ,可测量性,系统某些特性可以通过一些量化的数据指标能描述其当前状态 或理想状态。 6 、可维护性,在一个运行软件中,当环境改变或软件发生错误时,进行相应 修改所做努力的简易程度。可维护性取决于理解软件、更改软件和测试软件的简 易程度,可维护性与灵活性密切相关高可维护性对于那些经历周期性更改的产 品或快速开发的产品很重要。 7 、兼容性,软件从一个计算机系统或环境移植到另一个系统或环境的容易程 度,或者是一个系统和外部条件共同工作的容易程度。兼容性表现在多个方面, 如系统的软件和硬件的兼容性、软件的不同版本的系统、数据的兼容性。 8 、可扩展性,指将来功能增加、系统扩充的难易程度或能力。 9 、健壮性,确保产品是健壮的,适应用户环境的。健壮性即稳定性,是产品 质量的基本要求,尤其对于个用于事务关键或时间关键的工作环境中的应用系 统。软件只有稳定的运行,才会不致于中断用户的工作,因此通过健壮性测试是 软件测试工作的又一个目标。 2 1 2软件测试的原则 软件测试和其他的任何活动一样,都需要遵循一定的厥则。从不同的角度出 发会派生出两种不同的测试原则,从用户的角度出发,就是希望通过软件测试能 j e 亳窑亟太堂亟堂僮j 盆奎煞在塑4 道拄苤 充分暴露软件中存在的问题和缺陷,从而考虑是否可以接受该产品,从开发者的 角度出发,就是希望测试能表明软件产品不存在锩误,已经正确地实现了用户的 需求,确立人们对软件质量的信心。 软件产品在投入使用之前应该进行充分的测试,但是在有限的时间和资源下 进行测试完全找出软件所有的错误和缺陷是不可能的,软件测试不能无限进行下 去,应适时终止。因为,测试输入量大、输出结果多、路径组合太多,用有限的 资源来达到完全测试是不现实的。在测试中虽然不可能覆盖路径的每一种组合。 然而充分覆盖程序逻辑,确保覆盖程序设计中使用的所有条件是可能的。所以, 通常对于相对复杂的产品或系统来说,z e r o - b u g 是一种理想,g o o d - e n o u g h 是我们 的原则m 。g o o d - e n o u g h 原则就是一种权衡投产出比的原则:不充分的测试是不 负责任的。过分的测试是一种资源的浪费,同样也是一种不负责任的表现。【5 】执行 测试工作的关键在于:如何界定什么样的测试是不充分的,什么样的测试是过分 的。解决这一问题的通常方法是制定最低测试通过标准和测试内容,然后具体问 题具体分析。 测试是一项非常复杂的、创造性的和需要高度智慧的挑战性的工作。测试一 个大型程序所要求的创造力,事实上可能要超过设计那个程序所要求的创造力。 软件测试中很重要的一个方面是人的心理问题,一些直观上看是很显而易见的至 关重要的原则,总是被人们忽视。这些规则如下: l 、所有的测试都应追溯到用户需求。这是因为软件的目的是使用户完成预定 的任务,满足其需求,而软件测试揭示软件的缺蹈和错误,一旦修正这些错误就 能更好地满足用户需求。软件测试的目标就是验证产品的一致性和确认产品是否 满足客户的需求,所以测试人员要始终站在用户的角度去看问题、去判断软件缺 陷的影响,系统中最严重的错误是那些导致程序无法满足用户需求的缺陷。软件 测试必须基于“质量第一”的思想去开展各项工作,当时间和质量冲突时,时间 要服从质量。 2 、应尽早地和不断地进行软件测试。由于软件的复杂性和抽象性,在软件生 命周期各阶段都可能产生错误,所以不应把软件测试仅仅看作是软件开发中的一 个独立阶段,而应当把它贯穿到软件开发的各个阶段中去。在需求分析和设计阶 段就应开始进行测试工作,编写相应的测试计划及测试设计文档,同时坚持在开 发各阶段进行技术评审和验证,这样才能尽早发现和预防错误,杜绝某些缺陷和 错误,提高软件质量。测试工作进行得越早,越有利于提高软件的质量,这是预 防性测试的基本原则。 3 、测试只能证明软件存在错误两不篦证明软件没有错误,测试无法显示潜在 的错误和缺陷,继续进一步测试可能还会找到其它错误和缺陷。 北京銮通太堂亟堂焦i 盆塞筮娃测达撞苤 4 、充分关注测试中的集群现象。在测试的程序段中,若发现的错误数目多, 则残存在其中的错误数目也比较多,可能和程序员的编程水平和习惯有很大的关 系。这是p a r e t o 原则应用于软件测试,即澳4 试发现的错误中的8 0 很可能集中 在2 0 的程序功能模块中【9 j 。因此应当花较多的时间和代价测试那些具有更多错 误数日的程序模块。 5 、溅试应从小规模开始,逐步转向大规模测试,即从模块测试开始再进行系 统测试。 6 、程序员应避免检查自己的程序。考虑到人们的心理因素,自己揭露自己程 序中的错误是件不愉快的事,自己不愿意否认自己的工作;另一方面,由于思维 定势,自己难以发现自己的错误。而且,程序中可能包含由于程序员对问题的叙 述或说明的误解而产生的错误。如果是这种情况,让程序员测试自己的程序往往 是不能发现问题的。因此,测试一般由独立的测试部门或第三方机构进行。 7 、尽量避免测试的随意性。软件测试是有组织、有计划、有步骤的活动,要 严格按照测试计划进行,要避免测试的随意性。所以在进行实际测试之前,应制 定良好的、切实可行的测试计划并严格执行,特别要确定测试策略和测试目标。事 先定义好产品的质量标准。有了质量标准,才能依据测试的结果对产品的质量进 行正确的分析和评估,例如,进行性能测试前,应定义好产品性能的相关的各种 指标。同样,测试用例应确定预期输出结果,如果无法确定测试结果,则无法进 行校验。 8 、为了发现更多的错误让系统更完善,设计测试用例时不但要选择合理的输 入数据作为测试用例,而且要选择不合理的输入数据作为测试用例,除了检查程 序是否做了应该做的事,还要看程序是否做了不该做的事。使得系统能应付各种 情况。 2 2 软件测试的方法及过程 软件测试的方法和技术是多种多样的。对于软件测试方法,可以从不同的角 度加以分类:从是否需要执行被测软件的角度,可分为静态测试和动态测试。从 测试是否针对系统的内部结构和具体实现算法的角度来看,可分为白盒测试和黑 盒测试。下面具体介绍一下这几种测试: 2 2 1静态测试 静态测试方法是指不运行被测程序本身,仅通过分析或检查源程序的文法、 结构、过程、接口等来检查程序的正确性。静态方法通过程序静态特性的分析, 找出欠缺和可疑之处,例如不匹配的参数、不适当的循环嵌套和分支嵌套、不允 许的递归、未使用过的变量、空指针的引用和可疑的计算等。静态测试结果可用 于进一步的查错,并为测试用例选取提供指导。 静态测试又可分为代码走查( w a l k t h r o u g h ) ,代码审查( i n s p e c t i o n ) ,技术评审 ( r e v i e w ) 。代码走查( w a l k q h r o u g h ) 是指开发组内部进行的,采用讲解、讨论和 模拟运行的方式进行的查找错误的活动i l o 】。代码审查( i n s p e c t i o n ) 是开发组内部 进行的,采用讲解、提问并使用编码模板进行的查找错误的活动。一般有正式的 计划,流程和结果报告。技术评审( r e v i e w ) 是开发组、测试组和相关人员( q a 、 产品经理等1 联合进行的,采用讲解、提问并使用编码模板进行的查找错误的活动。 一般有正式的计划、流程和结果报告。 在实际工作中,我们完全不必要被概念所束缚住,根据项目的实际情况来决 定采取什么的静态澳试形
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB 16543-2025高炉喷吹烟煤系统防爆安全规范
- 【传统文化】2025-2026学年四年级道法上学期传统文化专项卷(统编版)
- 软件工程就业前景深度解析
- 2026福建省面向西北农林科技大学选调生选拔工作备考题库含答案详解ab卷
- 本科生毕业设计(论文)任务书
- 2026广发银行苏州分行校园招聘备考题库带答案详解
- 2026中国工商银行苏州分行社会招聘30人备考题库完整答案详解
- 2025重庆永川松溉镇村(社区)专职干部后备力量入库选拔10人备考题库含答案详解(基础题)
- 2025重庆云阳县公安局辅警招聘60人备考题库含答案详解(综合题)
- 2025年杭州市上城区清波街道办事处编外招聘4人备考题库附答案详解(预热题)
- 人教版英语九年级上册课课练
- 东莞市预拌混凝土绿色生产达标考核018版
- GB/T 17911-2018耐火纤维制品试验方法
- 了不起的狐狸爸爸-全文打印
- 拼多多商家协议
- 黄委会考试黄河基础知识大全
- 内蒙古铅锌矿分布
- JJF 1318-2011 影像测量仪校准规范-(高清现行)
- DBJ50∕T-342-2019 工程建设对既有建(构)筑物安全影响评估标准
- 陀螺历史小手抄报
- 六年级语文上册部编版第七单元教材分析(定稿)
评论
0/150
提交评论